Public Access
Mise en veille PayPal, synchro solde OpenRouter et modale de rejet financier
Build and Push Docker Image / build-and-push (push) Successful in 34s
Build and Push Docker Image / build-and-push (push) Successful in 34s
This commit is contained in:
1 parent
2ea18701b5
commit
3e140d7d6f
8 files changed
+380
-293
No files matched your search
+21
-12
@@ -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}")
|
||||
Reference in new issue
Block a user