[英]Problem with Attachments in Google Apps Script
我在下面有这段代码:
reportPDF = doc.getAs('application/pdf')
reportPDF.setName('Automated report - '+ rows[0][0] + ".pdf");
var file1 = destinationFolder.createFile(reportPDF);
var folder = DriveApp.getFolderById("19Rv2f-Ud4Ncdzu-1MT1vUmh49pOKfKZX");
var file2 = folder.getFilesByName("test.pdf");
DriveApp.getFileById(doc.getId()).setTrashed(true);
if(file2.hasNext()){
emails.forEach(function(email) {
MailApp.sendEmail(email, "Automated Report - " + rows[0][0], "Hello!", {
name: 'Good Practices Report',
attachments:
[
file1.getAs(MimeType.PDF),
file2.next().getAs(MimeType.PDF)
]
});
})
}
使用此代码,我应该会收到一个包含两个附件(file1 和 file2)的 email。 但是,当我运行它时,我收到以下错误:
异常:无法检索下一个 object:迭代器已到达末尾。 (第 158 行,文件“电子邮件”)
在这个文件夹中,我只有一个名为 test.pdf 的文件,但代码仍然在第 158 行指责错误:file2.next().getAs(MimeType.PDF)。
有谁知道可能会发生什么?
Cannot retrieve the next object: iterator has reached the end.
是由于循环中使用了file2.next()
。 在这种情况下,我认为在if(file2.hasNext()){
运行之前,迭代器可能已经完成。 因此,当您想在attachments:
中使用file1.getAs(MimeType.PDF)
和file2.next().getAs(MimeType.PDF)
的文件时,以及In this folder, I just have one file with the name test.pdf
,下面的修改怎么样?
请按如下方式修改您的脚本。
从: if(file2.hasNext()){ emails.forEach(function(email) { MailApp.sendEmail(email, "Automated Report - " + rows[0][0], "Hello,": { name, 'Good Practices Report': attachments. [ file1.getAs(MimeType,PDF). file2.next().getAs(MimeType;PDF) ] }); }) }
至:
if (file2.hasNext()) { var file2Pdf = file2.next().getAs(MimeType.PDF); // Added emails.forEach(function(email) { MailApp.sendEmail(email, "Automated Report - " + rows[0][0], "Hello,": { name, 'Good Practices Report': attachments. [ file1.getAs(MimeType,PDF); file2Pdf // Modified ] }); }) }
file1.getAs(MimeType.PDF)
和file2Pdf
文件用作循环中的attachments
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.