如何使用Apps Script创建每周5天自动发送的Gmail定时重复邮件
Gmail定时发信脚本修复方案
已知错误点
- 触发器绑定的函数名不匹配:发信函数定义为
sendEmails,但创建触发器时传入的是带空格的send emails,触发时无法找到对应执行函数 - 语法不规范:代码开头的
Function首字母大写不符合JavaScript语法要求,需改为小写function - 旧触发器冲突:未清理之前创建的每日触发等旧触发器,可能导致执行逻辑冲突
修正后完整代码
function sendEmails() { var emailAddress = 'email@email.com'; var subject = 'Reminder: reminder'; var message = 'Content of message'; MailApp.sendEmail(emailAddress, subject, message, { htmlBody: message, }); } function createTriggers() { // 先清理所有现有触发器,避免重复冲突 var existingTriggers = ScriptApp.getProjectTriggers(); for(var i = 0; i < existingTriggers.length; i++) { ScriptApp.deleteTrigger(existingTriggers[i]); } // 配置需要触发的星期:周日至周四 var days = [ScriptApp.WeekDay.MONDAY, ScriptApp.WeekDay.TUESDAY, ScriptApp.WeekDay.WEDNESDAY, ScriptApp.WeekDay.THURSDAY, ScriptApp.WeekDay.SUNDAY]; for (var i=0; i<days.length; i++) { // 修正绑定的函数名 ScriptApp.newTrigger("sendEmails") .timeBased().onWeekDay(days[i]) .atHour(17).create(); } }
操作步骤
- 将原有代码替换为上述修正后的代码
- 手动运行一次
sendEmails函数,验证发信功能正常,确认接收邮箱能收到测试邮件 - 运行
createTriggers函数,首次运行时按照提示完成Google账号的授权操作 - 可以在Apps Script左侧「触发器」菜单中查看生成的5个对应时间的定时触发器,确认配置正确
内容的提问来源于stack exchange,提问作者Matthew G
相关产品推荐
相关产品推荐

