【发布时间】:2016-04-28 22:12:27
【问题描述】:
我正在尝试在某个单元格具有所需值时自动发送电子邮件。我想出了如何不断地做到这一点,即触发器被设置为每天在一天中的某个时间触发,以检查条件并在满足时发送电子邮件。但我希望触发器在发送一次电子邮件后停止工作。我以为我可以这样做:
如果满足条件,我有一个发送电子邮件的功能。如果不满足条件,则会创建一个触发器,它将再次运行该函数一次。以此类推,触发器将继续创建,直到满足条件为止。
这是我写的代码:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssName = ss.getName();
var emailAddress = ss.getRange("Tab1!B4").getValue();
var Test1 = ss.getRange("Tab1!B6").getValue();
function SendEmailOnce(){
if (Test1 <= 10) {
MailApp.sendEmail({
to: emailAddress,
subject: "Sample subject: " + ssName,
htmlBody: "Sample message<br/> Regards, robot",
});
}
else {
function createTriggerCheckAgain() {
ScriptApp.newTrigger('SendEmailOnce')
.timeBased()
.after(60 * 1000)
.create();
}
}
}
由于某种原因它不起作用。当我在 Test1 值为 15 时运行该函数,然后将值更改为 5,则不会发送任何电子邮件。
如果它们是分开的,它的部分工作: 1. 运行函数时,如果值为 5,则发送电子邮件。 2. 当值是 5 时,在我运行创建触发器的函数后一分钟后发送电子邮件。
也许有更简单的方法可以做到这一点?我是 JavaScript 的新手。提前感谢您的任何建议。
【问题讨论】:
标签: javascript google-apps-script triggers google-sheets