Медленный MailApp.send в Google Sheets - PullRequest
0 голосов
/ 24 сентября 2018

Я уже некоторое время использую это кодирование mailapp и отправляю список людей только на основе EMAIL_SENT в столбце K, подтверждая, что он был отправлен в столбце J. Список длинный, но отправляет только 20 человекза цикл на основе правила для столбца K (формула, отправляемая людям, работающим сегодня).Отлично работал в прошлом.

Теперь, после недавнего переформатирования Google Sheet для моей группы, отправка одного письма занимает 20-30 секунд, и даже не заканчивается список из 20 писем за 6 минут.Мое недавнее переформатирование включает в себя намного больше сценариев в Google Sheet в целом с большим условным форматированием, но не на листе, который подает этот сценарий.

Есть идеи, что так сильно его тормозит?

Спасибо

function MorningEmail() {
var sheet = SpreadsheetApp.getActive().getSheetByName('EarlyEmail');
var startRow = 4;  
var numRows = 180;  
var dataRange = sheet.getRange(startRow, 1, numRows, 50)
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[0];  // First column
var fromName = row[16];
var replyToaddress = row[15];
var message = row[20]+row[21]+row[22]+row[23]+row[24]+row[25]+row[26]+row[27]+row[28]+row[29]+row[30]+row[31]+row[32]+row[33]+row[34]+row[35]+row[36]+row[37]+row[38]+row[39]+row[40]+row[41]+row[42]+row[43]+row[44]+row[45]+row[46]+row[47]+row[48]+row[49];       
var emailSent = row[10];     
if (emailSent != EMAIL_SENT) {  
  var subject = row[19];
  MailApp.sendEmail(emailAddress, subject, message, {
    name: fromName,
    replyTo: replyToaddress,
    htmlBody: message
  });
  sheet.getRange(startRow + i, 10).setValue(EMAIL_SENT);
  // Make sure the cell is updated right away in case the script is interrupted
  SpreadsheetApp.flush();
}
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...