import os import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart # Option de désactivation depuis l'interface (Phase Debug) DEBUG_MAIL_ACTIVE = True def envoyer_alerte_debug(niveau, source, message_erreur): """ Envoie un e-mail à l'administrateur en cas d'erreur serveur (Phase Debug). Utilise le serveur SMTP défini dans le .env """ if not DEBUG_MAIL_ACTIVE: return email_admin = os.getenv("ADMIN_EMAIL", "votre-email@domaine.com") smtp_serveur = os.getenv("SMTP_SERVER") smtp_port = int(os.getenv("SMTP_PORT", 587)) smtp_user = os.getenv("SMTP_USER") smtp_pass = os.getenv("SMTP_PASS") if not all([smtp_serveur, smtp_user, smtp_pass]): print(f"[{niveau}] [DEBUG_MAILER] Configuration SMTP absente. Impossible d'envoyer l'alerte pour : {message_erreur}") return sujet = f"[ALERTE {niveau}] Aethas38_Multi_IA - Erreur dans {source}" corps_html = f"""
Niveau : {niveau}
Module/Source : {source}
Détail de l'erreur :
Notification automatique de l'Orchestrateur (Phase Debug)
""" msg = MIMEMultipart() msg['From'] = smtp_user msg['To'] = email_admin msg['Subject'] = sujet msg.attach(MIMEText(corps_html, 'html')) try: server = smtplib.SMTP(smtp_serveur, smtp_port) server.starttls() server.login(smtp_user, smtp_pass) server.send_message(msg) server.quit() except Exception as e: print(f"ÉCHEC CRITIQUE : Impossible d'envoyer l'alerte e-mail : {e}")