javascript - 如何获取收件箱中的所有邮件? (包括回复)

标签 javascript google-apps-script gmail-api

我在 Google Apps 脚本中使用以下代码,并且想要获取收件箱中的所有邮件。此代码给出“无法将数组转换为数字[][]。(第 19 行,文件“代码”)”错误。我该如何修复此代码?

    var myspreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    var mysheet = myspreadsheet.getSheets()[0];
    var start = 0;
    var max = 19;
    var count = 0;
    while (count < 7) {
        var threads = GmailApp.getInboxThreads(start, max);
        var messages = GmailApp.getMessagesForThreads(threads);
        //var froms = [];
        messages.get
        for (var i = 0; i < threads.length; i++) {
            var thisThread = threads[i];
            var messages = thisThread.getMessages();
            var messageCount = thisThread.getMessageCount();
            for ( var m = 0; m<=messageCount; m++) {
              var lastMessage = messages[m];
              froms = ([lastMessage.getId(), lastMessage.getSubject(), lastMessage.getTo(), lastMessage.getFrom(), lastMessage.getCc(), JSON.stringify(lastMessage.getDate()), lastMessage.getReplyTo()]);
              mysheet.getRange(1, 1, froms.length, 7).setValues(froms);
              froms = [];
            }
        }
        start = start + 100;
        count++;
        }
}

最佳答案

尝试更改此设置:froms = ([lastMessage.getId(), lastMessage.getSubject(), lastMessage.getTo(), lastMessage.getFrom(), lastMessage.getCc(), JSON.stringify(lastMessage. getDate()), lastMessage.getReplyTo()]);

对此: froms = ([[lastMessage.getId(), lastMessage.getSubject(), lastMessage.getTo(), lastMessage.getFrom(), lastMessage.getCc(), JSON.stringify(lastMessage. getDate()),lastMessage.getReplyTo()]]);

但我真的认为你的脚本有更大的问题。

我会用这样的东西。但我无法很好地测试它,因为我的收件箱中没有保留很多垃圾。

function emailsStuff() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheets()[0];
  sh.clearContents();
  var threads=GmailApp.getInboxThreads() 
  for(var i=0;i<threads.length;i++) {
    var messages=GmailApp.getMessagesForThread(threads[i]);
    for(var j=0;j<messages.length;j++) {
      var msg=messages[j];
      sh.appendRow([msg.getId(), msg.getSubject(), msg.getTo(), msg.getFrom(), msg.getCc(), JSON.stringify(msg.getDate()), msg.getReplyTo()]);
    }
  }
}

关于javascript - 如何获取收件箱中的所有邮件? (包括回复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57824577/

相关文章:

google-apps-script - 要使用 google apps 脚本将单元格文本和评论复制到另一个工作表?

google-apps-script - 部署到网络应用程序时,Google App Script 不再具有 "Allow anyone to access"选项

java - 通过 Google API 访问电子表格 invalid_grant

c# - 我们可以使用服务帐户访问 GMAIL API 吗?

javascript - 错误: Uncaught (in promise): TypeError: Cannot read property 'customerName' of undefined

javascript - 如果浏览器未连接到互联网,则隐藏本地 html 文档中的内容

google-apps-script - 如何对整列使用 indexOf?

android - java.lang.NoSuchMethodError : No static method isAtLeastR()Z

Javascript 数组索引基础

javascript - 如何更新 componentDidUpdate() 中组件的状态而不陷入无限重新渲染?