Как видно из официальной документации, DriveApp.getFilesByName возвращает FileIterator . Это недопустимое вложение.
Чтобы получить файл с таким именем, вам нужно связать метод next () . Таким образом, вам придется изменить это:
var file = DriveApp.getFilesByName('name of doc');
На это:
var file = DriveApp.getFilesByName('name of doc').next();
Причина этого заключается в том, что вы можете иметь много файлов с одинаковым именем на диске, так что еслиВы хотите отправить определенный файл, который вы можете использовать getFileById , который ищет файл с определенным идентификатором (идентификаторы уникальны).
Если вы хотите отправить всеВ файлах с одинаковыми именами вы можете изменить свой код следующим образом:
var files = DriveApp.getFilesByName(file_name);
var attachments = []
while (files.hasNext()) {
var file = files.next();
attachments.push(file);
}
MailApp.sendEmail({
to: to_email,
cc: cc_email,
subject: "Document",
attachments: attachments,
htmlBody: body
});
Кроме того, я надеюсь, что переменная body
в этой строке определена в некоторой части кода, которую вы пропустили. В противном случае вы получите еще одну ошибку:
htmlBody: body
Надеюсь, это вам поможет.