将电子邮件作为附件转发(通过应用程序脚本)会导致destinatin电子邮件收件箱中的空附件

时间:2018-06-12 11:21:49

标签: google-apps-script

据我所知,将标记的电子邮件转发为附件:

function myFunction() {
  var aLabel = GmailApp.getUserLabelByName("A-LABEL");
  aLabel.getThreads().forEach(function(thread) {
      thread.getMessages().forEach(function(msg) {
          var file = DriveApp.createFile('~myfile.txt', msg.getRawContent(), 'message/rfc822');
          var msg2 = GmailApp.createDraft("me@outlook.com", "Test", "See Attached", {attachments: [file]});
          msg2.send();
          DriveApp.removeFile(file);
      })
      thread.removeLabel(aLabel);
  })
}

接收电子邮件系统中的附件是空的,我不知道为什么。

我尝试这样做是因为常规.forward()会更改From:标头。好吧,它在应用程序脚本中,在常规Gmail网页用户界面中的过滤器转发没有,但我需要转发然后删除哪些不起作用。

根据Guilherme M的建议:

评论DriveApp.removeFile(file)行允许我在云端硬盘中查看正确的文件,但仍然对为什么生成的电子邮件没有该附件感到困惑。实际上它有Content-Type: text/plain\nMIME-Version: 1.0而已。

1 个答案:

答案 0 :(得分:0)

事实证明,Outlook.com不像'message / rfc822'附件,并将它们中和到没有内容的text / plain。至少它适用于来自Gmail应用程序脚本工具的电子邮件。如果我将mime类型更改为'text / plain',那么一切都按预期工作。