Cómo enviar un correo electrónico en una hoja de Google con Google Scripts

Cómo enviar un correo electrónico en una hoja de Google con Google Scripts / Programación

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

Tal vez usted es un empleado que espera enviar un correo electrónico mensual a su jefe con fórmulas calculadas automáticamente en Google Sheets. Visualice sus datos y haga que sus hojas de cálculo sean fáciles de usar con un tablero de Excel Visualice sus datos y haga que sus hojas de cálculo sean fáciles de usar con un panel de Excel A veces, un simple formato de hoja de cálculo no es lo suficientemente atractivo como para que sus datos sean accesibles. Un panel de control le permite presentar sus datos más importantes en un formato fácil de digerir. Lee mas . O tal vez sea un gerente que dedica demasiado tiempo a enviar 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 poco de esfuerzo una vez, nunca más tendrás que enviar datos manualmente. Deje que Google Scripts actúe como su propio asistente personal, haciendo todo el trabajo por usted..

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

El primer paso para que su Google Script envíe correo a través de Google Sheets es configurar correctamente una hoja que tenga todos los nombres, direcciones de correo electrónico y mensajes para todas las personas a las que desea que se envíe el script..

En mi ejemplo, estoy empezando con una hoja de cálculo que configuré para importar automáticamente todos los artículos publicados para el mes desde Google Analytics. Panel de control de Analytics para el sitio web de Google Killer con la API de Google Core Reporting Panel de control de Google Analytics para el sitio web de Killer con Google Core Reporting API ¿Le gustaría simplemente publicar un sitio y ejecutarlo a ciegas, o le gustaría tener un panel de control funcional con todas las funciones que le muestre lo que está sucediendo con el sitio en todo momento? Lee mas . He creado un “Todos los autores” hoja que cuenta los artículos publicados para cada autor, y ahora quiero enviar a cada autor un correo electrónico con su cuenta.

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”.

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á. Así que en este ejemplo, he creado una hoja para el nombre del destinatario, su dirección de correo electrónico y partes del mensaje que voy a juntar dentro del script..

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

La información estática es solo el texto que he escrito en la celda. Esto no cambiará de mes a mes. Es solo una parte del mensaje de correo electrónico que siempre se mantiene 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..

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 correo electrónico de envío 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 hayas terminado de crear tu hoja, se verá algo como esto:

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

Escribiendo el script automatizado de correo electrónico

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

El editor de guiones se verá como a continuación. Tendrá que crear una nueva función en la parte superior del panel de la derecha.

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 ​​(); para (i en datos) var rowData = datos [i]; var emailAddress = rowData [1]; var destinatario = rowData [0]; var mensaje1 = rowData [2]; var mensaje2 = rowData [3]; var parámetro2 = rowData [4]; var message3 = rowData [5]; var mensaje = 'Estimado' + destinatario + ', \ n \ n' + mensaje1 + "+ mensaje2 +" + parámetro2 + "+ mensaje3; var asunto = 'Recuento de su artículo para este mes'; MailApp.sendEmail (dirección de correo electrónico, asunto , mensaje);

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

Rompiendo el código

Para que esta función funcione correctamente, debe asegurarse de que la hoja donde se almacena toda la información de su correo electrónico sea realmente la hoja activa. De lo contrario, todo lo que venga después no funcionará. Para eso son 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. los sheet.GetRange () El método extraerá información de cualquier rango de celdas que proporcione entre comillas. A continuación, el dataRange.getValues ​​() El método en realidad 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 usando una para lazo. Cada elemento de la matriz es una fila que contiene una matriz unidimensional de elementos de columna. Puedes hacer referencia a cada columna usando un número.

var rowData = datos [i]; var emailAddress = rowData [1]; var destinatario = rowData [0]; var mensaje1 = rowData [2]; var mensaje2 = rowData [3]; var parámetro2 = 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) haciendo referencia a rowData [1], el segundo elemento de la matriz (el primer elemento de una matriz siempre es cero).

El siguiente paso en esta función es juntar todos los segmentos de los mensajes que forman el cuerpo del correo electrónico. Lo bueno aquí es que realmente puede dar al contenido del correo electrónico un formato bastante bueno usando el \norte Carácter, que es un retorno de carro. Aquí es cómo se ve la concatenación del cuerpo del correo electrónico:

var mensaje = 'Estimado' + destinatario + ', \ n \ n' + mensaje1 + "+ mensaje2 +" + parámetro2 + "+ mensaje3;

los + 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 adecuada 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 le mostramos cómo usarlas. Lee mas . Usted pone el texto estático real dentro de comillas simples. Así que este mensaje se juntó poniendo la palabra “querido ” delante de la variable receptora (aviso “querido ” tiene un espacio).

A continuación, agregue dos retornos de carro en el extremo. Esto iniciará el mensaje real dentro del cuerpo dos líneas hacia abajo. A continuación, agregue 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 partes del mensaje como desee, simplemente debe usar más columnas para crear todo el mensaje en partes..

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

Cómo activar su script

De vuelta en la ventana del editor de secuencias de comandos, simplemente busque el “onOpen” función. Si la función está ahí, es probable que veas un montón de código dentro de los corchetes. Vaya al final de ese código e inserte las siguientes líneas:

var spreadsheet = SpreadsheetApp.getActive (); var menuItems = [name: 'Send Emails', functionName: 'sendArticleCountEmails']; spreadsheet.addMenu ('Enviar correos electrónicos', elementos de menú);

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

Ahora, cuando abra 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 llevarle varias horas ahora solo requerirá un clic del mouse!

Google Scripts puede ayudarte a ahorrar tiempo

Este es solo un ejemplo de las muchas maneras en que puede usar Google Scripts para automatizar todo tipo de cosas. 4 Google Scripts que hacen que las hojas de Google sean mucho más poderosas. 4 Google Scripts que hacen que las hojas de Google sean mucho más poderosas. puede ser incluso más poderoso si usa Google Scripts para mejorar sus capacidades. Leer más que te ahorran tiempo. Por ejemplo, puede usar Google Scripts para generar automáticamente un informe de Google Analytics. La parte difícil es solo que requiere un poco de trabajo por adelantado, pero cada minuto que dedica a configurar la automatización de este modo mediante el uso de secuencias de comandos se ahorra muchas horas. Solo piensa en todas las otras cosas maravillosas que podrías hacer con esas horas!

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

Explorar más sobre: ​​Google Apps, hoja de cálculo.