Javascript 发送重复的电子邮件脚本
我有一个电子邮件脚本,我一直在工作的一部分工作,但有一个问题,重复电子邮件。电子邮件确实可以正常发送,但下次脚本运行时,它会在不应该发送的情况下发送一个副本 这是我在工作表中的数据结构 日期:发件人电子邮件:业务电子邮件:消息:业务名称:业务ID:发件人ID:电子邮件状态: 这是我的密码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(
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);