如何修复非重复性的,从Google表发送了电子邮件



我正在尝试从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');
    }
  }
}

最新更新