2017-06-19 42 views
0

我已经创建了一个脚本,该脚本根据为批准工作流创建的单元值发送自动化电子邮件。防止发送重复项 - 不起作用

脚本工作正常,但是,我不能够防止重复寄送

请一些提示

// 
 
var now = new Date();//mail semt date 
 
var EMAIL_SENT = "EMAIL_SENT";// mail sent status 
 
var approvalstatus = 'Approved';// Approved Status 
 

 
function SecondaryApproval() { 
 
var sheet = SpreadsheetApp.getActiveSheet(); 
 
var startRow = 2; // First row of data to process 
 
var numRows = 100; // Number of rows to process 
 
var dataRange = sheet.getRange(startRow, 1, numRows, 16) 
 
var data = dataRange.getValues(); 
 
for (var i = 0; i < data.length; ++i) { 
 
var row = data[i]; 
 
var Ticket = row[0]; 
 
var RequesterEmail = row[2]; 
 
var Item = row[3]; 
 
var emailAddress = row[6]; // First column 
 
var message = row[7];  // Second column 
 
var emailSent = row[8];  // Third column 
 
var date = row[9]; 
 
var yesNo = row[5]; 
 
if (yesNo === approvalstatus) { 
 
    var subject = "Secondary Approval "; 
 
    GmailApp.sendEmail(emailAddress, subject, "Dear " + + "RequesterEmail" + Ticket + ", \n\nThis is an email report of your link. \n\nYour link is " + Item + " \n\nKind regards,\nName ", { 
 
        from: "[email protected]", 
 
        name: "Account"}); 
 
    sheet.getRange(startRow + i, 8).setValue(EMAIL_SENT); 
 
    sheet.getRange(startRow + i, 9).setValue(now); 
 

 
    // Make sure the cell is updated right away in case the script is interrupted 
 
    SpreadsheetApp.flush(); 
 
} 
 
    else (emailSent === EMAIL_SENT); { // Prevents sending duplicates 
 
    } 
 
}

+0

你有语法错误,那是你的问题。 –

回答

1

您需要检查emailSent !== EMAIL_SENT帮助发送邮件:

// 
 
var now = new Date();//mail semt date 
 
var EMAIL_SENT = "EMAIL_SENT";// mail sent status 
 
var approvalstatus = 'Approved';// Approved Status 
 

 
function SecondaryApproval() { 
 
var sheet = SpreadsheetApp.getActiveSheet(); 
 
var startRow = 2; // First row of data to process 
 
var numRows = 100; // Number of rows to process 
 
var dataRange = sheet.getRange(startRow, 1, numRows, 16) 
 
var data = dataRange.getValues(); 
 
for (var i = 0; i < data.length; ++i) { 
 
var row = data[i]; 
 
var Ticket = row[0]; 
 
var RequesterEmail = row[2]; 
 
var Item = row[3]; 
 
var emailAddress = row[6]; // First column 
 
var message = row[7];  // Second column 
 
var emailSent = row[8];  // Third column 
 
var date = row[9]; 
 
var yesNo = row[5]; 
 
if (yesNo === approvalstatus && emailSent !== EMAIL_SENT) { 
 
    var subject = "Secondary Approval "; 
 
    GmailApp.sendEmail(emailAddress, subject, "Dear " + + "RequesterEmail" + Ticket + ", \n\nThis is an email report of your link. \n\nYour link is " + Item + " \n\nKind regards,\nName ", { 
 
        from: "[email protected]", 
 
        name: "Account"}); 
 
    sheet.getRange(startRow + i, 8).setValue(EMAIL_SENT); 
 
    sheet.getRange(startRow + i, 9).setValue(now); 
 

 
    // Make sure the cell is updated right away in case the script is interrupted 
 
    SpreadsheetApp.flush(); 
 
} 
 
}

+0

谢谢...问题已修复 – KiKu