Google Script:在新邮件中转发收到的邮件附件

时间:2018-01-04 08:08:23

标签: javascript email gmail

我想转发标记为星标的某些邮件。我想只发送普通的主体(不是HTML主体),并转发最初附加的文件(如果有的话)。

我目前的代码如下:

function getMailsAndForward() {
  var thread, subject, body_PLAIN, emails, i;

  emails = GmailApp.search("in:SomeLabel AND in:starred");  
  var count = emails.length;

  if (count == 0)
    return; 

  for (i=0; i<count; i++) {    
    if (emails[i]) 
    {
      thread     = emails[i].getMessages()[0];
      subject    = "[AUTO-FORWARD] " + thread.getSubject();
      body_PLAIN = thread.getPlainBody(); 

      GmailApp.sendEmail("", subject, body_PLAIN, {"bcc": "xx@yy.com, fewmore@here.com"});

      // Unstar Mail... 
      GmailApp.unstarMessage(thread); 
    }
  }
}  

我已经在网上找到了一些关于如何从收到的邮件中提取附件到GoogleDrive的解决方案,以及如何将GoogleDrive文件附加到新创建的邮件。

但在走这条路/路之前,我想问一下: 有没有更简单的方法,而无需事先将附件保存到GoogleDrive中的文件?会很方便......

提前致谢!

1 个答案:

答案 0 :(得分:1)

以下修改怎么样?

您可以使用getAttachments()作为包含blob的数组来检索附件文件。带有blob的数组用于GmailApp.sendEmail()。这样,就不需要将附件文件作为文件保存到Google Drive。

来自:

GmailApp.sendEmail("", subject, body_PLAIN, {"bcc": "xx@yy.com, fewmore@here.com"});

致:

GmailApp.sendEmail("", subject, body_PLAIN, {"bcc": "xx@yy.com, fewmore@here.com", "attachments": thread.getAttachments()});

注意:

  • 在此修改后的脚本中,如果没有附件文件,则会发送没有附件文件的邮件。

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