根据日期和标签将gmail下载到工作表中

时间:2019-01-23 20:23:14

标签: google-apps-script google-sheets gmail

我的工作使用gmail和许多标签来帮助区分我们的工作。我们正在尝试根据标签导出。我需要的Gmail信息是收件人,收件人和主题。有几种方法可以完成此操作,下载所有电子邮件并在其中包含我可以解析的标签的列,或者为每个标签创建不同的宏。我在网上找到了一些代码,但只允许选择上一个日期的数据。我需要能够选择相对于当前日期的日期范围。就像今天到1年前一样。或昨天加上一年前。请帮助,我的编码不是这个高级。

function FollowUpYesterday() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();
  var sheet = ss.getSheetByName("data");

  var today = new Date();
  var dd = today.getDate() - 1;
  var mm = today.getMonth() + 1; //January is 0 DO NOT FORGET THIS
  var yyyy = today.getFullYear();
  var yesterday = yyyy + '/' + mm + '/' + dd;

  var query = "after:" + yesterday  + " label:02 Status/A FollowUp";

  var threads = GmailApp.search(query);

  for (var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();
    Logger.log(messages);    
    for (var m = 0; m < messages.length; m++) {
      var supportStats = [];

      var from = messages[m].getFrom(); //from field
      var to = messages[m].getTo(); //to field
      var time = messages[m].getDate(); //date field
      var subject = messages[m].getSubject(); //subject field
      var mId = messages[m].getId(); //id field to create the link later

      var mYear = time.getFullYear();
      var mMonth = time.getMonth() + 1;
      var mDay = time.getDate();
      var messageDate = mYear + '/' + mMonth + '/' + mDay;
      Logger.log('msg date ' + messageDate);


      if (messageDate === yesterday) {
        supportStats.push(from);
        supportStats.push(to);
        supportStats.push(time);
        supportStats.push(subject);
        supportStats.push('https://mail.google.com/mail/u/0/#inbox/' + mId); 

        SpreadsheetApp.getActiveSheet().appendRow(supportStats);
      }
    } 
  }
}

上面的标签只是我拥有的许多标签之一。因此,以这种方式提取许多宏,或者如果有一种方式可以提取所有电子邮件并具有标签列,那么我可以解析也可以。

0 个答案:

没有答案