【问题标题】:How to send multiple attachments via email如何通过电子邮件发送多个附件
【发布时间】:2021-02-05 04:45:57
【问题描述】:

我有一个项目要从谷歌表单创建 PDF 并通过电子邮件在谷歌脚本中发送多个 PDF,

相关CODE段如下,

if(TF_Samples!= null){
 //Generating Lab Reports for TAPE LIFT
 for (var Sample_Number in TF_Samples) {      
  
  //Creating Report File - Word Version
  Template_Doc = Tape_Template_Doc ;
  Report_File_Word = Template_Doc.makeCopy(Report_Folder_Word);
  Report_File_Word.setName(data[0]+"-TAPE LIFT");
  Opened_Report_Doc = DocumentApp.openById(Report_File_Word.getId());
  
  //Getting the Content of the Report & Replacing the Fields
  Report_Body = Opened_Report_Doc.getBody();
  Report_Body.replaceText("{{ Client Address }}",data[2]);
  Report_Body.replaceText("{{ Sample Date }}",data[1]);
  Report_Body.replaceText("{{ Sample Number }}",TF_Samples[Sample_Number]);
  
  //Saving & Closing the Report
  Opened_Report_Doc.saveAndClose();
  
  //Creating PDF version of Report
  Blob_PDF = Report_File_Word.getAs(MimeType.PDF);
  Report_PDF_Version = Report_Folder_PDF.createFile(Blob_PDF).setName(data[0]+"-SPORE TRAPE");
}
}

我设法发送带有单个附件的电子邮件,但由于我在这里循环一个 for 循环,所以我不知道该怎么做。

【问题讨论】:

  • 附件的数量会不时变化,如果有十、二十个附件,这个解决方案并不容易。但我会尝试用它开发一个数组方法。谢谢你的提示.
  • 您将它们放在一个数组中,然后将该数组与所有 pdf 附件一起发送。您无需一一指定。

标签: javascript google-apps-script gmail-api


【解决方案1】:

创建一个全局数组,push 在每次循环中将文件迭代到数组中

修改样例:

...
var files = [];
for (var Sample_Number in TF_Samples) {      
  ...
  Report_PDF_Version = Report_Folder_PDF.createFile(Blob_PDF).setName(data[0]+"-SPORE TRAPE");
  files.push(Report_PDF_Version);
}
GmailApp.sendEmail(recipient, subject, body, {attachments:files});
...

【讨论】:

  • 我试过这个但没有用。它生成错误为“异常:无效参数:附件”
  • 查看将files.push(Report_PDF_Version);修改为files.push(Report_PDF_Version).getAs(MimeType.PDF);是否可以解决问题。仔细检查一下:Report_File_Word 是 Google Docs 文件,而不是 Microsoft Word 文件,对吧?
  • files.push(Report_PDF_Version).getAs(MimeType.PDF); 有效吗?
【解决方案2】:

documentation 中所指定,附件参数必须是一个 blob 数组。

因此,不要将 blob 转换为驱动器文件,只需像这样发送 blob:

Blob_PDF = Report_File_Word.getAs(MimeType.PDF);

并将这些 blob 一个一个地推入一个数组中。

然后该参数将是有效的。

【讨论】:

    猜你喜欢
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 2015-07-23
    • 2016-04-28
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    相关资源
    最近更新 更多