【问题标题】:I can't send an email with pdf as attachment by google script我无法通过谷歌脚本发送带有 pdf 作为附件的电子邮件
【发布时间】:2020-02-29 20:38:37
【问题描述】:

我正在制作一个脚本来获取电子表格,将其转换为 pdf 文件,然后将此 pdf 保存在文件夹中,然后通过电子邮件将其作为附件发送。但是,我正在使用我发现的唯一功能通过电子邮件发送附件,但是当我打开电子邮件时,它会在电子邮件中显示消息“[object Object]”。有人能帮我吗?

function SendEmail(){



  var sheetMail = SpreadsheetApp.getActiveSpreadsheet();
  var ecrvc = sheetMail.getSheetByName('List');
  var planilha = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('List')
  var 
  var subject = "Subject"
  var message = "message"


  var email = "person1@gmail.com"


//var ecrvc = "Sheet1";
var folderID = "folderId"; // Folder id to save in a folder.
var pdfName = "YourSpreadsheet of "+week+"-20";

var sourceSpreadsheet = SpreadsheetApp.getActive();
var sourceSheet = sourceSpreadsheet.getSheetByName(ecrvc);
var folder = DriveApp.getFolderById(folderID);

//Copy whole spreadsheet
var destSpreadsheet = SpreadsheetApp.open(DriveApp.getFileById(sourceSpreadsheet.getId()).makeCopy("tmp_convert_to_pdf", folder))


var destSheet = destSpreadsheet.getSheets()[0];

//save to pdf
var theBlob = destSpreadsheet.getBlob().getAs('application/pdf').setName(pdfName);
var newFile = folder.createFile(theBlob);

//Delete the temporary sheet
DriveApp.getFileById(destSpreadsheet.getId()).setTrashed(true);




//Send the email with attachments  
var arquivo = theBlob;
 DriveApp.getFileById(theBlob); 

  MailApp.sendEmail(email, subject,{
     // htmlBody: message + "", noReply:true,{
    attachments: [file.getAs.file(arquivo.PDF)],
    name: pdfName
  });   

}

【问题讨论】:

    标签: javascript google-apps-script google-sheets google-drive-api


    【解决方案1】:

    有几个问题

    file 未声明且getAs 语法错误。

    示例取自https://developers.google.com/apps-script/reference/mail/mail-app#sendemailrecipient,-subject,-body,-options

    // Send an email with two attachments: a file from Google Drive (as a PDF) and an HTML file.
    var file = DriveApp.getFileById('1234567890abcdefghijklmnopqrstuvwxyz');
    var blob = Utilities.newBlob('Insert any HTML content here', 'text/html', 'my_document.html');
    MailApp.sendEmail('mike@example.com', 'Attachment example', 'Two files are attached.', {
        name: 'Automatic Emailer Script',
        attachments: [file.getAs(MimeType.PDF), blob]
    });
    

    【讨论】:

    • 但是如果我使用带有html代码的功能,我只能发送附件吗?因为我不想使用 html
    • 示例发送两个附件,一个PDF文件和一个HTML文件。
    猜你喜欢
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    相关资源
    最近更新 更多