Gmail Apps脚本功能列出所有草稿邮件的内容

Gmail Apps script function to list contents of All draft messages

我正在寻找 Gmail 的 Google Apps 脚本,它会列出最新草稿邮件的内容。到目前为止我的代码是:

function listDrafts() {
  var drafts = Gmail.Users.Drafts.list('me')
  if (drafts.drafts.length == 0) {
    Logger.log('No draft messages found.');
  } else {
    Logger.log('Drafts:');
    for (var i = 0; i < drafts.drafts.length; i++) {
      var draft = drafts.drafts[i].message.payload.headers[i].value;
      Logger.log('- %s', draft);
    }
  }
}

但是,我在 运行 上不断收到错误消息。感谢任何帮助。

根据您的脚本,当 Gmail API 在高级 Google 服务中启用时,我认为 var draft = drafts.drafts[i].message.payload.headers[i].value; 行可能会发生错误,因为 drafts.drafts[i].message.payload returns undefined。如果我的理解是正确的,下面的修改怎么样?

修改后的脚本:

当你的脚本修改后,下面的修改怎么样?

从:
var draft = drafts.drafts[i].message.payload.headers[i].value;
到:
var draft = Gmail.Users.Drafts.get("me", drafts.drafts[i].id).message.payload.headers[i].value;

到:
var headers = Gmail.Users.Drafts.get("me", drafts.drafts[i].id).message.payload.headers;
for (var j = 0; j < headers.length; j++) {
  Logger.log(headers[j].value)
}

注:

参考文献:

如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

编辑:

  • 您想从 Gmail.Users.Drafts 的 headers 检索电子邮件。

对于这种情况,下面的修改怎么样?

修改后的脚本:

从:
var draft = drafts.drafts[i].message.payload.headers[i].value;
到:
var headers = Gmail.Users.Drafts.get("me", drafts.drafts[i].id).message.payload.headers;
for (var j = 0; j < headers.length; j++) {
  var search = ["From", "To"];
  if (search.indexOf(headers[j].name) != -1) {
    Logger.log(headers[j].value)
  }
}
  • 如果要取回"From"和"To"以外的值,请修改var search = ["From", "To"];