Google App Script para monitoreo de correo
¡Hola, a todos! Hoy quiero compartir con vosotros una solución técnica bastante ingeniosa utilizando «Google App Script para monitoreo de correo». Me encontré con un problema en uno de mis procesos y quiero explicar cómo lo solucioné. Sí, incluso cuando estamos solo jugueteando en nuestros entornos personales… surgen problemitas.
El Escenario: Un Problema de Notificación con Microservicios
Todo comenzó con un proceso que había desarrollado, el cual realizaba una serie de operaciones y utilizaba un microservicio de notificaciones que yo mismo había creado. Este microservicio enviaba un correo electrónico para informar si el proceso había concluido con éxito o si había encontrado algún problema.
No obstante, durante una actualización en el servicio de notificaciones, se introdujo un cambio que afectó a los consumidores de este servicio. Desde ese momento, el proceso dejó de enviar el correo de notificación, dejándonos en la oscuridad sobre su estado.
Aquí es donde se presentó la necesidad de una solución que nos permitiera saber si el correo de notificación se enviaba o no, independientemente del motivo de la falla. Y es aquí donde entra en juego «Google App Script para monitoreo de correo».
Por supuesto, podíamos recurrir a los logs del proceso para averiguar qué había pasado. Pero esa no era la idea. Queríamos un sistema que nos informara cuando algo salía mal, no tener que bucear en un mar de logs cada día.
Acto II: Enfrentando el Problema
El desafío estaba claro: necesitábamos una forma de alertar cuando el proceso o el servicio de notificaciones fallaba. ¿Cómo hacerlo si el propio servicio de notificaciones era el que tenía problemas?
Una solución habitual en estos casos es implementar una política de reintentos. Si el servicio de notificaciones falla al intentar enviar un correo, se hace el valiente y lo intenta de nuevo tras un breve descanso. Eso suele solucionar los errores de conectividad temporales, pero ¿qué ocurre si el servicio sigue fallando y se agotan todos los intentos?
Necesitábamos una solución más robusta, una que nos alertara si el correo no se enviaba por cualquier motivo. Fue entonces cuando Google App Script hizo su gran entrada.
La Solución: Google App Script para Monitoreo de Correo
Google App Script es una plataforma basada en JavaScript que nos permite automatizar, mejorar y conectar diferentes servicios de Google, como Gmail, Google Sheets y Google Drive, entre otros. En nuestro caso, lo utilizamos para monitorear una bandeja de entrada específica, buscando un correo con un asunto determinado.
El script se configura para ejecutarse a una hora concreta todos los días. Si el correo de notificación no ha llegado a esa hora, el script envía una alerta para informarnos de la situación.
Aquí os dejo un ejemplo de cómo podría quedar el código de nuestro script de «Google App Script para monitoreo de correo»:
function checkForEmail() {
var subjectToFind = 'Subject del email a buscar';
var userEmail = 'tucorreo@dominio.com';
var fromEmail = 'correo_del_remitente@dominio.com';
var deadlineHour = 15; // La hora del día en que deseas recibir la alerta (formato 24 horas)
var now = new Date();
var startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate());
var query = 'from:' + fromEmail + ' subject:' + subjectToFind + ' after:' + startOfDay.toISOString().slice(0,10) + ' in:inbox';
var threads = GmailApp.search(query);
if (now.getHours() >= deadlineHour && threads.length == 0) {
var currentTime = Utilities.formatDate(now, Session.getScriptTimeZone(), 'HH:mm');
GmailApp.sendEmail(userEmail, 'Alerta: correo no recibido', `
A las ${currentTime} no se ha recibido el correo con el asunto "${subjectToFind}" de ${fromEmail}.
`);
}
}
// Esta función ejecuta el monitoreo de correo cada hora
function hourlyEmailCheck() {
ScriptApp.newTrigger('checkForEmail')
.timeBased()
.everyHours(1)
.create();
}
Conclusión: Utilizar Google App Script para Monitoreo de Correo
Como podéis ver, la implementación de soluciones de monitoreo y alerta con «Google App Script para monitoreo de correo» puede ser un gran aliado cuando trabajamos con microservicios y sistemas distribuidos.
Puede ser una buena solución para ciertos casos, especialmente si ya estáis utilizando servicios de Google en vuestros procesos.
Es cierto que existen herramientas y métodos más profesionales para llevar a cabo esto. Pero esta solución es una opción viable, sencilla y, lo más importante, ¡funciona!
No olvidéis que, al final del día, nuestro objetivo es garantizar la continuidad y la eficiencia de nuestros procesos. Cualquier herramienta que nos ayude a alcanzar ese objetivo es bienvenida.
Si queréis saber más sobre cómo usar Google App Script, os recomiendo este tutorial completo para comenzar.
Espero que esta historia os haya resultado útil. ¡Hasta la próxima!