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

在线表单更新Google Sheet后触发邮件发送失败的排查求助

问题排查与修复方案

从你提供的代码来看,邮件未发送大概率是以下几个原因导致的,逐一排查修复:

1. 触发条件错误

你设置的触发条件是if (e.range.columnStart == 3),但Tally提交表单时会新增一整行数据,触发的单元格范围起始列应为1而非3。这个错误条件会直接跳过邮件发送逻辑。

修复:移除列判断,或改为校验目标工作表(确保仅在指定工作表有提交时触发):

if (e.source.getActiveSheet().getName() === "FormSubmission") {
  MailApp.sendEmail({
    to: "abc@gmail.com",
    subject: "New Request",
    htmlBody: msg,
    noReply: true
  });
}

2. msg变量未定义

代码中htmlBody: msg引用了msg变量,但你提供的片段里没有对msg赋值。变量未定义会导致脚本报错终止,邮件无法发送。

修复:提前用表单数据拼接邮件内容,示例如下:

// rData是当前提交行的二维数组,rData[0][0]对应第一列数据,按需调整
const msg = `<p>新请求提交:</p>
<p>提交人:${rData[0][0]}</p>
<p>提交内容:${rData[0][2]}</p>`;

3. 触发器类型错误

若你使用的是onEdit简单触发器,Tally的外部表单提交可能无法触发脚本(简单触发器有权限限制,仅支持手动编辑触发)。正确做法是设置安装型触发器:

  • 打开脚本编辑器,点击左侧「触发器」图标
  • 添加触发器,选择你的函数,触发事件选「从电子表格」→「表单提交」

4. 权限未授权

第一次运行脚本时,需手动授权MailApp发送邮件的权限。未完成授权会导致脚本因权限不足无法发送邮件。

修复:在脚本编辑器中手动运行一次函数,按提示完成授权流程。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 06:06:18