Я написал сценарий электронной таблицы приложений Google, который должен взять pdf-файл с моего диска и отправить его по электронной почте в виде вложения для многих людей, каждому из которых будет отправлен уникальный файл. Данные находятся в электронной таблице. Первый столбец имеет адрес электронной почты получателя, второй столбец имеет имя файла pdf, которое должно быть прикреплено, а третий столбец имеет имя человека.Неожиданное исключение после продолжения сериализации
function sendPDFs() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = sheet.getDataRange().getLastRow() -1; // Number of rows to process
// Fetch the range of cells A2:C3
var nummails = 0
var numdrive = 0
var checkCol = 4
var dataRange = sheet.getRange(startRow, 1, numRows, 3)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var emailAddress = row[0]; // First column
var subject = "Some subject";
var body = 'Dear ' + row[2] + '\n\nPlease find your ' + subject + ' \n\nThank you \n\n XYZ'
var attachment = row[1]; // Second column.
var files = DriveApp.getFilesByName(attachment); // Get all files with name.
var blobs = []; // Array for attachment.
// Move files into blobs
while (files.hasNext()) {
var file = files.next();
blobs.push(file.getAs("application/PDF"));
}
// dont sent to invalid email ids or those without email ids
if (emailAddress == "" || emailAddress.indexOf("@") <= -1){
sheet.getRange(i+2, checkCol+1).setValue('Not Emailed')
numdrive = numdrive+1
}
else{
Utilities.sleep(1000)
MailApp.sendEmail(emailAddress, subject, body, {attachments: blobs, name: "XYZ" })
sheet.getRange(i+2, checkCol+1).setValue('Emailed')
nummails = nummails +1
}
}
Browser.msgBox(nummails+ " Mails sent successfully.")
}
Я получаю сообщение об ошибке Неожиданное исключение при продолжении сериализации. Тем не менее, электронные письма отправляются. Похоже, код работает, но я не знаю, почему ошибка. Я видел существующие потоки с одинаковой ошибкой, но они помогают.
Оцените, как это решить.
Я заменил цикл for выше. По-прежнему получается такая же ошибка. – user1327454
hmmm ... Я получаю еще одну ошибку: «К сожалению, в настоящее время нет доступных серверов. Подождите немного и попробуйте еще раз», пытаясь получить что-то из pdf ... –
Эй вы используете новый формат электронных таблиц ? : если да, см. https://code.google.com/p/google-apps-script-issues/issues/detail?id=3579 Это объясняет, по крайней мере, мою проблему. –