首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >google应用程序发送重复提醒的脚本不起作用

google应用程序发送重复提醒的脚本不起作用
EN

Stack Overflow用户
提问于 2019-07-04 16:46:43
回答 1查看 273关注 0票数 0

我有一段代码,用于每8周向google工作表中的地址列表发送一次重复的电子邮件。它似乎没有发出邮件。

我尝试了在网上找到的各种例子,但都没有成功

代码语言:javascript
运行
复制
    ScriptApp.newTrigger("sendEmails")
  .timeBased()
  .onWeekDay(ScriptApp.WeekDay.THURSDAY)
  .atHour(11)
  .nearMinute(00)
  .everyWeeks(8)
  .create();
function sendEmails() { 
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("EMAILS") 
  var startRow = 2; 
  var numRows = sheet.getRange(1,4).getValue(); 
    var dataRange = sheet.getRange(startRow, 1, numRows, 2) 
  var data = dataRange.getValues(); 
   for (i in data) { 
    var row = data[i]; 
    var emailAddress = row[0];  
    var message = row[1]; 
    var subject = "mail subject here"; 
        MailApp.sendEmail(emailAddress, subject, message); 
  } 
}

当我手动运行脚本时,它似乎工作得很好,所以我猜问题出在新的触发器部分?

EN

回答 1

Stack Overflow用户

发布于 2019-07-04 17:51:31

问题:

目前您已经准备好了代码,但它根本不会被使用,因为它不是函数的一部分。

要求:

触发以每8周运行一次代码。

解决方案:

将触发器构建器分离到一个单独的函数中。

运行以下脚本,它将删除您可能意外设置的任何触发器,并创建一个新的触发器,该触发器将按照您的预期运行。

代码语言:javascript
运行
复制
function newTrigger() {
  //clear all triggers
  var tg = ScriptApp.getProjectTriggers();
  if(tg.length>0){
    for(i=0;i<tg.length;i++){
      ScriptApp.deleteTrigger(tg[i]);
    }
  }
  //build new trigger
  ScriptApp.newTrigger("sendEmails")
  .timeBased()
  .onWeekDay(ScriptApp.WeekDay.THURSDAY)
  .atHour(11)
  .nearMinute(00)
  .everyWeeks(8)
  .create();
}

备注:

在项目的触发器中,它将显示为“

  • ”,但实际上应该像我们在使用.everyWeeks(8).

的代码中指定的那样,每8周运行一次。

参考文献:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56883978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档