Итак, я недавно работал над проектом с листами Google, где я получаю некоторые данные и создаю файлы с этими данными для отправки по электронной почте в виде вложений. Я
- копирую файл моего шаблона
- , задаю имя для этого файла копии шаблона
- , открываю его с новым идентификатором копии
- и выполняю мойзамены тегов (изменение значений файла шаблона копирования)
- отправка его по электронной почте
function sendEmail(){
for (var row in rangeData) {
var varify = false;
var fileName = new Date().toString();
Logger.log("template " + templateId);
var fileId = DriveApp.getFileById(templateId).makeCopy().getId();
DriveApp.getFileById(fileId).setName(fileName);
var body = DocumentApp.openById(fileId).getBody();
Logger.log('current row ' + rangeData[row]);
for (var column in rangeData[row]) {
var target = firstRowMapped.indexOf(columnNames[column]);
if (target != -1) {
Logger.log('found Key');
try {
body.replaceText(firstRowMapped[target].toString(), rangeData[row]
[target].toString());
varify = true;
} catch (err) {
Logger.log(err);
}
}
}
if (varify == true) {
var toSend = DocumentApp.openById(fileId);
// send mail
try {
MailApp.sendEmail(rangeData[row][emailColumn], 'Test Email', rangeData[row][0], {
name: 'Emailer Script from DOER',
cc: rangeData[row][ccColumn],
attachments: toSend.getAs(MimeType.PDF)
});
Logger.log('sent');
} catch (err) {
Logger.log(err);
}
}
}
}
Я получаю ожидаемые файлы на диске Google. Идентификатор этих файлов совпадает с toSend
, но когда я получаю свою электронную почту, я получаю fileId
. Я пытался понять это в течение нескольких дней, не повезло. Кто-нибудь знает, почему это может происходить? Есть идеи? Я лично отправил бесчисленные вложения через этот процесс (но не с помощью шаблона), и у меня никогда не было этой проблемы.