Así es cómo puedes enviar un correo electrónico desde una Hoja de Cálculo con secuencias de comandos de Google Apps Script.

Google Apps Script es una poderosa herramienta que puede utilizar para automatizar las herramientas de productividad de Google, como Hojas de cálculo (Google Sheets) y Documentos (Docs). La capacidad de enviar correos electrónicos automáticamente lo convierte en una herramienta extra poderosa.

Por cualquier razón que usted tenga para enviar varios correos, este truco le ayudará ha realizarlo con poco esfuerzo, así nunca tendrá que enviar manualmente los datos de nuevo. ¡Vamos a hacer que Google Script realice todo el trabajo por usted!

1. Configurar la hoja de cálculo para enviar correo

El primer paso para que Google Script envíe correos a través de las Hojas de cálculo es configurar correctamente una hoja que contenga todos los nombres, direcciones de correo electrónico y mensajes a todas las personas a las que desea que el script envíe un correo electrónico.

Bien, una vez en las Hojas de Cálculo, vamos a crear nueva hoja llamada Enviar-Emails (no olvides el nombre porque lo usaremos en el script), y deseará crear un encabezado. Cada fila de esta hoja de cálculo representará un correo electrónico individual que se enviará. Usted puede ver mi configuración en la siguiente imagen:

Enviar Correos Hojas de Calculo

Correos de Ejemplo para Configurar las Hojas de Cálculo

La información estática es sólo texto que he escrito en la celda. Esto no cambiará con el tiempo. Sin embargo, para los datos que desea cambiar, puede insertar funciones llamándolas desde cualquier otra hoja de la Hoja de Cálculo.

Una vez que haya terminado de crear la hoja, y todos los correos electrónicos individuales están listos, es hora de escribir el script.

2. Escribir la secuencia de comandos automatizada

Para escribir el script, necesitas usar el editor de script. Encontrará el editor de secuencias de comandos en el menú Herramientas seleccionando Editor de secuencias de comandos.

Editor de Secuencias de Comandos

Editor de Secuencias de Comandos – Hojas de Cálculo

El editor de secuencias de comandos se verá como a continuación. Usted puede colocarle cualquier nombre a su función.

Función en Hojas de Calculo

Función en Editor de Secuencias de Comandos

Ahora bastará con copiar y pegar el siguiente script en el área de la secuencia de comandos.

function enviarMultiEmails() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 ss.setActiveSheet(ss.getSheetByName("Enviar-Emails"));
 var sheet = SpreadsheetApp.getActiveSheet();
 var dataRange = sheet.getRange("B3:E6");
 var data = dataRange.getValues();
 for (i in data) {
 var rowData = data[i];
 var emailAddress = rowData[1];
 var destinatario = rowData[0];
 var mensaje1 = rowData[2];
 var parametro1 = rowData[3];
 var mensaje = 'Estimado ' + destinatario + ',\n\n' + mensaje1 + ' ' + parametro1;
 var asunto = 'Mensajes Pendientes';
 MailApp.sendEmail(emailAddress, asunto, mensaje);
 }
}

Este script puede parecer algo complicado, pero en realidad no lo es. Vamos a examinarlo para que sepas exactamente lo que está haciendo cada línea.

3. Examinando el Script

Para que esta función funcione (😅) correctamente, debe asegurarse de que la hoja en la que se almacena toda la información de correo electrónico es en realidad la hoja activa. De lo contrario todo lo que viene después no funcionará. Para eso son estas dos líneas:

var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Enviar-Emails"));

A continuación, necesitamos extraer todos los datos de esa hoja. El método sheet.GetRange() extraerá información de cualquier rango de celdas que proporcione dentro de las comillas. El método dataRange.getValues() extrae los valores y los almacena en una matriz bidimensional llamada data.

var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange("B3:E6");
var data = dataRange.getValues();

Ahora que tenemos todos los datos almacenados en una matriz, podemos realizar un bucle utilizando for. Cada elemento de la matriz es una fila que contiene una matriz unidimensional de elementos de columna. Puede hacer referencia a cada columna utilizando un número.

var rowData = data[i];
var emailAddress = rowData[1];
var destinatario = rowData[0];
var mensaje1 = rowData[2];
var parametro1 = rowData[3];

Como se puede ver arriba, he extraído los elementos de columna en una matriz unidimensional llamada rowData. Luego hago referencia a la segunda columna (para obtener la dirección de correo electrónico), es decir a rowData[1] , el segundo elemento de la matriz (el primer elemento de una matriz es siempre cero [0]).

El siguiente paso en esta función es reunir todos los segmentos de los mensajes que componen el cuerpo del correo electrónico. Lo bueno de esto es que puedes darle un formato bastante bueno al contenido usando el carácter \n , que es un salto de línea. A continuación, se muestra la concatenación del cuerpo del correo electrónico:

var message = 'Estimado ' + destinatario + ',\n\n' + mensaje1 + ' ' + parametro1;

El carácter + es un comando de concatenación. Usted pone el texto estático real dentro de comillas simples. Por lo tanto, este mensaje se reúne colocando la palabra “Estimado” delante de la variable “destinatario” (tenga en cuenta que “Estimado” lleva un espacio).

Recuerde que usted puede tener o usar tantas “columnas” o partes del mensaje como desee (en mi caso solo tengo Mensaje1 y Parámetro1). Finalmente, el método sendEmail(). Usted también puede añadir el asunto.

3. Cómo desencadenar su secuencia de comandos

De vuelta en la ventana del Editor de secuencias de comandos, agregue una nueva función “onOpen” y es la siguiente:

var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
{name: 'Send Emails', functionName: 'enviarMultiEmails'}
];
spreadsheet.addMenu('Enviar Emails', menuItems);

Sólo asegúrese de escribir el nombre exacto de su función en comillas simples para el parámetro functionName. Esto cargará un elemento de menú personalizado en la hoja cada vez que se abre la Hoja de Cálculo.

Ahora, ejecute la función onOpen(). Cuando le aparezca un mensaje de autorización simplemente dele a continuar y permita todo lo que Google le solicite.

Autorización Editor Secuencias Comandos

Autorización para el Editor de Secuencias de Comandos

Entonces, cada vez que abra su hoja de cálculo para revisar todos sus datos, todo lo que tiene que hacer es hacer clic en el elemento del menú que le llamamos “Enviar Emails” (Send Emails). Esto ejecutará su nueva función y enviará todos esos correos electrónicos para usted. Un trabajo que solía llevar varias horas ahora sólo requiere un solo clic!

Enviar Emails Hoja de Calculo

Enviar Emails con Hoja de Calculo

Mensaje enviado desde Hoja de Cálculo

Mensaje enviado desde una Hoja de Cálculo

 

4. Vídeo: Enviar emails con Hoja de Cálculo y Google Script

Este es sólo un ejemplo de las muchas formas en que puede utilizar Google Script para automatizar todo tipo de cosas que le ahorran tiempo. Así que ampliaremos más trucos. Si te gustado el artículo dale a ¡Compartir! 😉

Cómo Enviar Correo desde una Hoja de Cálculo con un Script
5 (100%) 9 votes