Я пытаюсь запустить скрипт на листе Google, чтобы отправить электронное письмо, только если определенный столбец не равен «y». Если это правда, то я хочу, чтобы он отправил электронное письмо, а затем положил «y» в столбце, чтобы предотвратить отправку дубликата. Это не работает, хотя я продолжаю получать повторяющиеся электронные письма. Вот код:google script для отправки условной электронной почты
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 600; // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, 600)
//Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
if (row[19]!= 'y') {
var emailAddress = "[email protected]"; // First column
var message = "A new trip request has been submitted. Here's what you need to know. Trip #: " + row[1] + " " + row[4] + " to:" +
row[10] + " Depart Date: " + row[8]; // Second column
var subject = "New Trip Request " + row[1];
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(i+2,19).setValue('y');
}
}
}
Существует вероятность, что вы ссылаетесь на неправильный номер столбца в этой строке кода «if (row [19]! = 'Y') {'. – KRR
Он заменил заголовок столбца на y в столбце 19, но я думаю, что исправил это. Поэтому я почти уверен, что 19 правильный. –
Кстати, я запустил ваш код один раз, и он превысил количество писем, которые моя учетная запись могла отправить за один день после одного исполнения вашего кода. Он пытается отправить что-то вроде 600 писем, потому что цикл 'FOR' оценивается как true на каждой итерации. –