邮件 API · 2026 年 9 月 21 日

SendGrid 免费套餐已取消:30 分钟迁移指南

SendGrid 的免费套餐现已变为 60 天试用。本文是一份面向工程师的技术指南,帮助您将事务性邮件无停机地迁移到可持续的替代方案。

永久免费套餐的终结

如果您曾依赖 SendGrid 免费套餐来运行一个低发送量的副业项目或新产品,您可能已经注意到了这一变化:免费套餐现在变成了 60 天试用。试用到期后,您必须升级到付费套餐,其中 Essentials 起价为每月 19.95 USD(SendGrid 价格)。迁移时,您需要导出抑制列表、更新 DNS 记录并替换 API 集成。如果您的模板比较简单,整个过程大约需要 30 分钟。

评估替代方案

选择替代方案时,必须区分服务商受理(API 接受您的请求)、投递(收件服务器接受邮件)和进入收件箱(邮件没有进入垃圾邮件文件夹)。没有任何服务商能保证最后一项,因为它取决于您的发件人信誉和邮件内容。

成本概况(2026 年 9 月)

对于低发送量的事务性邮件,价格差距相当明显。发送 50,000 封邮件,在 Amazon SES 按量计费下大约需要 5 USD,而在 Postmark 的套餐下大约需要 66 USD。

  • Amazon SES:按量计费为每 1,000 封邮件 0.10 USD(AWS SES 价格)。2026 年 7 月 21 日推出的新分级套餐包括 Essentials(每 1,000 封 0.16 USD)、Pro(每 1,000 封 0.22 USD,另加每个区域每月 105 USD)和 Enterprise(每 1,000 封 0.23 USD,另加每月 500 USD)。
  • Resend:提供每月 3,000 封邮件的免费套餐,每天上限 100 封。Pro 套餐为每月 20 USD,含 50,000 封邮件,超出部分每 1,000 封 0.90 USD(Resend 价格)。
  • Mailgun:起价为每月 15 USD,含 10,000 封邮件,超出部分每 1,000 封 1.80 到 1.10 USD 不等(Mailgun 价格)。
  • Postmark:起价为每月 15 USD,含 10,000 封邮件,超出部分每 1,000 封 1.80 到 1.20 USD 不等(Postmark 价格)。
  • SendHQ:为产品团队和 AI 智能体提供现代化的替代方案,重点在于仅限欧盟、隐私最小化的遥测,以及工作区范围的 API 密钥。

第 1 步:数据导出与抑制列表

迁移列表时一定要导出抑制列表。如果您向之前退信或已退订的地址发信,就可能在新服务商那里损害您的信誉。

SendGrid 支持通过界面或 API 导出抑制列表。您会得到一个 CSV 文件,其中列出了不应再联系的邮件地址。将其导入新服务商时,请确保正确映射“reason”(退信还是退订),以持续符合 GDPR 或 CAN-SPAM 等法规的要求。

第 2 步:DNS 与身份验证

大多数迁移都失败在这一步。您不能只是换一个 API 密钥,而必须向新服务商证明您拥有该域名。

DKIM、SPF 和 DMARC

您需要在 DNS 服务商处添加新的 CNAME 或 TXT 记录。如果您要迁移到 SendHQ,可以在做出更改之前使用邮件 DNS 检查工具验证当前配置。

  1. SPF:更新您的 SPF 记录,将新服务商包含进去。如果您同时使用多个服务商,请记住不能有多条 SPF TXT 记录,必须将它们合并为一条(例如 v=spf1 include:sendgrid.net include:_spf.sendhq.cc ~all)。如需深入了解,请参阅 SPF 术语表词条。
  2. DKIM:在新服务商的控制台中生成新的 DKIM 密钥,并将生成的 CNAME 记录添加到您的 DNS 中。这样可以确保收件服务器能够验证邮件在传输过程中未被篡改。
  3. DMARC:DMARC 策略是域名级别的策略,因此无论使用哪家服务商都保持不变。不过,请确保新服务商与您的 DMARC 策略对齐,以免邮件被拒收。实现细节请参阅 DKIM、SPF 和 DMARC 指南。

第 3 步:代码迁移

大多数服务商使用 REST API。如果您使用了 SendGrid 的动态模板,则需要将这些 HTML/CSS 布局迁移到新服务商的模板引擎中。

示例:从 SendGrid 迁移到通用 REST API

SendGrid 对 personalizations 使用一种特定的 JSON 结构。包括 SendHQ 在内的大多数现代 API 更倾向于使用更扁平的结构,以提高可读性。

SendGrid 请求体:

{ "personalizations": [ { "to": [{"email": "user@example.com"}], "dynamic_template_data": { "first_name": "Alice" } } ], "from": {"email": "noreply@yourdomain.com"}, "template_id": "d-12345" }

现代 API 请求体(例如 SendHQ):

{ "to": "user@example.com", "from": "noreply@yourdomain.com", "template_id": "welcome-email", "variables": { "first_name": "Alice" } }

在代码中处理迁移

为避免停机,请实现一个封装层或策略模式,这样就可以通过环境变量在不同服务商之间切换。

interface EmailProvider { send(payload: EmailPayload): Promise<void>; } class SendGridProvider implements EmailProvider { async send(payload: EmailPayload) { // SendGrid specific implementation } } class SendHQProvider implements EmailProvider { async send(payload: EmailPayload) { // SendHQ specific implementation } } const provider = process.env.EMAIL_PROVIDER === 'sendhq' ? new SendHQProvider() : new SendGridProvider();

第 4 步:AI 智能体与幂等

如果您使用 AI 智能体来触发邮件,就会面临一个特定的风险:智能体可能因为超时而陷入循环或多次重试同一个请求,导致用户收到十封相同的邮件。

发送邮件是一种外部副作用,您必须实现幂等。幂等键是在请求头中发送的唯一标识符,它告诉 API:“如果您已经见过这个 key,就不要再发送这封邮件,只需返回最初的成功响应即可。”

面向智能体的实现:

{ "headers": { "Idempotency-Key": "order_123_welcome_email" }, "body": { "to": "customer@example.com", "template_id": "order-confirmation" } }

此外,对于高风险的智能体操作(例如发送密码重置或账单提醒),请加入人工审批环节,或按用户 ID 设置严格的速率限制,防止智能体幻觉导致向客户滥发邮件。

第 5 步:测试与验证

在将环境变量切换到新服务商之前,请逐项检查以下清单:

  • DNS 传播:使用 dig 或基于网页的检查工具,确认新的 DKIM 和 SPF 记录已经生效。
  • Webhook 验证:如果您依赖投递事件(delivered、opened、clicked),请更新您的 Webhook 端点。SendGrid 的事件格式与其他服务商不同,请确保您的端点能够处理新的 JSON schema 而不会崩溃。
  • 错误处理:测试您的应用如何处理各服务商特有的错误。例如,429(Too Many Requests)应触发退避策略,而 400(Bad Request)通常表示邮件地址格式错误,应在您的数据库中将其标记为退信。

需要测试的常见错误场景

  1. 邮件地址格式无效:确保 API 返回清晰的错误,并且您的代码不会无限重试。
  2. 速率限制:模拟一次邮件突发,看看您的队列能否应对服务商的限制。
  3. 大附件:确认新服务商允许的最大请求体大小。有的限制为 10MB,有的为 25MB。

迁移清单汇总

  • 导出抑制记录:从 SendGrid 导出 CSV。
  • 设置 DNS 记录:SPF、DKIM 和 DMARC 对齐。
  • 迁移模板:将 HTML/CSS 转换为新格式。
  • 更新 API 逻辑:实现服务商封装层。
  • 添加幂等性:AI 智能体触发器必不可少。
  • 测试 Webhook:验证事件投递和解析。
  • 切换流量:更新 ENV 变量并监控日志。

关于送达率的最后思考

更换服务商是审视发信习惯的好时机。请记住,服务商受理只是第一道关卡。投递取决于收件方 ISP(Gmail、Outlook 等)是否接受连接。进入收件箱是最后一道关卡,取决于您域名的长期信誉以及收件人的互动率。

不要试图用这些 API 发送未经请求的群发邮件。这不仅往往是违法的,而且无论您选择哪家服务商,都会导致账户被暂停。请坚持发送事务性的、经收件人同意的邮件,以保持健康的发件人评分。

对于构建 AI 原生应用的团队,请选择提供智能体就绪功能的服务商,例如 MCP 服务器和 llms.txt 文件,让集成更加顺畅。SendHQ 正是为这类工作流而设计的,为现代产品团队提供所需的基础设施。

访问 https://sendhq.cc,进一步了解如何构建可靠的邮件系统。