Cómo leer mensajes de Gmail desde Google Apps Script

Artículo perteneciente a la gestión de gmail desde Google Apps Script
Este artículo se ha usado para el proyecto : Organizador de emails

A veces nos puede resultar útil que un script pueda leer nuestros correos para organizarlos, recopilar información o filtrarlos.

Como casi siempre que trabajamos con GAS, es más fácil implementarlo de lo que podría parecer en un principio.

Con estas pocas lineas del ejemplo, ejecutadas desde una hoja de cálculo, podréis ver los resultados.

function LeerEmail()
{
  var emails = GmailApp.getInboxThreads();

  var string = "";

  for(var e = 0 ; e < emails.length ; ++e )
  {
     string += emails[e].getFirstMessageSubject() + "\n";
  }
  SpreadsheetApp.getUi().alert(string);
}

El resultado que aparecerá será algo de este estilo:

Espero que os sirva para vuestros proyectos

4 comentarios:

  1. ¿Cómo podría obtener solamente los mensajes que están etiquetados con determinada etiqueta?

    ResponderEliminar
  2. No lo he probado, pero debería funcionarte esto:

    function LeerEmail()
    {
    var emails = GmailApp.getInboxThreads();

    var string = "";

    for(var e = 0 ; e < emails.length ; ++e )
    {
    var labels = emails[e].getLabels();
    for(var l = 0 ; l < labels.length ; ++l )
    {
    if ( labels[l].getName() == "Trabajo" )
    {
    string += emails[e].getFirstMessageSubject() + "\n";
    }
    }
    }
    SpreadsheetApp.getUi().alert(string);
    }

    Evidentemente donde pone "Trabajo" pon la etiqueta que tu necesites.

    Ya me contaras como te ha ido

    ResponderEliminar
  3. Buenos días, como seria un script para extraer información de un correo y exportar el cuerpo del mensaje en un excel??

    ResponderEliminar
    Respuestas
    1. Lo mismo que tienes en este post pero:
      1. Deberias seleccionar que correo quieres extraer (emails[x])
      2. Dentro de ese correo deberias obtener todos los mensajes de la conversación con getMessages()
      3. Deberias seleccionar cual de esos mensajes es el que quieres [y]
      4. Deberias obtener el cuerpo del mensaje en cuestión con getPlainBody().

      Resumiendo, si quisieras obtener el cuerpo del primer mensaje de tu bandeja de entrada deberias hacer algo de este estilo:
      emails[0].getMessages()[0].getPlainBody()

      Para poner esa información en un excel ( hoja de calculo de google, mejor :) ) te remito al tutorial en concreto: http://googleappscriptsweb.blogspot.com.es/2015/02/como-escribir-en-una-celda-de-una-hoja.html

      Espero q te sirva

      Nos vemos

      Eliminar

Related Posts Plugin for WordPress, Blogger...