Я пытаюсь отправлять уведомления по электронной почте, когда в моем листе Google добавлена новая строка. Я перепробовал все, что было рекомендовано в других постах, но не могу заставить его работать. Когда я выполняю свой сценарий, электронное письмо отправляется для каждой строки в электронной таблице, а тело сообщения не содержит информации из строки.
Способ работы следующий:
В моей электронной таблице «Проблемы», когда я выбираю ОТКРЫТЬ из раскрывающегося списка, столбец 34 автоматически заполнится «Готов к отправке», а столбец 35 (столбец отправки по электронной почте) будет пустым. Когда моя функция «email» будет выполнена, она получит диапазон электронной таблицы и проверит, установлен ли для столбца 35 для этой новой строки значение «Готов к отправке», и проверит, не равен ли столбец «EmailSent» значению «SENT». Если это так, то он отправит электронное письмо и пометит эту строку как «ОТПРАВЛЕНО». Если по какой-либо причине электронное письмо не отправляется, эта строка не должна быть помечена как «ОТПРАВЛЕНО».
Может кто-нибудь объяснить, почему я получаю электронное письмо для каждой строки и почему тело письма не содержит информацию, которую я хочу. Я посмотрел другие посты, но не повезло. Вот мой сценарий.
function email()
{
//setup function
var ActiveSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Issues");
var StartRow = 2; //first row of data to process
var LastRow = ActiveSheet.getLastRow();
var RowRange = LastRow - StartRow + 1;
var WholeRange = ActiveSheet.getRange(StartRow,1,RowRange,35);
var AllValues = WholeRange.getValues();
var message = "";
for (var i=0;i<AllValues.length;i++)
{
var CurrentRow = AllValues[i];
var EmailSent = CurrentRow[34];
if (CurrentRow[33] == "Ready to Email" && EmailSent!= "sent")
{
message += //set HTML template for information
"<p><b>Issue Status: </b>" + CurrentRow[0] + "</p>" +
"<p><b>Group: </b>" + CurrentRow[1] + "</p>" +
"<p><b>LifeCycle Status: </b>" + CurrentRow[2] + "</p>" +
"<p><b>Issue Number: </b>" + CurrentRow[3] + "</p>" +
"<p><b>Priority: </b>" + CurrentRow[4] + "</p>" +
"<p><b>Opened By: </b>" + CurrentRow[10] + "</p>";
var setRow = i + StartRow;
var SendTo = "myemail@test.com";
var Subject = "New Issue reported: " + CurrentRow[3]; //set subject line
//send the actual email
MailApp.sendEmail
({
to: SendTo,
cc: "",
subject: Subject,
htmlBody: message,
});
ActiveSheet.getRange(setRow, 35).setValue("sent"); //update the row if email is sent
}
}
}
Вот как выглядит моя электронная почта. Как видите, мое электронное письмо содержит только метки и не содержит значений из строк.