Esta función resulta útil para administrar destinatarios en una planilla de cálculo y clasificarlos de acuerdo a un criterio determinado.
La lista se obtiene de la hoja Mailing que puede ser creada con la función crearHojaMailing.
El objetivo es administrar de manera independiente las cuentas de correo electrónico y administrar de una manera sencilla las notificaciones a un grupo de personas.
Al final de este documento hay ejemplos de uso.
Para entender como trabaja este script analizamos paso a paso cada sección del código.
Cuando llamamos a la función debemos pasar un parámetro que indica la acción que está sucediendo y para la cual debe haber cuentas de correo en la hoja Mailing. Esta acción no es mas que un texto que puede ser del tipo "Alta", "Deshabilitaciones", "Cliente".
En la primer parte obtenemos todos los objetos que necesitamos y los almacenamos en variables.
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sheetParam = doc.getSheetByName("Mailing");
var params = sheetParam.getRange(2, 1, sheetParam.getLastRow()-1, 2);
var data = params.getValues();
var result = "";
Las variables mas importantes y que intervienen en la solución del problema son result y data.
En la variable result vamos a ir agregando las direcciones de correo electrónico unidas por una coma simple, para que de esta manera la podamos utilizar en el método sendEmail nativo de la librería de Google.
En la variable data tenemos la información de la hoja Mailing con todas las direcciones de correo electrónico y la acción asociada a cada una de éstas.
Las otras variables son necesarias para llegar a obtener el valor de la variable data.
for (i in data) {
var row = data[i];
if(accion==row[0]){
result = result+", "+row[1];
}
}
El proceso de selección de las cuentas de correo electrónico que corresponden al criterio que se pasa como parámetro se realiza con un ciclo del tipo for. Este ciclo se repite tantas veces como opciones tengamos en la hoja Mailing.
Luego, almaceno en la variable row la dupla de valores acción-correo que corresponde a cada renglón de la hoja Mailing.
Finalmente, con el if, selecciono únicamente las cuentas de correo cuya acción sea igual al parámetro de la función.
El resultado será la lista de destinatarios a los cuales hay que notificar ante la acción pasada como parámetro.
Supongamos que tenemos una lista de tareas y queremos enviar alertas a tres tipos de personas. Los administradores, los usuarios y los clientes. A los administradores vamos a informarles los errores para que tomen acción, a los usuarios le informaremos las altas y a los clientes las novedades. Esto se traduce en la siguiente información dentro de la planilla:
Entonces para obtener las direcciones de correo electrónico cuando se produce un error se debe llamar a la función de la siguiente manera:
getDestinatariosPara("ERROR")
El resultado de la función será: "administrador@midominio.com, soporte@midominio.com"
A modo mas general, para enviar un e-mail a todas las cuentas de correo electrónico cuando se produce una novedad, se debe utilizar la siguiente linea:
MailApp.sendEmail(getDestinatariosPara("NOVEDADES"), "Noticias", "Tenemos novedades para vos.");
Con esta instrucción se estará enviando un correo electrónico a cliente_satisfecho@yahoo.com, seguidor@gmail.com y a tweetero@gmail.com con asunto Noticias y el cuerpo del mensaje con Tenemos novedades para vos.