如何在Google Form提交后发送邮件?脚本测试正常但提交未触发怎么办?
嘿,我来帮你搞定这两个Google Form邮件触发的问题!
问题1:如何在Google Form提交时发送邮件?
要实现表单提交自动发邮件,核心是借助Google Apps Script的触发器功能,具体操作步骤如下:
- 打开你的Google Form,点击右上角的「更多」(三个点图标),选择「脚本编辑器」进入代码编辑界面。
- 在编辑器里写一个处理提交事件的函数,比如下面这个示例(会把表单提交的内容都整理到邮件里):
function onFormSubmit(e) { // 提取表单提交的所有内容 const responseItems = e.response.getItemResponses(); let emailBody = "收到新的表单提交啦!内容如下:\n\n"; responseItems.forEach(item => { emailBody += `${item.getItem().getTitle()}: ${item.getResponse()}\n`; }); // 发送邮件 MailApp.sendEmail({ to: "your-email@example.com", subject: `新表单提交 | ${new Date().toLocaleString()}`, body: emailBody }); }
- 给你的脚本项目起个名字(比如「表单提交邮件通知」)然后保存。
- 设置安装式触发器:点击编辑器左侧的闹钟图标(「触发器」按钮),点击「添加触发器」,按以下配置:
- 要运行的函数:选择你写的
onFormSubmit - 部署来源:选「从表单」
- 事件类型:选「表单提交」
- 点击「保存」,按照提示完成权限授权(需要允许脚本访问你的邮箱和表单数据)。
- 要运行的函数:选择你写的
- 最后测试:填写并提交表单,检查你的邮箱就能收到通知啦!
问题2:测试脚本能发邮件,但提交表单时没触发?
你遇到的这个问题,大概率是触发器没有正确配置或者函数命名不匹配导致的,具体原因和修复方法如下:
函数命名不符合简单触发器规则
你写的函数是OnSubmit(首字母大写),而Google Apps Script的简单触发器(不需要手动添加的那种)要求表单提交触发的函数名必须是onFormSubmit(全小写开头)。如果想用简单触发器,把函数名改成onFormSubmit再保存,重新提交表单试试。
不过更推荐用安装式触发器,因为简单触发器有不少限制(比如执行时间、权限范围),安装式触发器更稳定可靠。没有给函数绑定表单提交触发器
你手动运行脚本测试时,相当于手动触发了函数,但表单提交时并没有自动触发的规则。解决方法很简单:- 回到脚本编辑器,点击左侧的「触发器」图标,然后点击「添加触发器」。
- 配置选项:选择你写的
OnSubmit函数,部署来源选「从表单」,事件类型选「表单提交」,点击「保存」完成授权。 - 现在再提交表单,邮件应该就能正常发送了。
权限未正确授权
手动运行脚本时你授权了一次,但安装式触发器可能需要重新确认权限。如果添加触发器时弹出权限请求,一定要允许脚本访问你的邮箱和表单数据,否则触发器无法执行发送邮件的操作。
内容的提问来源于stack exchange,提问作者Wojtek
相关产品推荐
相关产品推荐

