Eine einzelne E-Mail mit Werten aus allen neuen Zeilen in einer Tabelle senden (Google Script / GAS)

Danke an die Lektüre auf dieser Site, ich habe erfolgreich ein Skript erstellt, das tut, was ich wollte: Beim Ausführen sendet das Skript eine individuelle E-Mail für jede neue Zeile in einer Tabelle, dann markieren Sie diese Zeile "gesendet". Yay

Aber jetzt brauche ich das Skript, um alle Zeilen in einer einzigen E-Mail in mehrere Abschnitte zu kompilieren. Daher muss das Skript nach neuen Zeilen suchen, eine Vorlage verwenden, um die Werte aus jeder neuen Zeile in einen einzelnen Abschnitt einzufügen, alle neuen Abschnitte in eine E-Mail zu kompilieren, die E-Mail zu senden und dann alle neuen Zeilen als "gesendet" zu markieren.

Ich stecke fest, weil es den Anschein hat, als müsste jede neu hinzugefügte Zeile eine relative Variable definieren, dh erste nicht gesendete Zeile = sectionOne, zweite = sectionTwo usw. Aber die Länge der E-Mail und die Anzahl der zu definierenden Variablen abhängig von der Anzahl der neuen Zeilen. Ich weiß also nicht genau, wie ich das Skript dazu bringen kann, eine Schleife zu durchlaufen und nur (aber den gesamten) neuen Inhalt zum E-Mail-Text hinzuzufügen.

Hier ist was ich habe, weiß jemand wie man hier ans Ziel kommt?

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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage