Я пытаюсь прокрутить лист Excel, и для каждой строки отправьте электронное письмо. После отправки письма я хочу удалить эту строку.Сценарий Google Apps: служба вызывается слишком много раз за один день: электронная почта
Это однако не работает.
По какой-то причине он начинает отправлять электронные письма как сумасшедшие, и в какой-то момент он достигает предела и уходит.
Это фактически удаляет только одну строку.
Смотрите код ниже:
function sendEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var startRow = 2; // First row of data to process
var maxRows = sheet.getMaxRows();
var range = sheet.getRange(startRow, 1, maxRows, 50)
var values = range.getValues();
for (var row in values) {
Logger.log('ID=' + values[row][0]);
var theID = values[row][0];
var message = "";
var sendto = "";
var emailAddress = values[row][2];
if (emailAddress=="Autre"){sendto="[email protected]"}
if (emailAddress=="Autre1"){sendto="[email protected]"}
if (emailAddress=="Autre2"){sendto="[email protected]"}
message+="\n ID: " + values[row][1];
message+="\n Project Number: " + values[row][2];
var subject = "Project ID: " + values[row][1];
if (sendto!=''){
MailApp.sendEmail(sendto, subject, message);
sheet.deleteRow(row+2)
}
}
логика, если есть действительный адрес электронной почты, отправить электронную почту, удалить строку.
Но как только он выполняется, он удаляет только одну строку, отправляет электронные письма, такие как сумасшедшие, и получает максимальную ошибку электронной почты.
Мысли?
Тестирование его в режиме отладки. Кажется, что застрял на линии: MailApp.sendEmail (sendto, subject, message); Не уверен, что это связано с тем, что дневной лимит закончился? – R0b0tn1k
попробуйте 'getLastRow' вместо' getMaxRow'. Вы можете получить много лишних данных и получить правдивые ошибки преобразования с помощью '(sendto! = '')' –
Спасибо, потребуется 24 часа для тестирования. Если это работает, плохо сообщите, чтобы вы могли написать ответ и набрать очки. – R0b0tn1k