La función getDestinatariosPara, utiliza una hoja donde se clasifican las cuentas de correo electrónico y las acciones asociadas a cada una de ellas. Cuando se invoca la función se toma el texto pasado como parámetro y busca todas las direcciones de correo electrónico que tengan la acción asociada en la página llamada Mailing.
Para evitar olvidar crear esta página, se asocia el siguiente script al evento onInstall, que se ejecutará cuando se instale el script en la planilla.
Este script utiliza AAB Framework.
Para administrar de una manera sencilla el nombre de la página que contiene las direcciones de correo electrónico se almacena en una variable global.
var V_NAME = "Mailing";
Lo primero es obtener la hoja Mailing y almacenarla en la variable sheet.
var sheet = $h(V_NAME);
Luego verifico si existe esa hoja, si no existe la voy a crear. En caso que exista una hoja con ese nombre, voy a informar al usuario que hay una hoja con ese nombre y que tome acción al respecto. En el caso que no se pueda crear la página con el nombre por default, se deberá correr el script onInstall en forma manual, esto se puede hacer desde el administrador de secuencias de comandos o escribiendo "=onInstall()" en cualquier celda.
if (sheet == null) {
...
//Creo la hoja
...
}else{
//Informo al usuario para que tome acción
Browser.msgBox("Administración de e-mails.",
"La página "+V_NAME+" ya existe! "+
"Esta página es necesaria para utilizar la aplicación. "+
"Si Ud. está utilizando una hoja con el nombre "+V_NAME+
" por favor, cambie el nombre de la variable V_NAME desde "+
"el administrador de secuencia de comandos.", Browser.Buttons.OK );
}
Para crear la hoja, utilizo el método del libro insertSheet
sheet = $l().insertSheet(V_NAME);
Obtengo las 2 primeras celdas para dar forma a la cabecera
var r = sheet.getRange(1, 1, 1, 2);
r.setValues([["Acción", "email"]]);
r.setComments([["Ingrese la acción.",
"Ingrese un e-mail válido."]]);
r.setBackgroundColor("#c3c3c3");
r.setFontWeight("bold");
r.setHorizontalAlignment("center");
Informo al usuario que se ha creado la hoja
Browser.msgBox("Administración de e-mails.",
"La página "+V_NAME+" fue creada!",
Browser.Buttons.OK );
Finalmente, dejo la hoja recién creada en primer plano
sheet.activate();