邮件基础设施指南
入站邮件 Webhook:设计模式与安全
使用 Webhook 处理入站邮件,无需搭建轮询邮箱的工作流。
入站邮件 Webhook 会在邮件到达时向您的应用推送一个结构化事件。设计上的难点在于安全解析、身份验证、幂等性,以及在不丢失邮件的前提下处理重试。
实际意味着什么
- 带签名或经过身份验证的 Webhook 推送
- 使用消息 ID 实现幂等处理
- 保留原始邮件以便恢复
- 异步处理附件和下游任务
实施检查清单
- 在解析内容之前,先验证 Webhook 的来源。
- 在产生任何副作用之前,先持久化服务商的消息 ID。
- 将耗时较长的附件处理或 AI 处理放入队列。
- 尽快返回成功响应,并在暂时性失败时安全地重试。
团队常问的问题
应该在 Webhook 请求中处理附件吗?
通常不应该。先持久化邮件,再把附件处理任务放入队列,这样确认响应能保持快速,并且可以安全重试。
如何处理重复的 Webhook?
将服务商的消息 ID 视为唯一标识,并让下游操作保持幂等。