Как отправить несколько PDF-файлов одним письмом в Google Таблицах?

Привет всем! У меня возникла проблема с отправкой нескольких PDF-файлов в одном письме через Google Таблицы. Вот что я уже смог сделать:

  • Создать PDF-файлы
  • Сохранить их на Google Диске
  • Отправить каждый PDF отдельным письмом

Но я никак не могу отправить все файлы одним письмом. Мой код создает PDF-ки в цикле, но застревает, когда я пытаюсь сохранить их в массив или прикрепить массив к письму.

Вот пример кода, который у меня есть:

function отправитьПДФ() {
  var файлы = [];
  for (var i = 0; i < список.length; i++) {
    var пдф = создатьПДФ(список[i]);
    файлы.push(пдф);
  }
  
  GmailApp.sendEmail(адрес, тема, текст, {
    attachments: файлы
  });
}

Как можно исправить этот код, чтобы отправить все PDF одним письмом? Буду благодарен за любую помощь!

А ты пробовал использовать DriveApp для работы с файлами? Можно сначала сохранять PDF на Диск, а потом прикреплять их к письму по ID. Типа так:

var fileIds = ;
for (var i = 0; i < список.length; i++) {
var pdf = DriveApp.createFile(создатьПДФ(список[i]));
fileIds.push(pdf.getId());
}

GmailApp.sendEmail(адрес, тема, текст, {
attachments: DriveApp.getFilesByIds(fileIds)
});

Может сработать, если другие варианты не помогли.

Я бы посоветовал использовать Utilities.newBlob() для создания вложений. Что-то типа:

var attachments = ;
for (var i = 0; i < список.length; i++) {
var pdf = создатьПДФ(список[i]);
var blob = Utilities.newBlob(pdf, ‘application/pdf’, ‘file’ + i + ‘.pdf’);
attachments.push(blob);
}

GmailApp.sendEmail(адрес, тема, текст, {attachments: attachments});

Так можно создать блобы сразу из пдф без сохранения на диск. Должно работать быстрее и проще.

слушай, у меня была похожая задача недавно. вот что помогло мне - вместо сохранения пдф в массив, я сразу создавал блоб для каждого файла и добавлял его в массив вложений. примерно так:

var вложения = [];
for (var i = 0; i < список.length; i++) {
  var пдф = создатьПДФ(список[i]);
  var блоб = пдф.getAs('application/pdf').setName('файл' + i + '.pdf');
  вложения.push(блоб);
}

GmailApp.sendEmail(адрес, тема, текст, {attachments: вложения});

главное - преобразовать пдф в блоб перед добавлением в массив. надеюсь, это поможет решить твою проблему!