Bueno pues lo prometido es deuda y tras pelearme con Python durante un día creo que he hecho que funcione más o menos como yo quiero... falta que tras ir probándolo en el día a día vaya también bien.
He puesto en el primer mensaje de este hilo los dos zip de la utilidad, el que había hasta ahora sin correo por si hay que ponerlo porque el que lleva lo del correo vaya mal.
El del correo lleva al principio del script
meteoclimatic.py unas opciones de configuración comentadas para ir rellenándolas.
La primera y más importante es
MANDAR_CORREO = False y con
False no enviará correos y si le ponemos
True sí que lo hará si hay plantilla no actualizada más de media hora, si hay errores (cada 8 plantillas que se tengan en el día) y si hay fallos de envíos (se pueden configurar en las opciones cada cuantos fallos se enviaría).
Las siguientes opciones son referentes a la configuración del correo electrónico que ya se explica en el comentario de cada línea para lo que sirven.
Una consideración muy importante es que si utilizamos nuestra cuenta de Gmail para enviar los correos por defecto no podremos ya que Gmail bloquea el acceso a aplicaciones menos seguras, tendremos que desactivar esa característica y no tener la verificación en dos pasos tampoco.
Recomiendo que lo hagamos con una cuenta de Outlook o de Gmail o de cualquier otro que no usemos como email habitual (se puede hacer uno solamente para el caso).
Gmail tiene dos servidores smtp, uno implícito (puerto 465) y otro explícito con STARTTLS (puerto 587) que viene configurado por defecto. Se puede usar cualquiera de los dos poniendo el puerto correspondiente en ese campo.
La opción
fallos_envio es el múltiplo de fallos de envío de la plantilla en la que recibiremos un email, por defecto es 5, así que cada 5 fallos de envío nos mandará un email. Se puede cambiar ese múltiplo.
La última línea es la de
test_correo. Está por defecto con
False y si le ponemos
True nos servirá para probar manualmente (ejecutando directamente en el terminal
meteoclimatic.py) si envía un correo de prueba con la configuración que le hayamos puesto. No se enviará la plantilla con él activado y tendremos que ponerlo en
False para que la envíe y funcione normalmente el script.
Las últimas consideraciones es que lo he probado tanto en Python 2.7 como en Python 3.7 con éxito por lo que es compatible con esas versiones (será también con todas las versiones 3.x)
Y lo último es que irá todo en UTC, los logs etc menos la plantilla que si está en hora local la enviará en hora local. Yo de hecho lo he probado en local y creo que funcionará también con el sistema en UTC (con plantilla también en UTC).
Falta que lo probéis en UTC a ver si va bien o hay que retocarlo... lo de las fechas en Python es un poco lioso para el que no sepa manejarlas
Como siempre hay que darle permisos de ejecución al nuevo
meteoclimatic.pyA ver qué tal va para quien quiera probarlo.
saludos