Bueno pues este finde me ha dado tiempo ha crearlo y a probarlo por el momento con buenos resultados por mi parte. Antes de ponerme a explicar cómo configurarlo, no obstante, voy a hacer unas consideraciones previas...
La primera es que esto es un script y tiene que configurarse "manualmente". Cada equipo tiene su configuración y tiene también sus sistemas de seguridad (antivirus, cortafuegos etc etc) que deben de ser correctamente configurados. Eso normalmente se hace dando los permisos necesarios cuando se ejecuta el script.
La segunda tiene que ver con SMTP. SMTP es el servidor de correo que enviará el email a donde queremos (en verdad es un protocolo pero también se usa para el servidor que da ese servicio). Generalmente los SMTP tienen seguridad habilitada (SSL/TLS) explícita. Por ejemplo Outlook (antiguo Hotmail) y Gmail van por el puerto 587 e inicia conexión segura con STARTTLS para cifrar la conexión. Gmail también puede ser usado por el puerto 465 el cual es implícito pero este script no admite esa clase de conexión.
La tercera concierne a Gmail. Google por defecto bloquea a las aplicaciones poco seguras de acceder a su SMTP por lo que hay que dar permisos en la cuenta de correo. Supone un riesgo si habilitamos esa opción si usamos clientes de correo de terceros (aplicaciones poco conocidas de Android por ejemplo) que pueden comprometer nuestros datos de la cuenta.
Lo mejor, si usamos una cuenta de Gmail para el script es que sea una que no usemos (podemos hacernos una nueva solo para este cometido).
Para permitir el acceso a aplicaciones menos seguras, estando logueados en Gmail en el navegador entrados a
esta dirección y permitimos el acceso. Nos saltarán alertas de Google pero no es tan grave como lo pintan.
Una vez hechas las consideraciones más importantes vamos a la configuración.
Primeramente debemos de guardar la contraseña cifrada de nuestro correo en un archivo para que haga uso el script para la autenticación. Es mejor esto que poner usuario y contraseña en texto simple en nuestro script. Para ello abrimos
Powershell (en W10 Inicio, clic derecho del ratón y Powershell) y copiamos esta línea:
'Password' | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File 'C:\Users\miusuario\Documents\passwd.txt' Antes de darle a enter para que la ejecute tenemos que poner al principio en 'Password' la contraseña de nuestro correo electrónico con el que vamos a enviar los correos. Siempre entre comillas. Al final vemos que también hay unas comillas para la dirección local donde se guardará el archivo con la contraseña cifrada. En el ejemplo he puesto que sea en Documentos del usuario (hay que poner qué usuario es), pero se puede cambiar la ubicación para crear el archivo y poner el nombre de archivo que se quiera (no es obligatorio que se llame passwd.txt)
Cuando lo ejecutemos vamos a esa ruta a ver si lo ha creado. En su interior habrá una serie de números/letras muy larga.
Ahora ponemos el script que pongo en el zip adjunto donde queramos (mejor si puede ser en Mis Documentos) y lo abrimos con el bloc de notas mismo para editarlo.
Al inicio es donde salen las opciones de configuración que no son muchas. Hay unos comentarios que ya dicen de qué se trata y qué hay que ir poniendo.
Hay que poner la ruta local de la plantilla que se envía a meteoclimatic, el usuario que envía y la ruta del archivo de la contraseña anteriormente generada (en $File=)
La última línea de la configuración está comentada (#[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}). Si usamos un servidor SMTP que no dé un certificado válido como puede ser uno autofirmado) pero que es de nuestra confianza (puede ser el correo de nuestro dominio) se descomenta para que pueda estar habilitado.
Ahora vamos con el Programador de Tareas. Entramos en él y seguimos estos pasos:
Le damos en la barra de la derecha a
"Crear Tarea" con lo que se nos abrirá una nueva ventana.
En nombre le ponemos el nombre que le queramos dar (por ejemplo
plantilla_meteoclimatic) y en la parte de abajo marcamos
Ejecutar tanto si el usuario inició sesión como si no. También marcamos la casilla siguiente
No almacenar contraseña etc y la siguiente
Ejecutar con los privilegios más altos.
Eso es en la primera pestaña
General. Ahora vamos a la de al lado
Desencadenadores y le damos a
Nuevo. Veremos que hay dos cajetines arriba con fecha y hora. En la hora ponemos 0:01:30. Con eso nos aseguramos de que no leerá la plantilla siendo escrita. Después abajo marcamos
Repetir cada y se activarán las opciones de su derecha. Ponemos en la de al lado cada
15 minutos y en la de más a la derecha
Durante: elegimos
Indefinidamente. Le damos por último a
Aceptar.
Ahora vamos a la pestaña de al lado y última por configurar
Acciones. Le damos a
Nueva. En Acción dejamos lo de
Iniciar un programa. En
Programa o script ponemos
Powershell y en
Agregar argumentos (opcional) ponemos esto:
-ExecutionPolicy Bypass -File "C:\ruta local donde está el script de powershell\correoplantilla.ps1"Cambiar lo de ruta local etc por la ruta verdadera local donde hayamos puesto el script.
Ya podemos aceptarlo todo y que se quede funcionando. Para comprobar que funciona ahí mismo en el Programador de Tareas y marcando la tarea que acabamos de crear en la parte derecha le damos a
Ejecutar. Ahora nos vamos a Mis Documentos y vemos si ha creado una carpeta llamada
plantilla_meteoclimatic con dos archivos en su interior (
comp.txt y flag.txt). En
comp.txt se irán comparando las plantillas leídas, una cada cuarto de hora, un máximo de cuatro.
Si el script detecta que las cuatro últimas plantillas leídas son exactamente iguales (no se están generando nuevas) enviará un email con el asunto
"Plantilla estancada". Si lo que detecta es que hay cambio de fecha pero los demás datos son iguales enviará
"Datos estancados". También adjuntará la plantilla.
El otro archivo
flag.txt tendrá un número. Si es 0 es que todo marcha bien y con 1 es cuando enviará el correo. si es mayor a uno no enviará nada y significará que está la plantilla o los datos estancados. En verdad ese número es una bandera en programación para evitar que el script envíe seguidamente los correos con una plantilla estancada. Si no estamos en casa y se queda estancada en 2 horas nos habría enviado 8 emails y en un día 96 emails, así que mejor uno y vemos lo que ha pasado.
Si nos ha creado los dos archivos que he puesto podemos probar si en verdad envía el correo pulsando varias veces (hasta cuatro) en el botón
Ejecutar de la tarea descrito anteriormente en el Programador de Tareas.
Las primeras veces que se ejecute el script hay que estar atentos a los antivirus o cortafuegos que podrán dar la alerta. Es en ese momento donde debemos de darle permiso al script o crear una regla de excepción.
Es un buen tocho el que he puesto y sobre todo decir que todo esto es experimental y seguirá siéndolo (así son los scripts
). Esto es cosa mía personal y no tiene nada que ver con meteoclimatic. Quien quiera probarlo es bajo su responsabilidad y riesgo (no me hago cargo si arde la CPU o se derrite la memoria RAM
).
Ya hablando en serio, no debe de ocurrir nada excepto que surjan algunos problemas de configuraciones de Windows o de cortafuegos y antivirus.
Lo mejor sería que meteoclimatic crease ese servicio pero mientras para quien quiera está este script como "workaround" como dicen los ingleses (solución alternativa).
Las dudas, problemas o comentarios se pueden seguir en este mismo hilo. Si vemos que va bien y hay una alta tasa de éxito se corta y se le pone una chincheta para tenerlo a mano.