Google apps script 如何在应用程序脚本中附加带有sendMail功能的Google驱动器文件?

Google apps script 如何在应用程序脚本中附加带有sendMail功能的Google驱动器文件?,google-apps-script,Google Apps Script,希望在应用程序脚本中将文件(pdfName)从Google Drive附加到sendMail函数。目前我没有使用下面的代码。其他一切都很完美。只是连接部分有问题 function send(formObj) { var to = formObj.email; var body = formObj.body; var sheetName = "POTemplate"; var sourceSpreadsheet = SpreadsheetApp.getActive(); var

希望在应用程序脚本中将文件(pdfName)从Google Drive附加到sendMail函数。目前我没有使用下面的代码。其他一切都很完美。只是连接部分有问题

function send(formObj) {
  var to = formObj.email;
  var body = formObj.body;
  var sheetName = "POTemplate";
  var sourceSpreadsheet = SpreadsheetApp.getActive();
  var sourceSheet = sourceSpreadsheet.getSheetByName(sheetName);
  var poNo = sourceSheet.getRange("b2").getValue();
  var pdfName = "Sample PO Hi Eric " + poNo;
  var subject = poNo + " Good morning, Eric";
  var attach = DriveApp.getFilesByName(pdfName);
   MailApp.sendEmail(to, subject, body, {attachments:[attach]});
 }

根据,
attachments
参数需要一个
BlobSource[]
()。但是,getFileByName()返回一个。您需要为MailApp提供实现的任何文件类型

因此,要澄清的主要问题是,您正在尝试为sendMail提供一个文件列表(以FileIterator的形式),而不仅仅是一个文件

因此,类似这样的方法应该有效:

function send(formObj) {
  var to = formObj.email;
  var body = formObj.body;
  var sheetName = "POTemplate";
  var sourceSpreadsheet = SpreadsheetApp.getActive();
  var sourceSheet = sourceSpreadsheet.getSheetByName(sheetName);
  var poNo = sourceSheet.getRange("b2").getValue();
  var pdfName = "Sample PO Hi Eric " + poNo;
  var subject = poNo + " Good morning, Eric";


  var listOfFiles = DriveApp.getFilesByName(pdfName); //returns FileIterator of files that match name given.
  if(listOfFiles.hasNext()){ //We should check if there is a file in there and die if not.
    var file = listOfFiles.next(); //gets first file in list.
    MailApp.sendEmail(to, subject, body, {attachments:[file]});
  }else{
    console.log("Error no file in listOfFiles. Email not sent.");
  }
 }

编辑:我刚刚做了一些测试,看起来对于PDF来说,getBlob()不是必需的,所以我已经从代码中删除了它

我想应该是
listofFiles.next().getBlob()
谢谢,杰克,我不确定,因为我以前没有在PDF中使用过它!我已经更新了我的答案,我收回了。似乎
Google文件
是一个有效的blob源哈哈,是的,我也检查过了。