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

Google Script 表格触发发送邮件函数无法正常工作问题求助

代码无法触发邮件的3个核心问题
  • 取值逻辑错误:你先获取了整列D的范围,直接调用getValue()只会返回该范围左上角单元格(即D1)的值,完全读不到你新增的最后一行数据,判断条件从一开始就不生效。
  • 语法错误:MailApp.sendEmail的参数对象里,body属性行末尾缺少逗号分隔,脚本运行时会直接抛出语法异常,根本执行不到发邮件的逻辑。
  • 缺少触发配置:你写的是普通自定义函数,没有绑定表格编辑事件,就算代码逻辑正确,修改单元格时也不会自动执行函数,自然不会发邮件。
修复后可直接使用的代码
function sendEmailReport(e) {
  // 替换成你自己的表格链接、工作表名、收件邮箱
  const SS_LINK = '你的Google电子表格实际链接';
  const SHEET_NAME = 'Sheet Name';
  const RECEIVER_EMAIL = '你的实际收件邮箱';

  // 优先从事件对象取编辑的单元格信息,减少不必要的接口调用
  const sheet = e ? e.range.getSheet() : SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
  // 非目标工作表的编辑直接跳过
  if (sheet.getName() !== SHEET_NAME) return;
  
  let targetValue, targetRow;
  if (e) {
    // 编辑位置不在D列直接跳过
    if (e.range.getColumn() !== 4) return;
    targetValue = Number(e.value);
    targetRow = e.range.getRow();
  } else {
    // 手动运行脚本时默认取D列最后一行的值做判断
    targetRow = sheet.getLastRow();
    targetValue = Number(sheet.getRange(targetRow, 4).getValue());
  }

  // 数值小于8时触发邮件
  if (!isNaN(targetValue) && targetValue < 8) {
    MailApp.sendEmail({
      to: RECEIVER_EMAIL,
      subject: "数值异常提醒",
      body: `表格D列第${targetRow}行新增数值为${targetValue},小于阈值8,表格链接:${SS_LINK}`,
      name: 'Department ABC'
    });
  }
}
配置步骤
  1. 把代码里的占位符(表格链接、工作表名、收件邮箱)替换成实际信息,保存脚本。
  2. 在Google Apps Script编辑器左侧菜单找到「触发器」选项,点击「添加触发器」。
  3. 触发规则按以下选择:执行函数选sendEmailReport,事件来源选「来自电子表格」,事件类型选「编辑时」,保存后完成账号授权即可。
  4. 测试时直接在目标工作表D列输入数值,小于8时会自动发送通知邮件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:12:32