Cómo enviar correos electrónicos en una hoja de Google con Google Scripts

Aprenda a usar Google Scripts para automatizar las herramientas de productividad de Google, como Hojas de cálculo y Documentos, y ahórrese horas y horas.

Aprenda a usar Google Scripts para automatizar las herramientas de productividad de Google, como Hojas de cálculo y Documentos, y ahórrese horas y horas.
Anuncio

Google Scripts es una poderosa herramienta que puede usar para automatizar las herramientas de productividad de Google Cómo crear un informe automatizado de Google Spreadsheet a partir de datos analíticos Cómo crear un informe automatizado de Google Spreadsheet a partir de datos de Analytics Lea más, como Hojas de cálculo y Documentos. La capacidad de enviar correos electrónicos automáticamente lo convierte en una herramienta muy poderosa.

Tal vez sea un empleado con la esperanza de enviar un correo electrónico mensual a su jefe con fórmulas calculadas automáticamente en Hojas de cálculo de Google Visualice sus datos y haga que sus hojas de cálculo sean fáciles de usar con un panel de Excel Visualice sus datos y convierta sus hojas de cálculo en fáciles de usar. A veces, un formato de hoja de cálculo simple no es lo suficientemente atractivo como para hacer que sus datos sean accesibles. Un tablero de instrumentos le permite presentar sus datos más importantes en un formato fácil de digerir. Lee mas . O tal vez usted es un administrador que pasa demasiado tiempo enviando correos electrónicos a miembros individuales de su equipo con cosas como datos de rendimiento o actualizaciones de estado. La función de Google Scripts que aprenderá en este artículo lo ayudará a realizar estas tareas y mucho más.

Con solo un pequeño esfuerzo una vez, nunca más tendrá que enviar datos manualmente. Deje que Google Scripts actúe como su asistente personal, haciendo todo el trabajo por usted.

Configuración de su hoja para enviar correo electrónico

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

En mi ejemplo, estoy comenzando con una hoja de cálculo que configuré para importar automáticamente todos los artículos publicados para el mes desde Google Analytics. Crear un panel de analizadores de Killer Website With Google Core Reporting Crear un panel de analizadores de Killer Website con Google Core Reporting API ¿Le gustaría simplemente publicar un sitio y ejecutarlo a ciegas, o le gustaría un tablero funcional con todas las funciones que le muestre qué está pasando con el sitio en todo momento? Lee mas . Creé una hoja de "Todos los autores" que hace un recuento de los artículos publicados para cada autor, y ahora deseo enviar a cada autor un correo electrónico con su recuento.

Para comenzar, cree su hoja de correo electrónico especial agregando una hoja nueva en su hoja de cálculo actual y llámela como "Enviar correos electrónicos".

enviar correos electrónicos guiones de google

En esta nueva hoja Enviar correos electrónicos, querrá crear un encabezado. Cada fila en esta hoja de cálculo representará un correo electrónico individual que se enviará. Entonces, en este ejemplo, he creado una hoja para el nombre del destinatario, su dirección de correo electrónico y fragmentos del mensaje que voy a armar dentro del guión.

enviar correos electrónicos guiones de google

Puede crear un correo electrónico de cualquier tamaño y estructura mediante el uso de columnas para unir información estática y dinámica.

enviar correos electrónicos guiones de google

La información estática es solo texto que he tipeado en la celda. Esto no cambiará de mes a mes. Es solo una parte del mensaje de correo electrónico que siempre permanece igual. Sin embargo, para los datos que desea cambiar cada mes, puede insertar funciones que importarán los datos relevantes de cualquier otra hoja en su hoja de cálculo.

enviar correos electrónicos guiones de google

La idea aquí es que cada vez que abra la hoja para revisar su informe automatizado, tendrá un elemento de menú en el que puede hacer clic para ejecutar el envío de correos electrónicos de Google Script y distribuir los resultados a todos. Verá cómo personalizar este nuevo elemento de menú al final de este artículo.

Una vez que haya terminado de crear su hoja, se verá algo como esto:

enviar correos electrónicos guiones de google

Ahora que su hoja para todos los correos electrónicos individuales está lista, ¡finalmente es hora de escribir el guión!

Escribir el script de correo electrónico automatizado

Para escribir su script, necesita usar el editor de script. Encontrará el editor de scripts en el menú Herramientas seleccionando Editor de scripts .

enviar correos electrónicos guiones de google

El editor de scripts se verá más abajo. Tendrá que crear una nueva función en la parte superior del panel a la derecha.

enviar correos electrónicos guiones de google

Simplemente copie y pegue el script a continuación en el área de script.

function sendArticleCountEmails() { var ss = SpreadsheetApp.getActiveSpreadsheet(); ss.setActiveSheet(ss.getSheetByName("Send-Emails")); var sheet = SpreadsheetApp.getActiveSheet(); var dataRange = sheet.getRange("A2:F4"); var data = dataRange.getValues(); for (i in data) { var rowData = data[i]; var emailAddress = rowData[1]; var recipient = rowData[0]; var message1 = rowData[2]; var message2 = rowData[3]; var parameter2 = rowData[4]; var message3 = rowData[5]; var message = 'Dear ' + recipient + ', \n\n' + message1 + ' ' + message2 + ' ' + parameter2 + ' ' + message3; var subject = 'Your article count for this month'; MailApp.sendEmail(emailAddress, subject, message); } } 

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

Desglosando el código

Para que esta función funcione correctamente, debe asegurarse de que la hoja donde se almacena toda su información de correo electrónico sea realmente la hoja activa. De lo contrario, todo lo que viene después no funcionará. Para eso están estas dos líneas:

 var ss = SpreadsheetApp.getActiveSpreadsheet(); ss.setActiveSheet(ss.getSheetByName("Send-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 entre comillas. A continuación, el método dataRange.getValues ​​() realmente extrae los valores y los almacena en una matriz bidimensional llamada datos .

 var sheet = SpreadsheetApp.getActiveSheet(); var dataRange = sheet.getRange("A2:F4"); var data = dataRange.getValues(); 

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

 var rowData = data[i]; var emailAddress = rowData[1]; var recipient = rowData[0]; var message1 = rowData[2]; var message2 = rowData[3]; var parameter2 = rowData[4]; var message3 = rowData[5]; 

Como puede ver arriba, jalé los elementos de la columna en una matriz unidimensional llamada rowData . Luego hago referencia a la segunda columna (para obtener la dirección de correo electrónico) al hacer referencia a rowData [1], el segundo elemento de la matriz (el primer elemento de una matriz es siempre cero).

El siguiente paso en esta función es unir todos los segmentos de los mensajes que componen el cuerpo del correo electrónico. Lo bueno de esto es que puedes darle al contenido del correo un formato bastante bueno usando el caracter \ n, que es un retorno de carro. Aquí se muestra cómo se ve la concatenación del cuerpo del correo electrónico:

 var message = 'Dear ' + recipient + ', \n\n' + message1 + ' ' + message2 + ' ' + parameter2 + ' ' + message3; 

El carácter + es el comando de concatenación 16 Fórmulas de Excel que lo ayudarán a resolver problemas de la vida real 16 Fórmulas de Excel que lo ayudarán a resolver problemas de la vida real La herramienta correcta es la mitad del trabajo. Excel puede resolver cálculos y procesar datos más rápido de lo que puede encontrar su calculadora. Le mostramos las fórmulas clave de Excel y demostramos cómo usarlas. Lee mas . Coloca texto estático real dentro de comillas simples. Por lo tanto, este mensaje se reconstruye colocando la palabra "Estimado" delante de la variable del destinatario (el aviso "Estimado" tiene un espacio).

A continuación, agrega dos retornos de carro al final. Esto iniciará el mensaje real dentro del cuerpo dos líneas hacia abajo. A continuación, agrega el primer segmento de mensaje, un espacio, el segundo segmento de mensaje, un espacio, la variable que se insertará en el mensaje cada mes y finalmente la última parte del mensaje.

Puede tener tantas piezas del mensaje como desee, simplemente tiene que usar más columnas para crear todo el mensaje en pedazos.

Las últimas dos líneas del código solo configuraron la línea de asunto para el correo electrónico (esto también podría incluir datos de la hoja de cálculo si así lo desea), y finalmente el método sendEmail () .

Cómo activar tu secuencia de comandos

De vuelta en la ventana del editor de scripts, solo busque la función "onOpen". Si la función está allí, es probable que vea un montón de código dentro de los corchetes. Vaya a la parte inferior de ese código e inserte las siguientes líneas:

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

Solo asegúrese de escribir el nombre exacto de su función entre comillas simples para el parámetro functionName . Esto cargará un elemento de menú personalizado en su hoja cada vez que se abra la hoja.

enviar correos electrónicos guiones de google

Ahora, cada vez que abre su hoja de cálculo mensualmente para revisar todos sus datos, todo lo que tiene que hacer es hacer clic en el elemento del menú para enviar los correos electrónicos. Esto ejecutará su nueva función y enviará todos esos correos electrónicos por usted. ¡Un trabajo que solía tomar varias horas ahora solo requerirá un solo clic del mouse!

Los guiones de Google pueden ayudarte a ahorrar tiempo

Este es solo un ejemplo de las muchas formas en que puede usar Google Scripts para automatizar todo tipo de cosas. 4 Google Scripts que hacen que las Hojas de Cálculo sean mucho más potentes. 4 Google Scripts que hacen que las Hojas de Cálculo Google Sheets sean mucho más potentes. puede ser aún más poderoso si usa Google Scripts para mejorar sus capacidades. Lea más que le ahorrará tiempo. La parte difícil es solo que requiere un poco de trabajo por adelantado, pero cada minuto que pasa configurando la automatización de este modo mediante el uso de scripts, se ahorran muchas horas. ¡Solo piense en todas las otras cosas maravillosas que podría hacer con esas horas!

¿Alguna vez ha usado ingeniosos Google Scripts para automatizar su productividad? ¡Comparte tus propios ejemplos en la sección de comentarios a continuación!

In this article