Files
Gestion_sondes/Alerte_journalière.py
2025-04-08 10:38:23 +02:00

69 lines
2.0 KiB
Python

import mysql.connector
from datetime import datetime
import smtplib
from email.mime.text import MIMEText
# --- Config base de données ---
config = {
"host": "54.36.188.119",
"user": "michel",
"password": "#SO2&1nf%mZ@jfh",
"database": "Sondes"
}
# --- Config email ---
def envoyer_mail(sujet, message, destinataires):
msg = MIMEText(message, "plain", "utf-8")
msg['Subject'] = sujet
msg['From'] = 'alertes_saclay@domo91.fr'
msg['To'] = ', '.join(destinataires)
try:
with smtplib.SMTP_SSL('smtp.mail.ovh.net', 465) as server:
server.login('alertes_saclay@domo91.fr', 'Kdpke674y23Feq^H')
server.sendmail(msg['From'], destinataires, msg.as_string())
print("📧 Mail récapitulatif envoyé avec succès.")
except Exception as e:
print(f"Erreur envoi mail : {e}")
# --- Exécution principale ---
try:
conn = mysql.connector.connect(**config)
cursor = conn.cursor(dictionary=True)
# Rechercher toutes les tables d'alertes
cursor.execute("SHOW TABLES LIKE 'Alertes_%'")
tables = [list(row.values())[0] for row in cursor.fetchall()]
message = ""
total_alertes = 0
for table in tables:
lieu = table.replace("Alertes_", "")
cursor.execute(f"SELECT Sonde, Debut_defaut FROM {table} WHERE Status = 'En cours'")
alertes = cursor.fetchall()
if alertes:
message += f"\n📍 **Site : {lieu}**\n"
for alerte in alertes:
debut = alerte['Debut_defaut'].strftime("%Y-%m-%d %H:%M")
message += f"🔔 Sonde : {alerte['Sonde']} | Depuis : {debut}\n"
total_alertes += len(alertes)
if total_alertes > 0:
envoyer_mail(
sujet="🚨 Récapitulatif des alertes en cours - 7h00",
message=message,
destinataires=["services@domo91.fr"]
)
else:
print("✅ Aucune alerte en cours à 7h00.")
cursor.close()
conn.close()
except Exception as e:
print(f"Erreur script alerte journalière : {e}")