【发布时间】:2020-04-28 23:34:22
【问题描述】:
如何避免在运行脚本后发送重复的电子邮件。我创建的脚本如下所述。运行脚本后,我只想将属性一次发送到电子表格上的电子邮件。
var EMAIL_SENT = 'EMAIL_SENT';
function sendEmails() {
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1").activate();
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
var lr = ss.getLastRow()
var templateText = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Subject Template").getRange(1, 1).getValue();
var quotaLeft = MailApp.getRemainingDailyQuota();
if ((lr-1) > quotaLeft) {
Browser.msgBox("You have " + quotaLeft + " left and you're trying to send " + (lr-1) + " emails. Emails were not sent.")
} else {
for (var i = 2;i<=lr;i++) {
var currentEmail = ss.getRange(i, 6).getValue();
var currentSubject = ss.getRange(i, 5).getValue()
var currentUser = ss.getRange(i, 2).getValue();
var currentDivision = ss.getRange(i, 3).getValue();
var currentIssue = ss.getRange(i, 5).getValue();
var currentSeveritylevel = ss.getRange(i, 4).getValue();
var emailSent = ss.getRange(i, 9);
var messageBody = templateText.replace("{User}",currentUser).replace("{division}",currentDivision).replace("{Issue}",currentIssue).replace("{Severity level}", currentSeveritylevel);
var subjectLine = "Tech Support Issue: " + currentIssue + " for " + currentUser;
if (emailSent !== EMAIL_SENT) {
MailApp.sendEmail(currentEmail, subjectLine, messageBody);
ss.getRange(i, 9).setValue('EMAIL_SENT');
}
}
}
}
【问题讨论】: