将两个不同的 pdf 附加到电子邮件

Attach two different pdfs to email

我通过 Google 表格收到订单。我发送了一封带有 (a) 个性化 pdf 的自动电子邮件,但我还想在来自 Google Drive 文件夹的电子邮件中添加一个 (b) pdf(条款和服务,所有订单都相同).

(A) 工作正常,但我不确定如何添加 (B)。

这是个性化的pdf:

function afterFormSubmit(e) {
  const info = e.namedValues;
  const pdfFile = createPDF(info);
  sendEmail(e.namedValues['email'][0],pdfFile);
}
function sendEmail(email,pdfFile){
  GmailApp.sendEmail(email, "Order received","Please find attached your order and terms of services", {
    attachments: [pdfFile],
    name: 'MyCompany'
  });
}
function createPDF(info) {
const pdfFolder = DriveApp.getFolderById("XXXXXXXXX");  
const tempFolder = DriveApp.getFolderById("XXXXXXXXX");  
const templateDoc = DriveApp.getFileById("XXXXXXXXX");
const newTempFile = templateDoc.makeCopy(tempFolder);
const openDoc = DocumentApp.openById(newTempFile.getId());
const body = openDoc.getBody();
body.replaceText("{fn}", info['First name'][0]);
body.replaceText("{ln}", info['Last name'][0]);
openDoc.saveAndClose();
const blobPDF = newTempFile.getAs(MimeType.PDF);
const pdfFile = pdfFolder.createFile(blobPDF).setName(info['First name'][0] + " " + info['Last name'][0]);
tempFolder.removeFile(newTempFile);
return pdfFile;
}

所以我创建了 const pdfTerms = DriveApp.getFileById("XXXXXXXXX"); 并将其添加到 sendEmailsattachments: [pdfFile,pdfTerms] 但是它不起作用。

解释:

问题是您的方法中的 pdfTerms 不是 pdf 而是 file.

类型的对象

要将 file 转换为 pdf,您需要这样做:

const pdfTerms_file = DriveApp.getFileById("XXXXXXXXX"); // type of file
const pdfTerms = pdfTerms_file.next().getAs(MimeType.PDF); // pdf

始终假定存在具有此特定 ID 的文件。

解决方案:

修改afterFormSubmitsendEmail如下:

function afterFormSubmit(e) {
  const info = e.namedValues;
  const pdfFile = createPDF(info);
  const pdfTerms_file = DriveApp.getFileById("XXXXXXXXX"); // type of file
  const pdfTerms = pdfTerms_file.next().getAs(MimeType.PDF); // pdf
  sendEmail(e.namedValues['email'][0],pdfFile,pdfTerms);
}
function sendEmail(email,pdfFile,pdfTerms){
  GmailApp.sendEmail(email, "Order received","Please find attached your order and terms of services", {
    attachments: [pdfFile,pdfTerms],
    name: 'MyCompany'
  });
}

参考文献: