Gmail电子邮件内容转移到Google电子表格

时间:2017-10-19 17:48:16

标签: gmail spreadsheet

我请求帮助。帮我完成脚本。有必要将邮件gmail的内容传输到Google表。有一个脚本,但它只传输字母的日期和主题,而消息本身则没有。帮助,有可能纠正。感谢

 function getGmailData() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var threads = GmailApp.search("is:unread in:inbox", 0, 1);
  for (var t=0; t<threads.length; t++) {
    sheet.appendRow([threads[t].getDate(), threads[t].getFirstMessageSubject()])
  }
} 

1 个答案:

答案 0 :(得分:0)

以下修改怎么样?

修改要点:

  1. 要从threads检索邮件,请使用getMessages()
  2. 为了从getMessages()检索到的邮件中检索每封邮件,它会使用另一个&#34; for循环&#34;来检索。
  3. 对于每封邮件,可以getDate(), getFrom(), getSubject() and getPlainBody()重新检索日期,发件人,主题和正文。
  4. 修改后的脚本:

    function getGmailData() {
      var sheet = SpreadsheetApp.getActiveSheet();
      var threads = GmailApp.search("is:unread in:inbox", 0, 1);
      var res = [];
      for (var t=0; t<threads.length; t++) {
        var msgs = threads[t].getMessages();
        for (var u=0; u<msgs.length; u++) {
          var m = msgs[u];
          res.push([m.getDate(), m.getFrom(), m.getSubject(), m.getPlainBody()]);
        }
      }
      sheet.getRange(sheet.getLastRow() + 1, 1, res.length, res[0].length).setValues(res);
    }
    

    如果我误解了你的问题,我很抱歉。

    编辑:

    如果您想从今天起检索邮件,可以使用newer_than:after:运营商。

    在使用newer_than:

    的情况下
    var threads = GmailApp.search("newer_than:1d in:inbox", 0, 1);
    

    在使用after:

    的情况下
    var today = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyy/MM/dd');
    var threads = GmailApp.search("after:" + today + " in:inbox", 0, 1);