中
我正在尝试从Google表中发送电子邮件,并在发送时填充一列,一旦发送并填充了该列,我希望它将其注册,以注册电子邮件已发送电子邮件然后不再次发送电子邮件
这是表:https://docs.google.com/spreadsheets/d/1f6qujgyhztrrgcbyh5onzm7o64b-wlkrtpb164i2u/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"命令,尽管列填充了列,但仍会重新发送电子邮件在
尝试以下:
function sendEmailsZ() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 4;
var numRows = 2;
var dataRange = sheet.getRange(4,1,sheet.getLastRow(),sheet.getLastColumn());
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];//You were not getting this data because your range was incorrect
var subject = 'Non Repeat B08 - populates correct column but doesnt prevent re-sending';
if (emailAddress && message && subject && emailSent != 'EMAIL_SENT') {
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 12).setValue('EMAIL_SENT');
}
}
}