Alertas por email con smtplib y una app password de Gmail
Dos modos, un script
@reboot de cron. Un solo fichero cubre las alertas planificadas y las imprevistas.App passwords, no tu contraseña real
Cabeceras que sobreviven a los filtros de spam
Un fragmento de la implementación
Tal cual del ejemplo desplegado en el Servidor (Node-RED) — cópialo libremente:
def build_message(subject, body):
"""Builds the MIMEText with full headers to avoid spam filters."""
message = MIMEText(body, "plain", "utf-8")
message["Subject"] = subject
message["From"] = EMAIL_SENDER
message["To"] = EMAIL_RECEIVER
return messageEl ejemplo completo es un programa entero — cabecera de conexionado, setup y bucle principal — listo para adaptar a tu aplicación.
Preguntas frecuentes
¿Por qué email y no una app de mensajería o SMS?
El email no necesita servicios extra, ni SIM, ni contrato de API, y el buzón de soporte ya está vigilado. Para mayor criticidad puedes añadir canales después, manteniendo SMTP como la base que siempre funciona.
¿Funciona con proveedores distintos de Gmail?
Sí. Vale cualquier servidor SMTP con STARTTLS en el puerto 587 — cambia SMTP_HOST y las credenciales. Gmail con app password es simplemente un valor por defecto cómodo y fiable para despliegues pequeños.
¿Cómo dispara Node-RED los emails de alarma?
El flujo de polling clasifica cada lectura de estación en niveles 0-4. Los niveles 3 y 4 se enrutan a una función que formatea asunto y cuerpo, y después un nodo exec ejecuta este script con ambos como argumentos.