in

Envío Automático de Emails con Google Apps Script

Envío de emails automáticos con Google Apps Scripts

Tras un breve tiempo de inactividad debido a la gran cantidad de trabajo navideño que hemos tenido, volvemos con nuestro querido blog SnippetsBoard. Como viene siendo lo habitual, seguimos con las herramientas que esperamos os estén siendo de gran utilidad para automatizar vuestras tareas.

Después de ver cómo se pueden enviar mensajes de Whatsapp de forma automática, imaginamos que cualquier tipo de mensaje que podamos enviar de forma automática a través de cualquier otra plataforma va a parecer una minucia en comparación. Sin embargo, como a nivel empresarial el envío de emails suele ser el medio de comunicación mayoritario, hemos considerado bastante interesante compartir con vosotros también esta opción.

Como comentaba, el correo electrónico suele ser la forma más común de comunicación a nivel empresarial. Igualmente el programa Excel de Microsoft Office suele ser uno de de los más usados también a nivel empresarial para múltiples usos. Ya sabéis que aquí no somos muy «fans» de la suite ofimática de Microsoft, por factores como los siguientes:

  • Dependiendo de la modalidad que utilicemos, puede no ser gratuito.
  • No consideramos que a nivel formativo sea interesante realizar programación y/o macros sobre ella, puesto que VBA (Visual Basic for Applications) es un lenguaje con poca utilidad fuera de esto, mientras que las Hojas de Cálculo de Google funcionan a través de Javascript.
  • El trabajo colaborativo sobre el software de Microsoft está bastante peor implementado, tanto trabajando sobre el programa offline como a través de la versión online de Excel.
  • El trabajo con fórmulas en las Hojas de Cálculo de Google es prácticamente igual al que se realiza sobre Excel.

De esta forma, hoy vamos a unir, dos de las herramientas empresariales más utilizadas en la actualidad: el correo electrónico y las Hojas de Cálculo para crear métodos de envío de emails masivos, ya sea a la vez o de manera secuencial. Y como siempre, todo preparado para funcionar de manera automática.

Una vez realizada esta introducción que para muchos imagino que habrá sido un coñazo, os presentamos el snippet de hoy:

var spreadsheeturl = 'https://docs.google.com/spreadsheets/d/estaesunaurlinventada/edit#gid=0'; var sheetname = 'emails'; var columnadirecciones = 'B'; var columnaasunto = 'D'; var columnamensaje = 'g';   var columnas = {'A': 0,                 'B': 1,                 'C': 2,                 'D': 3,                 'E': 4,                 'F': 5,                 'G': 6,                 'H': 7,                 'I': 8,                 'J': 9,                 'K': 10,                 'L': 11,                 'M': 12,                 'N': 13,                 'O': 14,                 'P': 15,                 'Q': 16,                 'R': 17,                 'S': 18,                 'T': 19,                 'U': 20,                 'V': 21,                 'W': 22,                 'X': 23,                 'Y': 24,                 'Z': 25,                 'a': 0,                 'b': 1,                 'c': 2,                 'd': 3,                 'e': 4,                 'f': 5,                 'g': 6,                 'h': 7,                 'i': 8,                 'j': 9,                 'k': 10,                 'l': 11,                 'm': 12,                 'n': 13,                 'o': 14,                 'p': 15,                 'q': 16,                 'r': 17,                 's': 18,                 't': 19,                 'u': 20,                 'v': 21,                 'w': 22,                 'x': 23,                 'y': 24,                 'z': 25                };   var ss = SpreadsheetApp.openByUrl(spreadsheeturl); var sh = ss.getSheetByName(sheetname); var shlastrow = sh.getLastRow(); var shlastcolumn = sh.getLastColumn();   var columnadireccionesnumber = columnas[columnadirecciones]; var columnaasuntonumber = columnas[columnaasunto]; var columnamensajenumber = columnas[columnamensaje];  //Envia todos los emails en la hoja function multiSendEmail(){   var shdatarange = sh.getRange(1, 1, shlastrow, shlastcolumn);   var shdata = shdatarange.getValues();   for (var i in shdata){     GmailApp.sendEmail(shdata[i][columnadireccionesnumber], shdata[i][columnaasuntonumber], shdata[i][columnamensajenumber]);   } }  //Envia la primera linea de email cada vez function sendOneEmailAtATime(){   var dataone = sh.getRange(1, 1, 1, shlastcolumn).getValues();   GmailApp.sendEmail(dataone[0][columnadireccionesnumber], dataone[0][columnaasuntonumber], dataone[0][columnamensajenumber]);   sh.deleteRow(1); }

Con este snippet básicamente lo que haremos es crear una hoja de cálculo en la cual cada una de las filas corresponderá a un email que se enviará de forma automática.

Los que habéis seguido anteriores entradas de snippetsboard, imaginamos que ya controlais más o menos el sistema de variables y parámetros para poder manejar este snippet. Pero para los que aún no estáis familiarizados con nuestra web y en si con Google Apps Scripts os recomiendamos muy encarecidamente la lectura de: introducción al manejo de google apps script.

Bueno, una vez dicho esto, empiezo comentándoos los parámetros a sustituir:

  • spreadsheeturl: sustituimos por la url de la hoja de cálculo con la que vamos a operar.
  • sheetname: sustituimos por el nombre de la hoja en la que vamos a tener los datos.
  • columnadirecciones: sustituimos por la letra de la columna en la que se van a encontrar las direcciones a las que deseamos enviar los emails.
  • columnaasunto: sustituimos por la letra de la columna en la que se van a encontrar los asuntos de cada uno de los emails a enviar.
  • columnamensaje: sustituimos por la letra de la columna en la que se van a encontrar el cuerpo de cada uno de los correspondientes emails.

Una vez comentado esto, decir que en este caso dispondremos de dos funciones a elegir dependiendo del uso que queráis darle al snippet. En primer lugar, la función multiSendEmail que enviará todos los emails de la hoja de cálculo a la vez. Y después sendOneEmailAtATime, que los enviará de forma secuencial, es decir, está pensada para enviar los emails de uno en uno usando un activador por tiempo.
Los que seais muy forofos de las hojas de cálculo y estéis acostumbrados a usar fórmulas probablemente encontréis formas de usar este snippet para generar innumerables emails personalizados usando funciones de manipulación de cadenas de texto como CONCATENAR, EXTRAE o similares junto con otros contenidos de nuestra web como puede ser Guardar los contactos de nuestra cuenta de Google en una hoja de cálculo de forma automática.

Como forma anecdótica, os mostramos aquí 1 hoja de calculo preparada para hacer los envios de emails.-

Envío Automático de Emails con Google Apps Script: Hoja de Cálculo preparada

Como podéis ver, se trata de un snippet muy sencillo, pero que os puede permitir realizar gran cantidad de tareas automáticas rápido y fácil en lo que a automatización de emails se refiere.

¿Qué opinas?

Escrito por Antonio David Cruz

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Plublicando Tweets con Google App Scripts

Plublicando Tweets con Google App Scripts

Introducción a Google Apps Script Parte 2

Introducción a Google Apps Script Parte 2