使用Google Apps脚本将文件作为电子邮件附件发送

时间:2014-06-21 17:08:52

标签: google-apps-script

有没有办法使用file upload类和mailApp从您的计算机中选择(pdf)文件(如this tutorial节目)并暂时存储它(可能使用缓存)将其作为电子邮件附件发送?

2 个答案:

答案 0 :(得分:2)

你提到的样本只需要很少的修改就可以做你想要的...你在doPost中获得的变量是一个blob,附件中需要的参数也是一个blob所以把它们放在一起非常简单

我只在按钮上添加了一个文本,并在发送邮件时添加了确认消息。

请注意,文件类型仅取决于文件的文件类型,我们无法将其转换为pdf,但这不是您的问题。

如果你上传一个jpeg(例如),那么它当然是附件中的jpeg!

下面的代码,在线测试:

function doGet(e) {
   var app = UiApp.createApplication().setTitle("Upload CSV to Sheet");
   var formContent = app.createVerticalPanel();
   formContent.add(app.createFileUpload().setName('thefile'));
   formContent.add(app.createSubmitButton('send'));
   var form = app.createFormPanel();
   form.add(formContent);
   app.add(form);
   return app;
 }

 function doPost(e) {
   // data returned is a blob for FileUpload widget
   var fileBlob = e.parameter.thefile;
   MailApp.sendEmail(Session.getActiveUser(),'test pdf attachment','see attachment',{attachments: [fileBlob]});
   var app = UiApp.getActiveApplication();
   return app.add(app.createLabel('mail sent'));
 }

test (asking for authorization)

答案 1 :(得分:1)

var spreadsheetFile = DriveApp.getFileById(sheetId); 
     var blob = spreadsheetFile.getAs('application/pdf');
     //if daysleft =1 or 0 then send mail .      
     MailApp.sendEmail(emailAddress, subject, message, {
       name: 'Welcome mail- Perch Arbor Golf Course.pdf',
       attachments: [blob]
     });