我有一个生成文档的脚本,以PDF格式保存并附加到电子邮件中。除了这个附件,我正在尝试添加第二个附件,这是一个保存在谷歌驱动器(条款)上的现有PDF。为什么以下代码没有附加第二个文档?
if (email_status == "YES" ) {
//send a pdf copy to customer
var pdfEMAIL = DriveApp.getFileById(doc.getId()).getAs('application/pdf').getBytes();
var terms = DriveApp.getFileById('file ID');
var message = "Hi " + usernamefordoctitle + "!, please kindly find your invoice attached.\nMany Thanks!\nMe";
var emailAdd = sheet.getRange("D2").getValue()
var emailTo = emailAdd; // add customer email here
var subject = "Invoice for " + usernamefordoctitle + " from ME" + " - Invoice Number : " + newInvNumber;
var attach = {fileName:"INVOICE " + newInvNumber + " " + usernamefordoctitle + '.pdf',content:pdfEMAIL, mimeType:'application/pdf'};
MailApp.sendEmail(emailTo, subject, message, {attachments:[attach, terms.next()]});
ss.toast("70%: emailed customer");
Utilities.sleep(sleepINT);
}
答案 0 :(得分:1)
你有
terms = DriveApp.getFileById('file ID');
接着是
terms.next()
这是不正确的,因为getFileById
会为您提供具有给定ID的一个特定文件。您正在考虑其他方法,如getFilesByName
,它们返回文件迭代器。该方法的名称是它返回的线索:getFile与getFiles。
所以,只需附上
即可{attachments:[attach, terms]}
会奏效。您可能还想指定类似
的MimeTypeterms.getAs(MimeType.PDF)
因此,例如,您将Google文档作为PDF发送。