如何在GmailApp中添加2个不同的Google驱动器文件夹的所有内容

问题描述

我正在尝试将Google驱动器中2个不同文件夹的所有内容添加到我的GmailApp中,以便电子邮件包含两个文件夹中的所有文件

示例代码:抛出错误异常:

无效的参数:sendEmail的附件(代码:180:20)

         var contents = DriveApp.getFolderById('***').getFiles();

         var contentspdf = DriveApp.getFolderById('***').getFiles();
        
            var attach = [];

            while(contents.hasNext()){

                 var file = contents.next();

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

                     attach.push(file);

               }
          }
        
          var attachtwo = [];

          while(contentspdf.hasNext()){

              var files = contentspdf.next();

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

                 attachtwo.push(files);
             
               }
         }

         GmailApp.sendEmail(currentEmail,Subject,messageBody,{
         
               attachments: [attach,attachtwo,],name: 'Test'
         });

解决方法

您可以使用Spread syntax (...)将所有附件放入attachments参数中:

attachments: [...attach,...attachtwo]


解决方案:

 var contents = DriveApp.getFolderById('***').getFiles();

 var contentspdf = DriveApp.getFolderById('***').getFiles();

    var attach = [];

    while(contents.hasNext()){

         var file = contents.next();

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

             attach.push(file);

       }
  }

  var attachtwo = [];

  while(contentspdf.hasNext()){

      var files = contentspdf.next();

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

         attachtwo.push(files);
     
       }
 }

 GmailApp.sendEmail(currentEmail,Subject,messageBody,{
 
       attachments: [...attach,...attachtwo],name: 'Test'
 });

请确保启用了V8 Runtime环境。