向电子邮件添加多个附件

时间:2017-09-16 21:36:33

标签: google-apps-script google-sheets

我有一个生成文档的脚本,以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);

    }

1 个答案:

答案 0 :(得分:1)

你有

terms = DriveApp.getFileById('file ID');

接着是

terms.next()

这是不正确的,因为getFileById会为您提供具有给定ID的一个特定文件。您正在考虑其他方法,如getFilesByName,它们返回文件迭代器。该方法的名称是它返回的线索:getFile与getFiles。

所以,只需附上

即可
{attachments:[attach, terms]}

会奏效。您可能还想指定类似

的MimeType
terms.getAs(MimeType.PDF)

因此,例如,您将Google文档作为PDF发送。