Сбой сценария
с неверным адресом электронной почты: не определено (строка 29, файл "newCode")
Проработал несколько ошибок, но застрял на этом.
Помимо сообщения об ошибке я нашел опцию отладчика и запустил ее.
Это не имело большого смысла, но эта строка, кажется, соответствует жалобе.
"адрес электронной почты не определен"
Мне кажется, это может быть связано с тем, что я здесь сделал:
var emailAddress = row[3]; // columnD
Все, что я сделал в заимствованном коде, это изменил столбец, из которого я хочу получить информацию. В этом случае адрес электронной почты. Насколько я знаю, столбец D в Google Sheets упоминается как "3" ColA = 0, ColB = 1 ... ColD = 3.
Я не могу жестко указать адрес электронной почты, так как он будет варьироваться от одной строки к другой.
Может кто-нибудь посоветовать, как это по ошибке?
function Initialize() {
var triggers = ScriptApp.getProjectTriggers();
for(var i in triggers) {
ScriptApp.deleteTrigger(triggers[i]);
}
ScriptApp.newTrigger("SndMail()")
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onFormSubmit()
.create();
}
// Write a value to column G for rows where an email sent successfully and sends non-duplicate emails with data from the current spreadsheet.
function SndMail() {
var EMAIL_SENT = 'Sent';
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 75; // Number of rows to process.
// Fetch the range of cells A2:G76
var dataRange = sheet.getRange(startRow, 2, numRows);
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[3]; // columnD
var message = 'Please create a Logistics Case and log the CAS# for: <br/> row[4 + 5]'; // columnE
var mailout = row[6]; // columnG
if (mailout != EMAIL_SENT) { // Prevents sending duplicates
var subject = 'Logistics Claim case request';
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 3).setValue(Sent);
// Make sure the cell is updated right away in case the script is interrupted
SpreadsheetApp.flush();
}
}
}
Что должно происходить, так это то, что при отправке формы Google лист обновляется, и запускается сценарий для отправки по электронной почте предполагаемому получателю (аддитив электронной почты в столбце D), а затем помещается текст «Отправлено» в столбец G. фильтрует последующие запуски функций, избегая повторяющихся отправок электронной почты.