Google Forms技术需求:实现以提交用户邮箱为发件人自动发邮件
可行解决方案:利用Google Apps Script实现表单提交后的邮件通知
核心思路
个人Gmail账号受Google安全政策限制,无法直接将发件人伪装成提交用户的邮箱(防止邮件伪造),但可以通过**设置回复地址(replyTo)**实现等效需求:收件人(你的另一邮箱)收到邮件后,点击回复会直接发送到提交用户的邮箱,同时邮件内容中明确标注用户的提交邮箱和表单内容。
具体步骤
打开表单的脚本编辑器
打开你的Google Forms表单,点击右上角的「⋮」菜单,选择「脚本编辑器」,进入Google Apps Script编辑界面。编写触发脚本
将以下代码粘贴到编辑器中,根据你的实际情况修改两处标记内容:- 替换
"你的邮箱字段标题"为你表单中邮箱输入框的实际标题 - 替换
"your-other-email@example.com"为你要接收通知的另一邮箱地址
function onFormSubmit(e) { // 提取表单提交的所有响应 const responses = e.response.getItemResponses(); let userEmail = ""; // 遍历响应找到用户填写的邮箱 for (const response of responses) { const itemTitle = response.getItem().getTitle(); if (itemTitle === "你的邮箱字段标题") { userEmail = response.getResponse(); break; } } // 目标收件邮箱 const targetEmail = "your-other-email@example.com"; // 构建邮件内容 const subject = `新表单提交:来自 ${userEmail}`; let body = `提交用户邮箱:${userEmail}\n\n表单提交详情:\n`; responses.forEach(response => { const question = response.getItem().getTitle(); const answer = response.getResponse(); body += `${question}: ${answer}\n`; }); // 发送邮件,设置回复地址为用户邮箱 MailApp.sendEmail({ to: targetEmail, subject: subject, body: body, replyTo: userEmail }); }- 替换
设置表单提交触发器
- 在脚本编辑器左侧,点击时钟图标(「触发器」)
- 点击「添加触发器」,配置以下选项:
- 选择要运行的函数:
onFormSubmit - 选择部署类型:
Head - 选择事件源:
表单 - 选择事件类型:
表单提交
- 选择要运行的函数:
- 点击「保存」,按照提示完成权限授权(首次授权需要在浏览器的安全提示中选择「高级」→「前往xxx脚本(不安全)」,这是因为脚本是你自己编写的,安全可控)
关键说明
- 关于发件人:由于Google的安全限制,个人Gmail账号无法将发件人设置为非自身的邮箱,因此邮件的发件人仍会显示为你创建表单的Gmail账号,但
replyTo已设置为提交用户的邮箱,收件人点击回复即可直接联系提交用户。 - 邮件限额:个人Gmail账号的
MailApp每天发送限额为100封,满足大多数普通表单的使用需求。 - 字段匹配:务必确保脚本中填写的邮箱字段标题与表单中的完全一致(包括大小写、空格),否则无法正确提取用户邮箱。
内容的提问来源于stack exchange,提问作者Daniel_Kamel
相关产品推荐
相关产品推荐

