Remise en état des alertes tables

This commit is contained in:
2026-02-11 11:13:20 +01:00
parent 7fd74a8ce4
commit 5f9d1c0911
4 changed files with 193 additions and 145 deletions

View File

@@ -1,25 +1,22 @@
# /home/debian/Gestion_sondes/utils_mail.py
import os
import smtplib
import logging
from email.mime.text import MIMEText
from dotenv import load_dotenv
load_dotenv('/home/debian/Gestion_sondes/.env')
# Charge le .env (et override pour éviter des variables vides héritées de cron/supervisor)
load_dotenv('/home/debian/Gestion_sondes/.env', override=True)
SMTP_HOST = os.getenv("SMTP_HOST", "smtp.mail.ovh.net")
SMTP_HOST = os.getenv("SMTP_HOST")
SMTP_PORT = int(os.getenv("SMTP_PORT", "465"))
SMTP_LOGIN = os.getenv("SMTP_USER") # ex: services@domo91.fr
SMTP_PASSWORD = os.getenv("SMTP_PASS") # mot de passe OVH
MAIL_FROM = os.getenv("MAIL_FROM", SMTP_LOGIN)
MAIL_TO = os.getenv("MAIL_TO") # ex: services@domo91.fr
SMTP_LOGIN = os.getenv("SMTP_USER") # <-- correspond à ton .env
SMTP_PASSWORD = os.getenv("SMTP_PASS") # <-- correspond à ton .env
MAIL_FROM = os.getenv("MAIL_FROM")
MAIL_TO = os.getenv("MAIL_TO")
def envoyer_mail(sujet: str, contenu: str, destinataires=None) -> None:
"""
Envoi email via OVH SMTP SSL 465 (process identique à supervisor_watchdog.py).
destinataires: str unique ou liste; si None => MAIL_TO depuis .env
"""
if destinataires is None:
if not MAIL_TO:
raise ValueError("MAIL_TO manquant dans le .env")
@@ -27,19 +24,21 @@ def envoyer_mail(sujet: str, contenu: str, destinataires=None) -> None:
elif isinstance(destinataires, str):
destinataires = [destinataires]
if not SMTP_HOST:
raise ValueError("SMTP_HOST manquant dans le .env")
if not SMTP_LOGIN or not SMTP_PASSWORD:
raise ValueError("SMTP_LOGIN / SMTP_PASSWORD manquants dans le .env")
raise ValueError("SMTP_USER / SMTP_PASS manquants dans le .env")
if not MAIL_FROM:
raise ValueError("MAIL_FROM manquant dans le .env")
msg = MIMEText(contenu)
msg["Subject"] = sujet
msg["From"] = MAIL_FROM
msg["To"] = ", ".join(destinataires)
try:
with smtplib.SMTP_SSL(SMTP_HOST, SMTP_PORT) as server:
server.login(SMTP_LOGIN, SMTP_PASSWORD)
server.sendmail(MAIL_FROM, destinataires, msg.as_string())
logging.info("📧 Mail envoyé: %s -> %s", sujet, destinataires)
except Exception as e:
logging.error("Erreur envoi mail: %s", e)
raise
# SSL direct (OVH ssl0.ovh.net:465)
with smtplib.SMTP_SSL(SMTP_HOST, SMTP_PORT, timeout=30) as server:
server.login(SMTP_LOGIN, SMTP_PASSWORD)
server.sendmail(MAIL_FROM, destinataires, msg.as_string())
logging.info("📧 Mail envoyé: %s -> %s", sujet, destinataires)