67 lines
2.0 KiB
Python
67 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}")
|