Я пытаюсь отправить напоминание для еженедельного вебинара с электронными письмами, которые живут в Google Sheet, используя редактор сценариев Google / codelab.Ссылка на учебник, на котором он основан, находится здесь: https://developers.google.com/apps-script/articles/sending_emails
Во втором разделе кода, который они публикуют, это улучшенная версия, потому что после отправки электронного письма он заполняет столбец "EMAIL_SENT" идолжен предотвратить отправку дубликата электронной почты, потому что "EMAIL_SENT" занимает это место (насколько я понимаю).
Моя проблема в том, что после запуска сценария я могу получить письма для отправки (Я использовал три учетных записи электронной почты, и каждая из них получила их), но я также получаю сообщение об ошибке:
Failed to send email: no recipient (line 24, file "macros").
Макросы - это имя файла.Другая проблема, с которой я сталкиваюсь, заключается в том, что, если я снова запустю скрипт после заполнения EMAIL_SENT, он все равно отправит дополнительное электронное письмо, даже если это не предполагается.
Я пытался сделать объект в первой части кода разными числами, чтобы попытаться получить правильные данные.После того, как я получил правильные данные, я не понимаю, почему другие части не будут работать.
`// This constant is written in column C for rows for which an email
// has been sent successfully.
var EMAIL_SENT = 'EMAIL_SENT';
/**
* Sends non-duplicate emails with data from the current spreadsheet.
*/
function sendEmails_w_verification() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 116; // First row of data to process
var numColumns = 8;
var startColumn = 1;
// Fetch the range of cells as object
var dataRange = sheet.getRange(startRow, startColumn,
sheet.getLastRow(), numColumns);
// 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[1]; // Second column
var message = "Thank you for registering for the webinar"; // Second
column
var emailSent = row[8]; // ninth column
if (emailSent != EMAIL_SENT) { // Prevents sending duplicates
var subject = 'AFWERX Webinar Reminder';
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();
}
}
}
Ожидаемые дубликаты не отправляются и сообщение об ошибке «Не удалось отправить электронное письмо: нет получателя (строка 24, файл« макросы »)» при отправке электронного письма.