Переключение из почтового приложения в приложение Gmail и функция зависает после завершения - PullRequest
0 голосов
/ 17 октября 2018

Я создал скрипт для автоматической отправки электронного письма на основе результатов из формы.Он работал отлично и завершил бы функцию примерно через 10 секунд.

Я перешел на использование GmailApp для отправки электронных писем, чтобы я мог использовать псевдонимы, однако теперь моя функция просто зависает после завершения последнего шага, который присваивает значение «Отправлено по электронной почте» и запускает SpreadsheetApp.flush().

На странице «Выполнения» показано, что функция работает более 900 секунд и должна быть прекращена вручную.

Есть мысли?Ценю помощь!

function sendSurvey() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test Sheet");
  var startRow = 2;
  var numRows = 100000;
  var dataRange = sheet.getRange(startRow, 1, numRows, 100);
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var npsstatus = row[8];
    var csm = row[9];
    var emailSent = row[11];
    var subject = 'Customer Renewal Survey';
    var message = "<HTML><BODY>" + 
      '<h3>Looks like a customer may require your help!</h3>' + "<br>" +
      '<b>Customer Contact:  </b>' + "&ensp;" + row[1] + "<br>" + "<br>" +
      '<b>Dedicated CSM:  </b>' + "&ensp;" + row[9] + "<br>" + "<br>" +
      '<b>Likelyhood to Recommend:  </b>' + "&ensp;" + row[3] + '&ensp;(' + row[8] + ')' + "<br>" + "<br>" +
      '<b>What they need help with:  </b>' + "&ensp;" + row[4] + "<br>" + "<br>" +
      '<b>Additional Comments:  </b>' + "&ensp;" + row[5] + "<br>" + "<br>" +
      '<b>CSM Best Time to Connect:  </b>' + "&ensp;" + row[13] + "<br>" + "<br>" +
      "<br>" + "<br>" +
      '<img src="cid:image"> <br/>'+
      "</BODY></HTML>";

    var image = DriveApp.getFileById("");
    var imageblob = image.getBlob();
    var body = message.replace(/\<br\/\>/gi, '\n').replace(/(<([^>]+)>)/ig, "");
    var aliases = GmailApp.getAliases();
    Logger.log(aliases);

    if (npsstatus == 'Detractor' && emailSent != 'Email Sent') {
      GmailApp.sendEmail(primaryEmail, 'Test Survey', body, {htmlBody: message, 'from': aliases[0], name: 'Survey', inlineImages: {image: imageblob}});
      sheet.getRange(startRow + i, 12).setValue('Email Sent');
    }
    SpreadsheetApp.flush();
  }
}
...