Google表格电子邮件脚本发送多封电子邮件

时间:2020-02-04 14:34:59

标签: javascript google-apps-script google-sheets

我正在使用Google表单将多封邮件合并为使用脚本和每日定时触发器(从here和下面的版本复制的代码)发送的每日一封电子邮件。

所有这些都带有一个小错误。我的收件箱中也出现了大约2/3的电子邮件,并且每天都在填写。

例如,一个电子邮件地址是abc@example.co.uk,他们收到了电子邮件,但是在我的收件箱(xyz@example.co.uk)中却有一封电子邮件发送到abc@example.co.uk,但是不是转发的消息或回复。

有什么想法可以阻止这种情况吗?

    /**
     * Sends emails with data from the current spreadsheet.
     */
    function sendEmails() {
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Email Info');
      var startRow = 1; // First row of data to process
      var numRows = 18; // Number of rows to process
      // Fetch the range of cells A2:B3
      var dataRange = sheet.getRange(startRow, 1, numRows, 18);
      // Fetch values for each row in the Range.
      var data = dataRange.getValues();
      for (var i in data) {
        var row = data[i];
        var emailAddress = row[0]; // First column
        var message = row[1]; // Second column
        var subject = 'Tech Support Handover';
       MailApp.sendEmail(emailAddress, subject, message);
      }
    }

1 个答案:

答案 0 :(得分:0)

再添加一列,并将其称为已发送。

function sendEmails() {
  var sh=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Email Info');
  var data=sh.getRange(1,1,18,19).getValues();
  for (var i=0;i<data.length;i++) {
    var row=data[i];
    var emailAddress=data[i][0];
    var message=data[i][1];
    var sent=data[i][18];//column 19  Added one more column
    var subject='Tech Support Handover';
    if(sent!='SENT') {
      MailApp.sendEmail(emailAddress, subject, message);
      sh.getRange(i+1,19).setValue('SENT');
    }
  }
}