Отправить одно электронное письмо со значениями из всех новых строк в электронной таблице (Google Script / GAS)

Благодаря большому количеству прочтений на этом сайте, я успешно создал сценарий, который делает то, что я хотел: после запуска сценарий отправляет отдельное электронное письмо для каждой новой строки в электронной таблице, а затем помечает эту строку как «отправленную». Ура!

Но теперь мне нужен скрипт для компиляции всех строк в несколько разделов в одном письме. Итак, мне нужен скрипт для проверки новых строк, использование шаблона для добавления значений каждой новой строки в отдельный раздел, компиляция всех новых разделов в электронное письмо, отправка электронного письма, а затем пометка всех новых строк как «отправленных».

Я застрял, потому что кажется, что мне нужно, чтобы каждая вновь добавленная строка определяла относительную переменную, то есть первая неотправленная строка = sectionOne, second = sectionTwo и т. Д. Но длина письма и количество определяемых переменных будет зависеть на количество новых рядов. Поэтому я не знаю, как заставить скрипт пройти цикл и добавить только (но все) новый контент в тело письма.

Вот что у меня есть, кто-нибудь знает, как сюда добраться до цели?

function sendEmail() {

 //setup function
 var ActiveSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var StartRow = 3;
 var RowRange = ActiveSheet.getLastRow() - StartRow + 1;
 var WholeRange = ActiveSheet.getRange(StartRow,1,RowRange,11);
 var AllValues = WholeRange.getValues();

 //iterate loop
 for (i in AllValues) {

 //set current row
 var CurrentRow = AllValues[i];

 //set subject line
 var Subject = "Found by " + CurrentRow[1];

 //set HTML template for information
 var message = 
      "<p><b>Title: </b>" + CurrentRow[2] + "</p>" +
      "<p><b>Agency: </b>" + CurrentRow[3] + "</p>" +
      "<p><b>Summary: </b>" + CurrentRow[4] + "</p>" +
      "<p><b>Due: </b>" + CurrentRow[5] + "</p>" +
      "<p><b>Posted: </b>" + CurrentRow[6] + "</p>" +
      "<p><b>Total Funding: </b>" + CurrentRow[7] + "</p>" +
      "<p><b>Announcement Number: </b>" + CurrentRow[8] + "</p>" +
      "<p><b>Useful Links: </b>" + CurrentRow[9] + "</p>";

 //define column to check if sent
 var EmailSent = CurrentRow[11];

 //define who to send grants to 
 var SendTo = "[email protected]" + "," + "[email protected]";

 //if row has not been sent, then...  
 if (emailsent != "sent") {

  //set the row to look at
  var setRow = parseInt(i) + startRow;

  //mark row as "sent"
  ActiveSheet.getRange(setRow, 11).setValue("sent");

  //send the actual email  
  MailApp.sendEmail({
      to: SendTo,
      cc: "",
      subject: subject,
      htmlBody: message,
});
}
}
}

Ответы на вопрос(1)

Ваш ответ на вопрос