Я очень новичок в написании сценариев и изо всех сил пытаюсь написать сценарий для сборщика денег для нашей программы молодежной лиги. Сценарий, запускаемый нажатием на изображение, отправит электронное письмо всем получателям в списке, добавит «электронное письмо отправлено» в столбец состояния «I» во всех строках, в которые электронное письмо отправлено ... затем всякий раз, когда скрипт запускается снова, отправляйте только электронные письма новым строкам данных, которые еще не отправлены.
Скрипт, который я вставил, отправил письмо, но если скрипт снова запустится, он не будет обращать внимания на столбец состояния «I», и я получу дубликаты писем. Я использовал учебные видео, чтобы получить меня так далеко, но теперь я застрял. Я пытался получить помощь от подобных вопросов, но у меня недостаточно опыта, чтобы изменить его в соответствии с моими потребностями. Вот копия листа Google, на листе «Отправить электронную почту» есть информация, с которой запускается скрипт. ОБНОВЛЕНО:
https://docs.google.com/spreadsheets/d/1MBVhLj1A7Z_cpYxs_s5ae11ykJvTmS16E0jW4tGsNU4/edit?usp=sharing
function sendOrderEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Send Emails"));
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var dataRange = sheet.getRange("A2:I10");
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var rowData = data[i];
var emailAddress = rowData[0];
var recipient = rowData[1];
var message1 = rowData[2];
var parameter1 = rowData[3];
var message2 = rowData[4];
var message3 = rowData[5];
var parameter2 = rowData[6];
var message4 = rowData[7];
var emailSent = rowData[9];
var message = 'Hi ' + recipient + ',\n\n' + message1 + parameter1 + ' ' + message2 + ' ' + message3 + parameter2 + '. ' + message4 + '\n\n' + 'Tri-Valley Youth League Softball';
var subject = 'Order Reference Number ' + parameter2;
if (emailSent != "EMAIL_SENT" ) { // Prevents sending duplicates
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 9).setValue("EMAIL_SENT");
// Make sure the cell is updated right away in case the script is interrupted
SpreadsheetApp.flush();
}
}
}