将所有文件附加到文件夹中存在的电子邮件的应用程序脚本

apps script to attach all files to email that exist in a folder

下面是我目前使用我的代码所处的位置。附加一个文件就可以了。它仅附加文件夹中的最后一个文件。我希望它附加所有文件。

   function email() {   

   // Get attachments folder
  var attachementFolderId = values[cell][11];
  Logger.log("Attachement Folder ID:  " + attachementFolderId)
  var getAttachementFolder = DriveApp.getFolderById(attachementFolderId).getFiles();

   // Get all files from the folder
 var files = DriveApp.getFolderById(attachementFolderId).getFiles();
 while (files.hasNext()) {
   var file = files.next();
   var attachements = file.getAs(MimeType.PDF);
   Logger.log(attachements)
 }

     MailApp.sendEmail({
     to: recipient,
     subject: address,
     htmlBody: "Hello <br><br>" +
               "Address:  " + address + "<br><br>" +
               "Description: " + description,
    attachments: [attachements]
    })
}

我明白了。对于有经验的编码人员来说可能是一个简单的错误......我所做的就是创建一个数组,每次它找到一个文件并将其作为一个 blob,将它添加到数组中。

attachmentsArray[attachmentsArray.length] = attachmentFiles;

下面是我添加的代码

var attachmentFiles = file.getAs(MimeType.PDF);

然后代替

attachments: [attachements]

我把这个

attachments: attachmentsArray

你的解决方案不对。尝试如下:

var attachements = [];
while (files.hasNext()) {
   var file = files.next();
   attachements.push(file.getAs(MimeType.PDF));// the push method add elements to the attachements array
   Logger.log(attachements)
 }

最后:

 MailApp.sendEmail({
 to: recipient,
 subject: address,
 htmlBody: "Hello <br><br>" +
           "Address:  " + address + "<br><br>" +
           "Description: " + description,
attachments: attachements
})