53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
import os
|
|
import ovh
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
def envoyer_sms(message: str, lieu: str = ""):
|
|
try:
|
|
client = ovh.Client(
|
|
endpoint=os.getenv("OVH_ENDPOINT"),
|
|
application_key=os.getenv("OVH_APP_KEY"),
|
|
application_secret=os.getenv("OVH_APP_SECRET"),
|
|
consumer_key=os.getenv("OVH_CONSUMER_KEY"),
|
|
)
|
|
|
|
services = client.get('/sms/')
|
|
if not services:
|
|
print("❌ Aucun service SMS OVH trouvé", flush=True)
|
|
return
|
|
|
|
service_name = services[0]
|
|
numero_dest = os.getenv("SMS_RECEIVER")
|
|
sender = os.getenv("OVH_SMS_SENDER")
|
|
|
|
if numero_dest.startswith('+'):
|
|
numero_dest = '00' + numero_dest[1:]
|
|
|
|
if not numero_dest or not numero_dest.isdigit():
|
|
print(f"❌ Numéro de téléphone invalide ou manquant : '{numero_dest}'", flush=True)
|
|
return
|
|
|
|
payload = {
|
|
"sender": sender,
|
|
"receivers": [numero_dest],
|
|
"message": message, # Pas d'encodage ni de nettoyage ici
|
|
"priority": "high",
|
|
"noStopClause": False
|
|
|
|
}
|
|
|
|
print("📤 Requête envoyée à OVH :")
|
|
print(payload)
|
|
|
|
result = client.post(f'/sms/{service_name}/jobs', **payload)
|
|
|
|
print(f"📱 SMS envoyé à {numero_dest} pour {lieu}. Job ID : {result['ids']}", flush=True)
|
|
|
|
except Exception as e:
|
|
print(f"❌ Erreur envoi SMS : {e}", flush=True)
|
|
|
|
if __name__ == "__main__":
|
|
envoyer_sms("Test SMS OVH", lieu="utils_sms")
|