Google apps script 如何修复从Google Sheet发送的非重复电子邮件

Google apps script 如何修复从Google Sheet发送的非重复电子邮件,google-apps-script,Google Apps Script,我正在尝试从google sheets发送电子邮件,让它在发送时填充一列,一旦发送并填充该列,我希望它注册电子邮件已发送,然后不再向该人发送电子邮件 这是表格: 当我使用示例代码时,我尝试了不同的代码,但似乎无法使我的代码正常工作 var EMAIL_SENT = 'EMAIL_SENT'; function sendEmailsZ() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow = 4; var num

我正在尝试从google sheets发送电子邮件,让它在发送时填充一列,一旦发送并填充该列,我希望它注册电子邮件已发送,然后不再向该人发送电子邮件

这是表格:

当我使用示例代码时,我尝试了不同的代码,但似乎无法使我的代码正常工作

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();
    }
  }
}
var EMAIL_SENT='EMAIL_SENT';
函数sendmailsz(){
var sheet=SpreadsheetApp.getActiveSheet();
var startRow=4;
var numRows=2;
var dataRange=sheet.getRange(“J4:K5”);
var data=dataRange.getValues();
对于(变量i=0;i
这会将所需的消息发送到所需的电子邮件地址,并在正确的位置填充“已发送电子邮件”列。但是,当我再次运行脚本时,它会忽略“已发送电子邮件”命令并重新发送电子邮件,尽管该列已填充。

请尝试以下操作:

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');
    }
  }
}
函数sendmailsz(){ var sheet=SpreadsheetApp.getActiveSheet(); var startRow=4; var numRows=2; var dataRange=sheet.getRange(4,1,sheet.getLastRow(),sheet.getLastColumn()); var data=dataRange.getValues(); 对于(变量i=0;i
Aha!非常感谢。然后我尝试将L5更改为L100,但可能是因为J5之外没有电子邮件地址,脚本无法运行。有没有办法克服这个问题?基本上,电子邮件栏会超时填充,我不想每次更新新电子邮件时都编辑脚本。请确保我会查看您的电子表格并再次与您联系Hanks Cooper,这会产生一个错误,显示“发送电子邮件失败:无收件人(第15行,文件名”)。该行以前是var dataRange=sheet.getRange(“J4:L5”);