in

Anota Emails de Gmail en una Hoja de Calculo mediante Google Apps

Anota Emails de Gmail en una Hoja de Calculo mediante Google Apps

Para inaugurar la web, vamos a comenzar compartiendo uno de los code snippets que más utilizamos en nuestros desarrollos.

La funcionalidad de este snippet es la de anotar en una hoja de cálculo de google (spreadsheet) los emails que deseemos de nuestra cuenta de correo de gmail.

Es especialmente interesante en el caso de que se tenga algún tipo de negocio con pedidos a gestionar, ya que de esta forma los pedidos se anotarán automáticamente en una hoja de cálculo de google sobre la que el equipo podrá trabajar de forma simultánea.

Para poder realizar este snippet, sino dispones de conocimientos previos de Google Apps Script, deberías de leer la sección previa: Introducción al Manejo de Google Apps Script. Ahí tenemos una explicación detallada de como comenzar con este servicio totalmente gratuito.

El script viene diseñado por defecto de forma que lee los emails no leídos del inbox de la cuenta de correo, los apunta en la excel designada y posteriormente los marca como leídos, para no volverlos a apuntar de nuevo.

Explicado el objetivo del mismo, pasamos a definir los parámetros a ajustar:

¿Qué opciones tenemos disponibles?

inone, intwo, inthree: Indica en que carpeta del correo se va a encontrar el email. Para que el script realice la función para la que lo estamos compartiendo es necesario usar la opción inbox, aparte, en el 99% de los casos es la opción adecuada a elegir. De todas formas, dejamos algunas de las otras opciones posibles en caso de que algún usuario avanzado desee realizar pruebas con el script:
– anywhere: buscamos entre todos los correos de gmail. No se recomienda utilizarlo ya que las consultas son muy largas y sobrecarga el servicio.
– draft: buscamos en los borradores.
– unread: buscamos entre los no leídos.
– chats: buscamos entre los mensajes de chat.
– sent: buscamos entre los mensajes enviados.
– starred: buscamos entre los mensajes destacados (marcado con estrella).
– important: buscamos entre los mensajes marcados como importantes.
– spam: buscamos entre los mensajes de spam.
– trash: buscamos en la papelera.

labelone, labeltwo, labelthree: Sirve para indicar si queremos filtrar el correo por alguna categoría. Estas categorías puede haberlas creado el usuario, o pueden ser las que por defecto posee google. Para que el script realice la función para la que lo estamos compartiendo es necesario usar la opción unread. De todas formas como en el caso anterior dejamos algunas posibles alternativas:

– read: busca entre los correos marcados como leídos.
– starred: buscamos entre los emails marcados como destacados (marcado con estrella).
– important: buscamos entre los emails marcados como importantes.
– social: buscamos entre los emails de la pestaña social.
– promotions: buscamos entre los emails de la pestaña promociones.

fromone, fromtwo, fromthree: Con este parámetro indicamos el correo del que provienen los emails que buscamos.

subjectone, subjecttwo, subjectthree: Con este parámetro indicamos el asunto o parte del asunto que deben tener los emails que buscamos.

Vamos a proceder pegando la totalidad del código y después, lo desgranaremos con un ejemplo. Así seguro que se hace más fácil su implementación.

var inone = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA BANDEJA DONDE QUIERAS BUSCAR LOS MAILS##'; var labelone = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA ETIQUETA QUE TIENEN LOS EMAILS QUE QUIERES ENCONTRAR##'; var fromone = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR LA DIRECCION DE CORREO DEL REMITENTE DEL CORREO QUE QUIERAS ENCONTRAR##'; var subjectone = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR EL ASUNTO O PARTE DEL ASUNTO DE LOS CORREOS QUE QUIERAS ENCONTRAR##';   var intwo = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA BANDEJA DONDE QUIERAS BUSCAR LOS MAILS##'; var labeltwo = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA ETIQUETA QUE TIENEN LOS EMAILS QUE QUIERES ENCONTRAR##'; var fromtwo = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR LA DIRECCION DE CORREO DEL REMITENTE DEL CORREO QUE QUIERAS ENCONTRAR##'; var subjecttwo = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR EL ASUNTO O PARTE DEL ASUNTO DE LOS CORREOS QUE QUIERAS ENCONTRAR##';   var inthree = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA BANDEJA DONDE QUIERAS BUSCAR LOS MAILS##'; var labelthree = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA ETIQUETA QUE TIENEN LOS EMAILS QUE QUIERES ENCONTRAR##'; var fromthree = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR LA DIRECCION DE CORREO DEL REMITENTE DEL CORREO QUE QUIERAS ENCONTRAR##'; var subjectthree = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR EL ASUNTO O PARTE DEL ASUNTO DE LOS CORREOS QUE QUIERAS ENCONTRAR##';   var spreadsheeturl = '##URL DE LA HOJA DE CALCULO##'; var sheetname = '##NOMBRE DE LA HOJA DENTRO DE LA HOJA DE CÁLCULO##'; var columnafrom = '##LETRA DE LA COLUMNA EN LA QUE DESEAS QUE SE ANOTE QUIÉN ENVIA EL EMAIL##'; var columnasubject = '##LETRA DE LA COLUMNA EN LA QUE DESEAS QUE SE ANOTE EL ASUNTO DEL EMAIL##'; var columnabody = '##LETRA DE LA COLUMNA EN LA QUE DESEAS QUE SE ANOTE EL CUERPO DEL EMAIL##';  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 columnafromnumber = columnas[columnafrom]; var columnasubjectnumber = columnas[columnasubject]; var columnabodynumber = columnas[columnabody];    var queryone = ''; if (inone != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA BANDEJA DONDE QUIERAS BUSCAR LOS MAILS##' && inone.length > 0){   queryone = queryone + 'in:' + inone; } if (labelone != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA ETIQUETA QUE TIENEN LOS EMAILS QUE QUIERES ENCONTRAR##' && labelone.length > 0){   if (queryone.length > 2){     queryone = queryone + ' label:' + labelone;   } else {     queryone = queryone + 'label:' + labelone;   } } if (fromone != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR LA DIRECCION DE CORREO DEL REMITENTE DEL CORREO QUE QUIERAS ENCONTRAR##' && fromone.length > 0){   if (queryone.length > 2){     queryone = queryone + ' from:' + fromone;   } else {     queryone = queryone + 'from:' + fromone;   } } if (subjectone != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR EL ASUNTO O PARTE DEL ASUNTO DE LOS CORREOS QUE QUIERAS ENCONTRAR##' && subjectone.length > 0){   if (queryone.length > 2){     queryone = queryone + ' subject:' + subjectone;   } else {     queryone = queryone + 'subject:' + subjectone;   } }   var querytwo = ''; if (intwo != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA BANDEJA DONDE QUIERAS BUSCAR LOS MAILS##' && intwo.length > 0){   querytwo = querytwo + 'in:' + intwo; } if (labeltwo != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA ETIQUETA QUE TIENEN LOS EMAILS QUE QUIERES ENCONTRAR##' && labeltwo.length > 0){   if (querytwo.length > 2){     querytwo = querytwo + ' label:' + labeltwo;   } else {     querytwo = querytwo + 'label:' + labeltwo;   } } if (fromtwo != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR LA DIRECCION DE CORREO DEL REMITENTE DEL CORREO QUE QUIERAS ENCONTRAR##' && fromtwo.length > 0){   if (querytwo.length > 2){     querytwo = querytwo + ' from:' + fromtwo;   } else {     querytwo = querytwo + 'from:' + fromtwo;   } } if (subjecttwo != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR EL ASUNTO O PARTE DEL ASUNTO DE LOS CORREOS QUE QUIERAS ENCONTRAR##' && subjecttwo.length > 0){   if (querytwo.length > 2){     querytwo = querytwo + ' subject:' + subjecttwo;   } else {     querytwo = querytwo + 'subject:' + subjecttwo;   } }    var querythree = ''; if (inthree != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA BANDEJA DONDE QUIERAS BUSCAR LOS MAILS##' && inthree.length > 0){   querythree = querythree + 'in:' + inthree; } if (labelthree != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA ETIQUETA QUE TIENEN LOS EMAILS QUE QUIERES ENCONTRAR##' && labelthree.length > 0){   if (querythree.length > 2){     querythree = querythree + ' label:"' + labelthree + '"';   } else {     querythree = querythree + 'label:' + labelthree + '"';   } } if (fromthree != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR LA DIRECCION DE CORREO DEL REMITENTE DEL CORREO QUE QUIERAS ENCONTRAR##' && fromthree.length > 0){   if (querythree.length > 2){     querythree = querythree + ' from:' + fromthree;   } else {     querythree = querythree + 'from:' + fromthree;   } } if (subjectthree != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR EL ASUNTO O PARTE DEL ASUNTO DE LOS CORREOS QUE QUIERAS ENCONTRAR##' && subjectthree.length > 0){   if (querythree.length > 2){     querythree = querythree + ' subject:"' + subjectthree + '"';   } else {     querythree = querythree + 'subject:' + subjectthree + '"';   } }  function getMarkAsReadAndWriteDown() {   var unthreads = [];   if (queryone.length > 0){unthreads = unthreads.concat(GmailApp.search(queryone));}   if (querytwo.length > 0){unthreads = unthreads.concat(GmailApp.search(querytwo));}   if (querythree.length > 0){unthreads = unthreads.concat(GmailApp.search(querythree));}    var unmails = [];   for (var i in unthreads){     var mails = unthreads[i].getMessages();     for (var j in mails){       if (mails[j].isUnread()){         unmails.push(mails[j])       }     }   }    GmailApp.markThreadsRead(unthreads);    for (var h in unmails){     var unfrom = unmails[h].getFrom();     var unsubject = unmails[h].getSubject();     var unbody = unmails[h].getBody().replace(/<.*?>/g, 'n').replace(/^s*n/gm, '').replace(/^s*/gm, '').replace(/s*n/gm, 'n');          var therow = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''];      therow[columnafromnumber] = unfrom;     therow[columnasubjectnumber] = unsubject;     therow[columnabodynumber] = unbody;          sh.appendRow(therow);   }    }

Como decíamos anteriormente, el código puede resultar quizá un poco lioso, sobre todo si no se está acostumbrado a trabajar con Google Apps. Por lo que vamos a aplicarlo de manera rápida en un pequeño ejemplo.

Un Ejemplo Breve

En nuestro caso, vamos a tratar con un mail simple. El objetivo será anotar en una Hoja de Calculo de Google aquellos emails que nos llegan a nuestro correo y cuyo asunto contenga las palabras: Nuevo Pedido Recibido. Estos serán apuntados en la hoja de calculo Pedidos. En la que la columna A corresponderá a la dirección desde la que se nos ha enviado el mail, la columna C el asunto y la columna E, el contenido del email.

La idea es obtener una hoja de cálculo similar a la siguiente:

Anota Emails de Gmail en una Hoja de Calculo mediante Google Apps: Hoja de cálculo de muestra
var inone = 'inbox'; var labelone = 'unread'; var fromone = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR LA DIRECCION DE CORREO DEL REMITENTE DEL CORREO QUE QUIERAS ENCONTRAR##'; var subjectone = 'Nuevo Pedido Recibido';  var spreadsheeturl = 'https://docs.google.com/spreadsheets/dlioiooiuou4534o5tuo36oedit#gid=394860325'; var sheetname = 'Pedidos'; var columnafrom = 'A'; var columnasubject = 'C'; var columnabody = 'E';

De esta manera, la hoja queda configurada para apuntar los datos correspondientes del email en las filas indicadas. Cada vez que llega un email cuyo asunto contenga las palabras: «Nuevo Pedido Recibido«, todos los datos quedarán apuntados en la hoja de calculo de Google. Concretamente en la hoja Pedidos.

Para continuar, pegaremos el resto del snippet tal cual os lo hemos compartido:

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 columnafromnumber = columnas[columnafrom]; var columnasubjectnumber = columnas[columnasubject]; var columnabodynumber = columnas[columnabody];    var queryone = ''; if (inone != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA BANDEJA DONDE QUIERAS BUSCAR LOS MAILS##' && inone.length > 0){   queryone = queryone + 'in:' + inone; } if (labelone != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA ETIQUETA QUE TIENEN LOS EMAILS QUE QUIERES ENCONTRAR##' && labelone.length > 0){   if (queryone.length > 2){     queryone = queryone + ' label:' + labelone;   } else {     queryone = queryone + 'label:' + labelone;   } } if (fromone != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR LA DIRECCION DE CORREO DEL REMITENTE DEL CORREO QUE QUIERAS ENCONTRAR##' && fromone.length > 0){   if (queryone.length > 2){     queryone = queryone + ' from:' + fromone;   } else {     queryone = queryone + 'from:' + fromone;   } } if (subjectone != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR EL ASUNTO O PARTE DEL ASUNTO DE LOS CORREOS QUE QUIERAS ENCONTRAR##' && subjectone.length > 0){   if (queryone.length > 2){     queryone = queryone + ' subject:' + subjectone;   } else {     queryone = queryone + 'subject:' + subjectone;   } }   var querytwo = ''; if (intwo != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA BANDEJA DONDE QUIERAS BUSCAR LOS MAILS##' && intwo.length > 0){   querytwo = querytwo + 'in:' + intwo; } if (labeltwo != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA ETIQUETA QUE TIENEN LOS EMAILS QUE QUIERES ENCONTRAR##' && labeltwo.length > 0){   if (querytwo.length > 2){     querytwo = querytwo + ' label:' + labeltwo;   } else {     querytwo = querytwo + 'label:' + labeltwo;   } } if (fromtwo != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR LA DIRECCION DE CORREO DEL REMITENTE DEL CORREO QUE QUIERAS ENCONTRAR##' && fromtwo.length > 0){   if (querytwo.length > 2){     querytwo = querytwo + ' from:' + fromtwo;   } else {     querytwo = querytwo + 'from:' + fromtwo;   } } if (subjecttwo != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR EL ASUNTO O PARTE DEL ASUNTO DE LOS CORREOS QUE QUIERAS ENCONTRAR##' && subjecttwo.length > 0){   if (querytwo.length > 2){     querytwo = querytwo + ' subject:' + subjecttwo;   } else {     querytwo = querytwo + 'subject:' + subjecttwo;   } }    var querythree = ''; if (inthree != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA BANDEJA DONDE QUIERAS BUSCAR LOS MAILS##' && inthree.length > 0){   querythree = querythree + 'in:' + inthree; } if (labelthree != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA ETIQUETA QUE TIENEN LOS EMAILS QUE QUIERES ENCONTRAR##' && labelthree.length > 0){   if (querythree.length > 2){     querythree = querythree + ' label:"' + labelthree + '"';   } else {     querythree = querythree + 'label:' + labelthree + '"';   } } if (fromthree != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR LA DIRECCION DE CORREO DEL REMITENTE DEL CORREO QUE QUIERAS ENCONTRAR##' && fromthree.length > 0){   if (querythree.length > 2){     querythree = querythree + ' from:' + fromthree;   } else {     querythree = querythree + 'from:' + fromthree;   } } if (subjectthree != '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR EL ASUNTO O PARTE DEL ASUNTO DE LOS CORREOS QUE QUIERAS ENCONTRAR##' && subjectthree.length > 0){   if (querythree.length > 2){     querythree = querythree + ' subject:"' + subjectthree + '"';   } else {     querythree = querythree + 'subject:' + subjectthree + '"';   } }  function getMarkAsReadAndWriteDown() {   var unthreads = [];   if (queryone.length > 0){unthreads = unthreads.concat(GmailApp.search(queryone));}   if (querytwo.length > 0){unthreads = unthreads.concat(GmailApp.search(querytwo));}   if (querythree.length > 0){unthreads = unthreads.concat(GmailApp.search(querythree));}    var unmails = [];   for (var i in unthreads){     var mails = unthreads[i].getMessages();     for (var j in mails){       if (mails[j].isUnread()){         unmails.push(mails[j])       }     }   }    GmailApp.markThreadsRead(unthreads);    for (var h in unmails){     var unfrom = unmails[h].getFrom();     var unsubject = unmails[h].getSubject();     var unbody = unmails[h].getBody().replace(/<.*?>/g, 'n').replace(/^s*n/gm, '').replace(/^s*/gm, '').replace(/s*n/gm, 'n');          var therow = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''];      therow[columnafromnumber] = unfrom;     therow[columnasubjectnumber] = unsubject;     therow[columnabodynumber] = unbody;          sh.appendRow(therow);   }    }

Solamente con esto, ya los pedidos van a empezar a anotarse de forma automática en nuestra Hoja de Cálculo, ejecutando la función getMarkAsReadAndWriteDown.

Como podemos observar, hemos apuntado inicialmente lo que corresponde a la «queryone«. Qué incluyen los campos inone, labelone, fromone, subjectone. Los cuales son los que ajustan la configuración para que busque sólo en el inbox, los correos no leídos, desde cualquier remitente, y cuyo asunto contenga las palabras Nuevo Pedido Recibido. En caso de que quisiéramos anotar más emails, podemos utilizar el resto del script. Su programación está hecha para poder anotar emails de hasta 3 combinaciones libres. Por ello aparecen los campos inone, intwo, inthree, labelone, labeltwo, labelthree… etc. etc.

Pero como en este caso no queremos añadir ningún filtro más, simplemente dejamos el resto de variables iniciales tal cual venían en el snippet:

var intwo = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA BANDEJA DONDE QUIERAS BUSCAR LOS MAILS##'; var labeltwo = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA ETIQUETA QUE TIENEN LOS EMAILS QUE QUIERES ENCONTRAR##'; var fromtwo = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR LA DIRECCION DE CORREO DEL REMITENTE DEL CORREO QUE QUIERAS ENCONTRAR##'; var subjecttwo = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR EL ASUNTO O PARTE DEL ASUNTO DE LOS CORREOS QUE QUIERAS ENCONTRAR##';   var inthree = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA BANDEJA DONDE QUIERAS BUSCAR LOS MAILS##'; var labelthree = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR UNO DE LOS COMENTADOS EN EL ARTICULO DEPENDIENDO DE LA ETIQUETA QUE TIENEN LOS EMAILS QUE QUIERES ENCONTRAR##'; var fromthree = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR LA DIRECCION DE CORREO DEL REMITENTE DEL CORREO QUE QUIERAS ENCONTRAR##'; var subjectthree = '##SUSTITUYE ESTE TEXTO ENTRE COMILLAS POR EL ASUNTO O PARTE DEL ASUNTO DE LOS CORREOS QUE QUIERAS ENCONTRAR##';

Es importante destacar la siguiente línea:

var unbody = unmails[h].getBody().replace(/<.*?>/g, 'n').replace(/^s*n/gm, '').replace(/^s*/gm, '').replace(/s*n/gm, 'n');

Esta línea de lo que se encarga es de filtrar el código HTML del email dejando sólo lo que es texto llano apuntado en nuestra hoja de calculo de google. De esta manera, podemos también trabajar con mailing que recibamos de tiendas o de servicios que nos interesen y cuyos mails no sean sólo texto llano.

¿Añadimos un Activador o No?

En la primera entrada explicamos de manera detallada cómo tenemos que hacer para realizar un activador/disparador.

No obstante, y aunque no quieras poner 1 activador periódico, en la guía básica de introducción explicamos de manera detallada como acceder al «Editor de secuencias de comandos» que te será necesario para poder realizar el proyecto.

https://snippetsboard.com/introduccion-al-manejo-de-google-apps-script/
Introducción al Manejo de Google Apps Script

Respecto a los activadores de tiempo, ahora la opción la decides tu. Si sólo deseas en un momento dado, pulsar el botón y que te recopile los emails, no requerirías ningún activador. Pero si lo que deseas es que te los vaya recopilando conforme van entrado, puedes poner un disparados para que haga una revisión cada hora, o cada media hora, o cada 5 minutos, o como lo veas más adecuado.

Cómo podéis observar, y a pesar de que la cantidad de líneas del script es relativamente grande, su manejo es tremendamente sencillo y sus posibilidades son muy altas. Por ejemplo, si vendes artículos en milanuncios, o lo utilizas para buscar contactos de algún tipo, es posible crear una hoja de calculo que apunte en una excel cada vez que alguien te conteste a 1 anuncio a través del sistema de milanuncios. Ya que el asunto de sus correos siempre contiene las palabras «está interesado en tu anuncio«. Y como esas, miles de posibilidades que seguro, te hacen el trabajo más simple.

¿Qué opinas?

Escrito por Antonio David Cruz

2 Comentarios

Dejar una respuesta

2 Pings & Trackbacks

  1. Pingback:

  2. Pingback:

Deja una respuesta

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

Introducción al Manejo de Google Apps Script

Introducción al Manejo de Google Apps Script

Envío de Mensajes Automáticos a Telegram Mediante Google Apps Script

Envío de Mensajes Automáticos a Telegram Mediante Google Apps Script