在Google Appscript中抓取具有特定文件名的多个附件 答案:更多信息:代码段:参考文献:

问题描述

需要有关添加'n'个附件的帮助。

以下代码

    for(var i = 2; i<=lr; i++)
    {
          var Contact_Person = ss.getRange(i,4).getValue();

          var PDFs = ss.getRange(i,6).getValue();

          //The above i am grabbing the PDF name from a column in my sheet.

          //This name is used for generating my Mail Merge File.
    
          var contents = DriveApp.getFolderById('1ouiQE2cERaRMC_rnSftJCqQCpr2B4x3D').getFiles();
             
          PDFs = DriveApp.getFilesByName(Contractor_Name);
          if(PDFs.hasNext())
          {

              var attach = [];

              while(contents.hasNext())
              {

                   var file = contents.next();

                   if (file.getMimeType() == "application/pdf")
                   {

                       attach.push(file);

                   }

             }
           
  
        GmailApp.sendEmail(currentEmail,Subject,messageBody,{

          attachments: [PDFs.next().getAs(MimeType.PDF),attach[0],attach[1],attach[2],attach[3],],name: 'Test'

        });
     }

//This section is for me to grab 1 attachment according to the name specified for that row matching

//the Merged file in the google drive folder.

//I am also trying to attach from a separate folder N number of files to this email.

Pdfs是一个变量,用于从电子表格的第6列获取值。

此行每一行都有一组名称

程序运行时,它将执行邮件合并,然后向特定行的用户发送电子邮件

示例:

Email           Subject  Reference No.  Contact Person  Contractor Name   PDFs
***@gmail.com    Test    XXXXX          Mr. Dan         XYZ Company       XYZ Company

非常感谢您的帮助。

谢谢。

解决方法

答案:

您可以将它们全部推送到同一阵列。

更多信息:

摘自GmailApp.sendEmail(recipient,subject,body,options)上的文档:

高级参数

attachments BlobSource[]一系列要与电子邮件一起发送的文件

因此您可以将它们全部连接到一个阵列中。

代码段:

if (PDFs.hasNext()) {
  var attach = [];
  attach.push(PDFs.next().getAs(MimeType.PDF));

  while (contents.hasNext()) {
    var file = contents.next();
    if (file.getMimeType() == "application/pdf") {
      attach.push(file);
    }
  }

  GmailApp.sendEmail(currentEmail,Subject,messageBody,{
    attachments: attach,name: "Test"
  });
}

我希望这对您有帮助!

参考文献: