邮件 API · 2026 年 9 月 21 日

同样 50,000 封邮件,为什么成本可能是 $5 也可能是 $66

深入剖析邮件 API 的价格差距。我们分析了为什么同样 50k 的发送量在不同服务商之间价格相差 13 倍,以及如何根据您的工程约束做出选择。

价格差距从何而来

价格差异归根结底取决于商业模式:基础设施还是平台。Amazon SES 出售的是原始的计算和带宽(基础设施),而 Postmark 或 Mailgun 等服务商出售的是托管式体验(平台),包括更好的界面、专业的支持和精心维护的 IP 池。发送 50,000 封邮件,SES 按量计费大约 $5,而 Postmark 的套餐可能高达 $66。您多付的钱,买的是更低的运维负担,以及 API 周边工具的质量。

算一笔账:50,000 封邮件

每当我查看故障工单队列或每月的云账单时,邮件价格的悬殊都是最扎眼的项目之一。要弄清原因,我们需要看看截至 2026 年 9 月的市场价格。

基础设施路线:Amazon SES

Amazon SES 是成本的基准线。根据其价格页面,按量计费的发送价格为每 1,000 封邮件 $0.10。

  • 计算:(50,000 / 1,000) * $0.10 = $5.00。

不过,AWS 于 2026 年 7 月 21 日推出了新的分级套餐。如果改用 Essentials 套餐,价格为每 1,000 封 $0.16。Pro 套餐为每 1,000 封 $0.22,另加每个区域每月 $105 的费用。Enterprise 套餐为每 1,000 封 $0.23,另加每月 $500。对小型产品团队来说,按量计费最便宜,但配置工作完全落在工程师身上。

平台路线:Postmark 和 Mailgun

Postmark 和 Mailgun 等服务商专注于开发者体验。根据 Postmark 价格,其基础套餐为每月 $15,含 10,000 封邮件。超出部分的费用为每 1,000 封 $1.80 到 $1.20 不等。

  • 计算(Postmark):$15(前 10k 封)+ (40,000 / 1,000 * $1.20) = $15 + $48 = $63。(具体取决于套餐档位,可能达到 $66。)

同样,Mailgun 价格起步为每月 $15,含 10,000 封邮件,超出部分每 1,000 封 $1.80 到 $1.10 不等。这些服务商提供托管模板和更直观的分析功能,对于不想自建监控看板的团队来说,这份溢价物有所值。

现代的折中方案:Resend

Resend 瞄准的是现代产品技术栈。其价格页面显示,免费套餐每月 3,000 封邮件(每天上限 100 封)。Pro 套餐为每月 $20,含 50,000 封邮件,超出部分每 1,000 封 $0.90。

  • 计算(Resend):前 50,000 封固定 $20。

受理、投递与进入收件箱:关键区别

我在工程文档中经常看到的一个错误,是把这三个术语混为一谈。它们并不相同,而且没有任何 API 能保证最后一步。

  1. 受理:这是 API 响应。当您向某个端点 POST 一个请求体时,服务商会返回 202 Accepted 或 200 OK。这只表示服务商收到了请求并通过了基本校验,并不表示邮件已经发出。
  2. 投递:这是 SMTP 握手。服务商尝试将邮件交给收件人的收件服务器。“delivered”事件表示收件服务器表示“我接收这封邮件”。
  3. 进入收件箱:这是最终目的地。收件服务器(Gmail、Outlook 等)决定邮件进入收件箱、“推广”标签页还是垃圾邮件文件夹。这取决于收件方的内部过滤规则、您的发件人信誉以及您的身份验证记录。

要提高投递成功率,必须正确配置 DNS。我建议使用 DNS 检查工具确认记录已正确传播。您还应严格遵循 DKIM、SPF 和 DMARC 指南,证明您的身份属实。

面向可靠性的工程设计

发送邮件是一种外部副作用。在分布式系统中,副作用很危险,因为它们可能被重复执行,也可能悄无声息地失败。

幂等问题

如果您的应用服务器在等待邮件 API 响应时超时,您就无法知道邮件是否已经发出。如果直接重试,用户就会收到两封邮件。这就是幂等键必不可少的原因。

幂等键是在请求头中发送的唯一标识符(通常是 UUID)。如果 API 两次看到同一个 key,它会返回第一次成功请求的缓存响应,而不会发送第二封邮件。

{ "idempotency_key": "req_8823_abc_123", "from": "notifications@example.com", "to": "user@gmail.com", "subject": "Your Order has Shipped", "body": "Your package is on the way!" }

处理由智能体驱动的发送

随着 AI 智能体和 MCP 服务器的兴起,我们看到越来越多“智能体对智能体”(A2A)的通信。智能体绝不应拥有对发信 API 的无限制访问权限。一旦 LLM 陷入循环,它可能在几分钟内耗尽您 50,000 封的邮件配额,并毁掉您的发件人信誉。

为智能体实现审批工作流:

  1. 草稿阶段:智能体生成邮件,并将其存入 pending_emails 表。
  2. 人工介入:由用户或负责监督的智能体审核内容。
  3. 执行:只有在设置了 status = 'approved' 标志之后,系统才会调用 API。

迁移技术清单

如果您要从高价服务商迁移到低价服务商(或者反过来),不要只是换一个 API 密钥。请使用以下清单:

  • DNS 审计:检查您的 SPF 记录,确保没有超出 10 次查询上限。
  • Webhook 映射:每个服务商的事件名称都不相同。请将服务商 A 的 delivered 映射到服务商 B 的 sent。
  • 抑制列表同步:导出您的退信和投诉列表。如果您把 50,000 个用户导入新服务商,并向已知的退信地址发信,您的账户会被立即暂停。
  • 速率限制处理:针对 429 Too Many Requests 错误实现指数退避。

错误处理逻辑示例

async function sendWithRetry(payload, attempt = 1) { try { const response = await emailApi.send(payload); return response; } catch (error) { if (error.status === 429 && attempt <= 3) { const delay = Math.pow(2, attempt) * 1000; await new Promise(res => setTimeout(res, delay)); return sendWithRetry(payload, attempt + 1); } throw error; } }

选择合适的工具

如果您是独立开发者,正在构建原型,那么 Resend 的免费套餐或 SES 的按量计费就足够了。如果您是产品团队,管理着复杂且事关重大的事务性邮件流程(例如密码重置或账单提醒),那么平台型服务商带来的运维安全性通常值得多付这 $60。

对于构建 AI 原生应用的团队来说,您需要的不只是一根管道。您还需要为智能体做好准备,例如一个 MCP 服务器,以及一个结构化的 llms.txt 文件,帮助您的智能体理解如何与您的通信层交互。正是在这里,专门的 API 才会成为效率倍增器,而不仅仅是一个成本中心。

归根结底,API 的费用只是整个等式中最小的一部分。真正的成本,是工程师花在排查配置错误的 DNS 记录上的时间,或者是因为缺乏抑制列表管理而引发信誉危机后收拾残局的时间。无论您选择 $5 的路线还是 $66 的路线,都应优先考虑能让邮件持续流转的遥测数据和工具。

访问 https://sendhq.cc,了解更多面向开发者的邮件基础设施。