【发布时间】:2019-08-12 00:45:19
【问题描述】:
我正在尝试从谷歌表格发送电子邮件,并在发送时填充一列,一旦发送并填充该列,我希望它注册电子邮件已发送,然后不再向该人发送电子邮件
这是表格: https://docs.google.com/spreadsheets/d/1f6qUjGYHZtRRGCbyh5oNzM7o64B-wlkrTpB1ac64I2U/edit?usp=sharing
我尝试了不同的代码,当我使用示例代码时,它们似乎无法正常工作
var EMAIL_SENT = 'EMAIL_SENT';
function sendEmailsZ() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 4;
var numRows = 2;
var dataRange = sheet.getRange("J4:K5");
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[0];
var message = row[1];
var emailSent = row[2];
if (emailSent != EMAIL_SENT) {
var subject = 'Non Repeat B08 - populates correct column but doesnt prevent re-sending';
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 12).setValue(EMAIL_SENT);
SpreadsheetApp.flush();
}
}
}
这会将所需的消息发送到所需的电子邮件地址,并在正确的位置填充“已发送电子邮件”列,但是当我再次运行脚本时,它会忽略“EMAIL_SENT”命令并重新发送电子邮件,尽管该列已被填充在
【问题讨论】: