首页 > 解决方案 > Google Apps 脚本 - 基于时间的触发器

问题描述

我是一个完全的新手,试图设置一个定时触发器。我有一个包含电子邮件列表的电子表格,创建了一个脚本,可以向每个人发送一封电子邮件。如果我手动运行脚本,它工作得很好。我想要一个每 3 个月自动发送电子邮件的触发器。

function sendEmails() {
  var ss = SpreadsheetApp.openById("1234ID-here"); SpreadsheetApp.setActiveSpreadsheet(ss);
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getDataRange(); // Fetch values for each row in the Range.  var data = dataRange.getValues();
  for (var i = 1; i < data.length; i++) {
    (function (val) {
      var rowData = data[i];
      var emailAddress = rowData[1];
      var recipient = rowData[0];
      var phone = rowData[2];
      var skill = rowData[3];
      var address = rowData[4];
      var moreinfo = rowData[5];
      var message = 'Dear ' + recipient + ',\n\n' + "You signed up for the following skillshare:" + skill + "." +
        "If you would like to be removed from this list, or if the following contact info has changed, please reply to this email. Otherwise we will assume no change." +
        '\n\n' + address + '\n\n' + phone + '\n\n' + moreinfo + '\n\n' + 'Thanks!';
      var subject = 'Skill sharing list';
      MailApp.sendEmail(emailAddress, subject, message);
    })(i);
  }
}

如果我运行它,它工作正常。这是我为触发器创建的另一个脚本:

function createTimeTriggers() {
  ScriptApp.newTrigger('sendEmails')
    .timeBased()
    .everyMinutes(1) //(to test it)
    .create();
}

运行它对我没有任何帮助,看起来它有 90% 的错误率,我一运行它就执行了 119 次。请帮忙?

*编辑 - 看起来它记录了错误“找不到脚本功能:sendEmails”

只有两个脚本

发送电子邮件片段

触发片段

错误

我要添加的一个触发器

标签: google-apps-scripttriggers

解决方案


就像我说的,新手(例如,我昨晚刚开始学习这个)。我想到了!我已经将脚本创建为两个单独的项目,但刚刚意识到我可以将脚本添加到我的 sendEmails 项目中......现在两个脚本都包含在一个项目中,它运行得非常好!哈哈谢谢你的帮助和耐心!


推荐阅读