如何发送电子邮件和加密创建PDF后的谷歌脚本



我使用以下代码在客户端填写表单后立即创建pdf文件:

function After_Submit(e){

const info = e.namedValues;
Create_PDF(info);  

console.log(info);

}
function Create_PDF(info) {

const PDF_folder = DriveApp.getFolderById("folder id");
const TEMP_Folder = DriveApp.getFolderById("folder id");
const PDF_Template = DriveApp.getFileById("pdf temp id");

const newTempFile = PDF_Template.makeCopy(TEMP_Folder);
const  OpenDoc = DocumentApp.openById(newTempFile.getId());
const body = OpenDoc.getBody();

console.log(body);

body.replaceText("{Code}", info['Code'][0]);
body.replaceText("{Date}", info['Date'][0]);
body.replaceText("{Name}", info['Name'][0]);
body.replaceText("{Birthdate}", info['Birthdate'][0])
body.replaceText("{Address}", info['Address'][0]);
OpenDoc.saveAndClose();

const BLOBPDF = newTempFile.getAs(MimeType.PDF);
PDF_folder.createFile(BLOBPDF).setName(info['Name'][0] + " " + info['Code'][0]);
console.log("PDF created");
TEMP_Folder.removeFile(newTempFile);
}

显然我还使用了触发器来自动执行。

现在,我需要创建一个函数,将该pdf发送到客户端在表单上给出的电子邮件,并使用他的生日"例如"作为密码!

有人能帮忙吗?

Thank you very much

不幸的是,Apps Script没有任何特定的特性或功能来设置PDF文件中的密码,要实现这样的事情,您将需要使用第三方应用程序,API或库。

要发送带有附件的电子邮件,可以使用MailApp方法。sendmail如下(以下代码段包含自解释注释):

function Create_PDF(info) {

const PDF_folder = DriveApp.getFolderById("folder id");
const TEMP_Folder = DriveApp.getFolderById("folder id");
const PDF_Template = DriveApp.getFileById("pdf temp id");

const newTempFile = PDF_Template.makeCopy(TEMP_Folder);
const  OpenDoc = DocumentApp.openById(newTempFile.getId());
const body = OpenDoc.getBody();

console.log(body);

body.replaceText("{Code}", info['Code'][0]);
body.replaceText("{Date}", info['Date'][0]);
body.replaceText("{Name}", info['Name'][0]);
body.replaceText("{Birthdate}", info['Birthdate'][0])
body.replaceText("{Address}", info['Address'][0]);
OpenDoc.saveAndClose();

const BLOBPDF = newTempFile.getAs(MimeType.PDF);

///////////////////////// MODIFICATION ////////////////////////////////
// Get the file you want to send as an attachment
var file = PDF_folder.createFile(BLOBPDF).setName(info['Name'][0] + " " + info['Code'][0]);

// Send email using the function sendEmail of MailApp (recipient, subject, message, options)
MailApp.sendEmail('mike@example.com', 'Attachment example', 'PDF attached', {
name: 'Attached file',
attachments: [file.getAs(MimeType.PDF)]
});
/////////////////////////////////////////////////////////////////////////

console.log("PDF created");
TEMP_Folder.removeFile(newTempFile);

}

相关内容

最新更新