Mise en veille PayPal, synchro solde OpenRouter et modale de rejet financier
Build and Push Docker Image / build-and-push (push) Successful in 34s

This commit is contained in:
xavier committed 2026-08-23 11:38:37 +02:00
1 parent 2ea18701b5
commit 3e140d7d6f
8 files changed
+380 -293

No files matched your search

+21 -12
View File
@@ -3,25 +3,24 @@ 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
Envoie un e-mail à l'administrateur.
Gère le chiffrement (Port 587) et le relai interne sans mot de passe (Port 25).
"""
if not DEBUG_MAIL_ACTIVE:
return
email_admin = os.getenv("ADMIN_EMAIL", "votre-email@domaine.com")
smtp_serveur = os.getenv("SMTP_SERVER")
smtp_serveur = os.getenv("SMTP_SERVER", "192.168.1.20")
smtp_port = int(os.getenv("SMTP_PORT", 587))
smtp_user = os.getenv("SMTP_USER")
smtp_pass = os.getenv("SMTP_PASS")
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}")
if not smtp_serveur:
print(f"[{niveau}] [DEBUG_MAILER] Serveur SMTP absent. Alerte annulée.")
return
sujet = f"[ALERTE {niveau}] Aethas38_Multi_IA - Erreur dans {source}"
@@ -36,22 +35,32 @@ def envoyer_alerte_debug(niveau, source, message_erreur):
{message_erreur}
</div>
<br>
<p><em>Notification automatique de l'Orchestrateur (Phase Debug)</em></p>
<p><em>Notification automatique de l'Orchestrateur</em></p>
</body>
</html>
"""
msg = MIMEMultipart()
msg['From'] = smtp_user
# Si pas d'utilisateur défini, on utilise une adresse générique pour le relai interne
msg['From'] = smtp_user if smtp_user else "orchestrateur@aethas38.duckdns.org"
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)
# Logique de routage intelligent selon le port
if smtp_port == 587:
server.starttls()
if smtp_user and smtp_pass:
server.login(smtp_user, smtp_pass)
elif smtp_port == 25:
# Sur le port 25 en réseau local, Mailu s'attend souvent à un simple relai sans LOGIN
pass
server.send_message(msg)
server.quit()
print(f"[{niveau}] Alerte e-mail envoyée avec succès à l'admin.")
except Exception as e:
print(f"ÉCHEC CRITIQUE : Impossible d'envoyer l'alerte e-mail : {e}")