一个联系表单只要依赖单次服务器调用,这次调用一失败,访客写下的消息就没了。他们上线的兜底方案,是把消息交给访客自己的邮件应用。
改了什么
- 2026-11-13:服务器发不出去时,询盘表单会带着消息打开访客的邮件应用。
- 2026-11-14:表单改为通过站点自己的邮箱发送,直达收件箱,接口只需要它的密钥。
具体怎么做
通过站点自己的邮箱发送。询盘表单提交到一个接口,这个接口只需要密钥,邮件直达收件箱,因此没有第三方表单服务需要配置、付费,也不用担心它哪天停服。
把所有发送失败一视同仁。网络错误、响应异常、密钥缺失,表单都不该弹出报错然后停住。它要打开访客的邮件应用,主题和已输入的消息都预先填好,这样消息仍然能到你手上。
兜底内容要从表单的实时字段里取。mailto 链接必须携带请求失败那一刻访客实际输入的内容。如果表单在兜底执行前就重置了,访客面对的只是一个空白邮件窗口,也没有理由再重新打一遍。
两条路径放在同一个处理函数里。一个函数负责提交、捕获任何失败、再落到 mailto。两套独立的代码路径会逐渐走样,其中一条还会慢慢没人测试。
故意去测失败路径。把密钥删掉,或者在本地把接口屏蔽掉,然后提交表单。如果你的邮件应用没有带着消息打开,这个兜底就不算做完。
可以直接复制的提示词
我的站点有一个联系表单,提交到无服务器接口,用单个密钥从站点自己的邮箱发信。加一个兜底:请求因任何原因失败(网络错误、非 2xx 响应、密钥缺失或错误),就打开访客的邮件应用,用一个 mailto 链接携带主题和访客输入的完整消息,内容在失败那一刻从表单实时字段读取。兜底执行前不要清空表单。提交和兜底放在同一个处理函数里。然后告诉我怎么在本地触发失败,让我亲眼看到邮件应用带着我写的文字打开。
作者 Omer Bin Saleem(奥马尔·本·萨利姆)是一名前端团队负责人,每天用 AI 做开发。本文在其工作笔记基础上借助 AI 协助写成。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.