You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Google Apps Script自动发邮件脚本未成功发送邮件求助

问题排查及解决方案

可直接定位的显性问题

  • 邮件发送代码被注释:你现有代码中MailApp.sendEmail(emailAddress, subject, message)一行前加了//注释符,就算日期匹配条件满足,也不会真的触发邮件发送,首先删除这行开头的//即可。
  • 硬编码时区易导致匹配失败:代码中固定使用GMT+0200时区格式化日期,只要脚本项目时区、谷歌表格时区、你实际所在时区三者有一个不匹配,就会出现日期对比不一致的情况,建议替换为脚本默认时区,避免硬编码错误。
  • 未配置自动触发器:如果你的预期是脚本自动每日检查发送,需要额外配置时间驱动触发器,手动点击运行才会执行当前代码,无法自动触发。

其他需要核对的隐性问题

  • 确认你的谷歌表格工作表名称完全等于Mysheet,大小写、前后空格都要完全一致,否则会获取工作表失败,后续逻辑全部无法执行。
  • 确认表格列顺序和代码索引匹配:代码中row[0]取A列(邮箱)、row[1]取B列(日期)、row[2]取C列(邮件内容),如果你的表格列顺序不匹配,会出现取值错误、邮箱无效等问题。
  • 检查脚本权限:首次运行脚本需要授予邮件发送权限,可在Apps Script左侧的「执行记录」页面查看是否有权限类报错。

修改后可用参考代码

function sendEmail() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Mysheet");
  var startRow = 2;
  var numRows = sheet.getLastRow() - 1;
  if(numRows < 1) return; // 空数据直接返回避免报错
  var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
  var data = dataRange.getValues();
  var scriptTimeZone = Session.getScriptTimeZone(); // 取脚本时区避免硬编码错误

  for (var i = 0; i < data.length; i++) {
    var row = data[i];
    if(!row[0] || !row[1]) continue; // 空邮箱或空日期直接跳过
    var currentDate = new Date();
    var sheetDate = new Date(row[1]);
    var formattedCurrent = Utilities.formatDate(currentDate, scriptTimeZone, 'yyyy:MM:dd');
    var formattedSheet = Utilities.formatDate(sheetDate, scriptTimeZone, 'yyyy:MM:dd');
    
    if (formattedCurrent === formattedSheet){
      var emailAddress = row[0];
      var message = row[2];
      var subject = "Sending emails from a Spreadsheet";
      MailApp.sendEmail(emailAddress, subject, message);
      Logger.log('已发送邮件至:'+emailAddress);
    }    
  }
}

自动触发配置方法

打开Apps Script编辑页,点击左侧「触发器」按钮→添加触发器,按以下参数配置:

  • 选择要运行的函数:sendEmail
  • 选择事件源:时间驱动
  • 选择类型:日计时器
  • 选择时间范围:选择你想要每日触发发送的时间段
    保存后按照提示完成授权即可。

内容的提问来源于stack exchange,提问作者HSHO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:15:04