2016-12-08 4 views
0

То, что я пытаюсь достичь: вытаскивать сообщения электронной почты из учетной записи gmail, поскольку они входят в соответствие с определенным критерием «subject: содержит этот текст» внутри метки «label/sub label» и добавляет предмет этого письма в колонку D и временную метку с того момента, когда эта почта была отправлена ​​в колонку B.Скрипт Google Apps, GMail, электронные таблицы

Что я до сих пор: он может выбрать самые последние электронные письма (в качестве примера - 5) и добавить в столбец А.

function parseEmailMessages(start) { 

     start = start || 0; 

     var threads = GmailApp.getUserLabelByName('Label/SubLabel').getThreads(start, 5); 
     var sheet = SpreadsheetApp.getActiveSheet(); 

     for (var i = 0; i < threads.length; i++) { 

     // Get the first email message of a threads 
     var tmp, 
      message = threads[i].getMessages()[0], 
      subject = message.getSubject(), 
      content = message.getPlainBody(); 

     // Get the plain text body of the email message 
     // You may also use getRawContent() for parsing HTML 

     // Implement Parsing rules using regular expressions 
     if (content) { 

      tmp = content.match(/Name:\s*([A-Za-z0-9\s]+)(\r?\n)/); 
      var username = (tmp && tmp[1]) ? tmp[1].trim() : 'No username'; 

      tmp = content.match(/Email:\s*([[email protected]]+)/); 
      var email = (tmp && tmp[1]) ? tmp[1].trim() : 'No email'; 

      tmp = content.match(/Comments:\s*([\s\S]+)/); 
      var comment = (tmp && tmp[1]) ? tmp[1] : 'No comment'; 

      sheet.getRange(sheet.getLastRow(), 3).setValues(test); 
      //sheet.appendRow([subject]); 

     } // End if 

     } // End for loop 
    } 

ответ

0

вы должны изменить способ вы забирающие темы из Gmail:

var threads = GmailApp.getUserLabelByName('Label/SubLabel').getThreads(start, 5); 

изменить это:

var threads = GmailApp.search('subject:(contains this text) label:Label-SubLabel', start, 5); 
Смежные вопросы