Хотите, чтобы скрипт отправлял электронную почту только последнему добавленному в Google Spreadsheets - PullRequest
0 голосов
/ 28 мая 2020

Это скрипт для отправки электронных писем контактам, которые я сохранил в таблицах googlespreadsheets. Однако я хочу, чтобы он отправлял его только на последний добавленный адрес электронной почты (не на весь список). Он продолжает отправлять его всем, включенным в список, и я хочу отправить только на последнее добавленное электронное письмо в строке [2], где зарегистрированы электронные письма.

Спасибо.

 function sendEmail(e) {
      var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1");
      var data = ws.getRange("A2:D" +ws.getLastRow()).getValues();
      data.forEach(function(row) {
      var html = HtmlService.createTemplateFromFile("htmlemail.html")
      var htmlText = html.evaluate().getContent();
      var subject = "Thanks for participation";
      var textBody = "This email requires HTML support. Please make sure you open with a client that supports it.";
      var options = { htmlBody : htmlText };
      GmailApp.sendEmail(row[2], subject, textBody, options);
      });
    }

1 Ответ

1 голос
/ 28 мая 2020

Это будет отправлять по электронной почте только последнюю строку каждый раз.

function sendEmail(e) {
  var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1");
  var data = ws.getRange(2,1,ws.getLastRow()-1,4).getValues();
  var html = HtmlService.createTemplateFromFile("htmlemail.html")
  var htmlText = html.evaluate().getContent();
  var subject = "Thanks for participation";
  var textBody = "This email requires HTML support. Please make sure you open with a client that supports it.";
  var options = { htmlBody : htmlText };
  GmailApp.sendEmail(data[data.length-1][2], subject, textBody, options);
}

, если вы сделаете это таким образом, она будет использовать эту строку только один раз, если вы не отредактируете ее с дополнительными электронными письмами.

function sendEmail(e) {
  var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1");
  var data = ws.getRange(2,1,ws.getLastRow()-1,4).getValues();
  var html = HtmlService.createTemplateFromFile("htmlemail.html")
  var htmlText = html.evaluate().getContent();
  var subject = "Thanks for participation";
  var textBody = "This email requires HTML support. Please make sure you open with a client that supports it.";
  var options = { htmlBody : htmlText };
  if(data[data.length-1][2]) {
    GmailApp.sendEmail(data[data.length-1][2], subject, textBody, options);
    ws.getRange(data.length-1+2,3).setValue('');
  }
}
...