Как мне добавить все содержимое 2 разных папок Google Диска в GmailApp

#javascript #google-apps-script #google-sheets #email-attachments

#javascript #google-apps-script #google-sheets #электронная почта-вложения

Вопрос:

Я пытаюсь добавить все содержимое 2 разных папок на Google Диске в мое 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'
         });
  

Ответ №1:

Вы можете использовать синтаксис распространения (…), чтобы поместить все вложения в 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.