邮件 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 能保证最后一步。
- 受理:这是 API 响应。当您向某个端点 POST 一个请求体时,服务商会返回 202 Accepted 或 200 OK。这只表示服务商收到了请求并通过了基本校验,并不表示邮件已经发出。
- 投递:这是 SMTP 握手。服务商尝试将邮件交给收件人的收件服务器。“delivered”事件表示收件服务器表示“我接收这封邮件”。
- 进入收件箱:这是最终目的地。收件服务器(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 封的邮件配额,并毁掉您的发件人信誉。
为智能体实现审批工作流:
- 草稿阶段:智能体生成邮件,并将其存入
pending_emails表。 - 人工介入:由用户或负责监督的智能体审核内容。
- 执行:只有在设置了
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,了解更多面向开发者的邮件基础设施。