非程序员如何修改含SendQueryData函数的表单,将数据发送至我的邮箱?
表单数据推送至个人邮箱的落地修改方案
关键前提
纯前端页面代码不具备直接把表单数据发送到指定邮箱的能力。所有尝试在前端直接对接发信服务的方案,都会暴露邮箱发信密钥、触发浏览器跨域拦截,本质是不可靠的临时方案。你不需要完全理解现有代码的运行逻辑,只需要按步骤替换指定位置的提交逻辑即可,全程不需要编写复杂后端代码。
分步操作
- 先备份现有所有JS脚本文件
改代码前把当前页面用到的两部分脚本(轮播初始化、Cookie计数的jQuery逻辑,SendQueryData函数逻辑)整份复制存成备份文件,万一修改出错可以直接还原。其中轮播、Cookie计数的逻辑和表单提交完全独立,全程不需要改动,只需要动SendQueryData函数里的提交部分。 - 定位需要修改的代码块
打开SendQueryData()函数的代码位置,找到以下两个部分:- 所有负责字段格式校验(姓名、手机号、邮箱、留言规则判断)的代码,全部保留不动
- 校验通过后调用
setProjectQueryData的提交代码,以及后续清空表单、弹出自动关闭感谢弹窗的代码,其中弹窗和清表单的逻辑全部保留,仅把调用setProjectQueryData的那几行代码前面加//注释,让原有旧的提交逻辑暂时不运行
参考代码结构:
function SendQueryData() { // 原有格式校验代码 全程保留 // ... // 原有提交逻辑,注释掉停用 // setProjectQueryData(你之前收集的所有表单字段值); // 原有清表单、弹感谢窗代码 全程保留 // ... } - 配置表单邮件转发通道
选择支持免费额度的无代码表单转发服务,不需要写后端接口:- 在服务后台绑定你要接收数据的个人邮箱,完成邮箱所有权验证,拿到服务分配的专属POST提交接口地址
- 把刚才注释掉的
setProjectQueryData位置,替换成调用这个接口的提交代码,直接复用你原来代码里已经拿到的表单字段变量,不需要重新写获取表单值的逻辑:
// 替换为你自己拿到的专属提交接口地址 fetch("专属接口地址", { method: "POST", headers: { "Content-Type": "application/json" }, // 下面的字段值直接填你原来传给setProjectQueryData的对应变量即可 body: JSON.stringify({ 姓名: 你代码里存的姓名字段变量, 手机号: 你代码里存的手机号字段变量, 联系邮箱: 你代码里存的邮箱字段变量, 留言内容: 你代码里存的留言字段变量 }) }) - 全流程测试
修改完成后刷新网页,填写完整表单测试提交:- 确认指定的个人邮箱能收到包含所有字段内容的邮件
- 确认原有的清空表单、自动关闭感谢弹窗的效果和修改前完全一致
- 确认页面上的轮播组件、访客Cookie计数功能运行正常
避坑提示
- 绝对不要在前端JS代码里直接写邮箱发信的SMTP账号、授权密码,所有访问你网页的人都能直接在浏览器源代码里看到这些信息,轻则被刷垃圾邮件,重则账号被盗用
- 不要用
mailto:路径替代现有提交逻辑,这种方式会强制拉起用户本地的邮件客户端,无法实现后台自动提交、自动发信的效果 - 如果提交后收不到邮件,优先检查接口地址有没有填错、邮箱有没有被拦截进垃圾邮件箱,不要随便改动已经能正常运行的校验、弹窗逻辑
内容的提问来源于stack exchange,提问作者yuvi707
相关产品推荐
相关产品推荐

