【问题标题】:Google Script: Forward received mail-attachements in new MailsGoogle Script:在新邮件中转发收到的邮件附件
【发布时间】:2018-01-04 08:08:22
【问题描述】:

我想转发某些标记为星标的邮件。我只想发送普通正文(而不是 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 中的文件中?会很方便...

提前致谢!

【问题讨论】:

    标签: javascript email gmail


    【解决方案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()});
    

    注意:

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

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

    【讨论】:

    • 完美,不知道它是这样工作的。太棒了,谢谢!
    • @tim 欢迎。我很高兴你的问题得到了解决。也谢谢你。
    猜你喜欢
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    相关资源
    最近更新 更多