Google Form提交后发邮件的Apps Script修改:无主题选项仍可触发
Google Form 自动发送响应邮件脚本修改方案
核心修改逻辑
原脚本的触发限制来自内置的主题选项非空校验分支:仅当检测到主题字段存在且用户选中至少一个选项时,才会执行邮件发送代码。移除该校验逻辑、添加字段兼容处理后即可实现所有提交场景下自动发邮件。
完整修改后参考脚本
可直接替换你手里的原脚本,也可对照修改对应逻辑:
function sendFormResponseEmail(e) { // 1. 获取表单提交的所有响应内容 const formResponse = e.response; const itemResponses = formResponse.getItemResponses(); // 可自定义收件人,也可从表单响应中提取用户填写的邮箱 const recipient = Session.getActiveUser().getEmail(); const emailSubject = "新表单提交通知"; let emailBody = "你收到了一份新的表单提交,内容如下:\n\n"; // 2. 遍历所有响应拼接邮件正文,兼容无主题字段场景 for (let i = 0; i < itemResponses.length; i++) { const itemTitle = itemResponses[i].getItem().getTitle(); const itemValue = itemResponses[i].getResponse(); // 处理多选类字段的数组格式 const formatValue = Array.isArray(itemValue) ? itemValue.join("、") : itemValue; emailBody += `${itemTitle}:${formatValue}\n`; } // 3. 移除原脚本的主题非空判断,直接发送邮件 MailApp.sendEmail({ to: recipient, subject: emailSubject, body: emailBody }); }
部署验证步骤
- 修改脚本后点击「保存」按钮,为项目命名
- 进入触发器页面,删除旧的表单提交触发器,新建触发器:选择对应函数、触发事件为「表单提交」
- 首次触发需要完成脚本权限授权,安全提示页选择「高级」-「继续访问[你的项目名]」完成授权即可
- 测试时直接提交空白表单/无主题选择的表单,即可收到响应邮件
如果你手里的原脚本结构和上面示例不同,只需要找到包裹
MailApp.sendEmail方法的主题非空判断语句,删除外层的if判断包裹即可。
内容的提问来源于stack exchange,提问作者sai
相关产品推荐
相关产品推荐

