将文件附加到邮件并发送

Attach a file to a mail and send it

我有以下代码,它尝试发送一封附有 .pdf 文件的邮件。此 .pdf 位于我的 Google 驱动器中。

var files = DriveApp.getFilesByName('file_test.pdf');
GmailApp.sendEmail(email, subject, message, {attachments:files[0]});

我发现 "getFilesByName" returns 是一个数组,所以这就是我使用文件 [0] 的原因,但它仍然无法正常工作。我不知道如何调试它,所以当我测试我的代码时,我能够发送邮件,但我收到的邮件没有附件。

当您使用 getFilesByName 时,您会收到一个 FileIterator,因此您应该使用 hasNext() 和 next() 函数来检索您的文件。

var files = DriveApp.getFilesByName('file_test.pdf');
if(files.hasNext()){
  var file = files.next();
  GmailApp.sendEmail(email, subject, message, {attachments:file});
}

在 GmailApp 文档中,他们使用文件上的 getAs() 函数将其 return 为 PDF,这在您的情况下可能有必要,也可能没有必要。

参见:

https://developers.google.com/apps-script/reference/gmail/gmail-app#sendEmail(String,String,String,Object)

https://developers.google.com/apps-script/reference/drive/drive-app