Enviar un solo correo electrónico con valores de todas las filas nuevas en una hoja de cálculo (Google Script / GAS)

Gracias a la gran cantidad de lecturas en este sitio, construí con éxito un script que hace lo que quería que hiciera: al ejecutarse, el script envía un correo electrónico individual para cada nueva fila en una hoja de cálculo y luego marca esa fila como "enviada". ¡Hurra!

Pero ahora necesito el script para compilar todas las filas en varias secciones en un solo correo electrónico. Entonces, necesito el script para verificar nuevas filas, usar una plantilla para agregar los valores de cada nueva fila en una sección individual, compilar todas las nuevas secciones en un correo electrónico, enviar el correo electrónico y luego marcar todas las nuevas filas "enviadas".

Estoy atascado porque parece que necesitaría que cada fila recién agregada defina una variable relativa, es decir, primera fila no enviada = secciónOne, segunda = secciónDos, etc. Pero la longitud del correo electrónico y la cantidad de variables a definir dependerían en el número de nuevas filas. Por lo tanto, no sé cómo hacer que el script pase por un bucle y agregar solo (pero todo) el nuevo contenido al cuerpo del correo electrónico.

Esto es lo que tengo, ¿alguien sabe cómo llegar a la meta aquí?

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,
});
}
}
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta