邮件基础设施指南

使用 Python 调用邮件 API

在 Flask、Django、FastAPI 或 worker 中安全发送事务性邮件的后端实现模式。

Python 服务应从受信任的服务端代码发送邮件,校验输入,记录响应 ID,并在投递不应阻塞请求时使用任务队列。

实际意味着什么

  • 由环境统一管理的凭据
  • 经过校验的邮件请求体
  • 通过异步或队列任务处理重试
  • 包含消息 ID 的结构化日志

实施检查清单

  1. 从密钥管理服务或环境变量加载 API 密钥。
  2. 在发起请求前校验邮件字段。
  3. 设置超时,并对可重试的失败进行分类。
  4. 持久化保存返回的服务商消息 ID。
  5. 随着发送量增长,将非紧急邮件移到队列 worker 中处理。

团队常问的问题

在 Python 中应该使用 SMTP 还是 HTTP 邮件 API?

两者都可行,但 HTTP API 通常提供更清晰的身份验证、JSON 请求体和结构化的投递响应。

重试应该如何进行?

对传输失败或速率限制失败使用退避重试;不要自动重复可能导致重复发送的失败请求。