Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 发送重复的电子邮件脚本_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 发送重复的电子邮件脚本

Javascript 发送重复的电子邮件脚本,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我有一个电子邮件脚本,我一直在工作的一部分工作,但有一个问题,重复电子邮件。电子邮件确实可以正常发送,但下次脚本运行时,它会在不应该发送的情况下发送一个副本 这是我在工作表中的数据结构 日期:发件人电子邮件:业务电子邮件:消息:业务名称:业务ID:发件人ID:电子邮件状态: 这是我的密码 var EMAIL_SENT = 'EMAIL_SENT'; function sendEmails2() { var ss = SpreadsheetApp.getActiveSpreadsheet(

我有一个电子邮件脚本,我一直在工作的一部分工作,但有一个问题,重复电子邮件。电子邮件确实可以正常发送,但下次脚本运行时,它会在不应该发送的情况下发送一个副本

这是我在工作表中的数据结构

日期:发件人电子邮件:业务电子邮件:消息:业务名称:业务ID:发件人ID:电子邮件状态:

这是我的密码

var EMAIL_SENT = 'EMAIL_SENT';
function sendEmails2() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName("Contact Form Submissions");
    sheet.activate()
    var sheet = SpreadsheetApp.getActiveSheet();
    var startRow = 2; // First row of data to process
    var numRows = 1; // Number of rows to process
    var dataRange = sheet.getRange(startRow, 1, numRows, 8);
    // Fetch values for each row in the Range.
    var data = dataRange.getValues();
    for (var i = 0; i < data.length; ++i) {
        var row = data[i];
        var emailSent = row[8];
        Logger.log(data);
        if (emailSent !== EMAIL_SENT) { // Prevents sending duplicates
            var subject = 'RE: QTown user contact form submission for ' + row[4];
            var emailAddress = row[2];
            var message = 'Greetings!\n\nOn ' + row[0] + ', ' + row[1] + ' submitted a contact form from your profile on QTown.\n\nThe Message:\n' + row[3] + '\n\nPlease respond to the users questions as soon as possible.\n\nThank you!\nQT';
            MailApp.sendEmail(emailAddress, subject, message);
            sheet.getRange(startRow + i, 8).setValue(EMAIL_SENT);
            // Make sure the cell is updated right away in case the script is interrupted
            SpreadsheetApp.flush();
        }
    }
}
var EMAIL_SENT='EMAIL_SENT';
函数sendmails2(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“提交的联系表单”);
工作表。激活()
var sheet=SpreadsheetApp.getActiveSheet();
var startRow=2;//要处理的第一行数据
var numRows=1;//要处理的行数
var dataRange=sheet.getRange(startRow,1,numRows,8);
//获取范围中每行的值。
var data=dataRange.getValues();
对于(变量i=0;i
问题: 问题是您正在将发送的
电子邮件
存储在
8列
中,即
H列

sheet.getRange(startRow + i, 8).setValue(EMAIL_SENT)
但是在if条件下,您要检查列
9
,它是列
I
,因为JavaScript中的数组索引从
0
开始

var emailSent = row[8]
解决方案: 将发送的
电子邮件存储在
H列中

sheet.getRange(startRow + i, 8).setValue(EMAIL_SENT)
替换:

var emailSent = row[8]
var emailSent = row[7]
sheet.getRange(startRow + i, 9).setValue(EMAIL_SENT);
与:

var emailSent = row[8]
var emailSent = row[7]
sheet.getRange(startRow + i, 9).setValue(EMAIL_SENT);

将发送的
电子邮件存储在
I
列中:

更换

sheet.getRange(startRow + i, 8).setValue(EMAIL_SENT);
与:

var emailSent = row[8]
var emailSent = row[7]
sheet.getRange(startRow + i, 9).setValue(EMAIL_SENT);