验证邮件老进垃圾箱?2026免费邮件发送API实测:送达率、配额与SPF/DKIM避坑全攻略
2026年实测Resend、SendGrid、Brevo、Mailgun、Amazon SES等5大免费邮件发送API的免费额度与真实送达率,附SPF/DKIM/DMARC配置、域名预热和防垃圾箱完整避坑指南。
李承宇
多年后端开发经验,专注邮件服务与身份认证体系(SPF/DKIM/DMARC)落地,长期实测国内外免费邮件发送API的真实送达表现。
凌晨两点,产品上线第 3 天,用户批量反馈“收不到验证码”。打开日志,发送接口明明返回 200,手机里却死活等不来那封注册确认邮件——它们全被 163、QQ 或 Gmail 丢进了垃圾箱,甚至被静默拒收。这大概是每个后端开发者都会撞上的“最后一公里”:接口没挂,可用户就是收不到信。
这一篇不是概念科普,是我和团队跨 3 个月实测、反复踩坑后整理的实战避坑记录。核心解决三件事:用哪个免费邮件发送 API(含真实免费配额)、怎么把送达率真正拉起来(SPF/DKIM/DMARC 各自在做什么)、新域名/新 IP 该怎么预热。文末附可照抄的行动清单。文中免费额度与送达率数据,均来自各服务方 2026 年公开说明和可核验的行业报告。

先算一笔账:为什么别自己架 SMTP 发信
很多人一开始图省事,直接用云主机的 sendmail 或 25 端口裸连发信。成本确实低,但代价很高:主流云厂商默认会封掉 25 端口防盗刷;就算放开,家庭宽带或新购 VPS 的 IP 多在共享段,信誉极差,大概率直接被接收方反垃圾规则拦下。商业邮件服务真正的价值不在“会不会发”,而在它用专有、高信誉的发送 IP 池,加上实时回退与送达日志,帮你把“发出去”变成“送进收件箱”。这也正是为什么要直接选一个免费邮件发送 API 或免费 SMTP 服务,而不是自建。
2026 年五大免费邮件发送 API 实测对比
我以“注册验证码 + 交易通知”这类典型开发者场景为准,逐个核实了 2026 年各家的免费层配额与硬性限制。注意:免费层规则会随时调整,以下以各平台公开页面为基准,接入前请再核对一次。
| 服务 | 2026 免费层 | 有效期 | 典型硬限制 |
|---|---|---|---|
| Resend | 3,000 封/月(100 封/天) | 长期 | 1 个域名、1 个 Webhook 端点 |
| SendGrid (Twilio) | 100 封/天 | 60 天试用到期 | 免费层联系人数上限、到期后转入付费 |
| Brevo(原 Sendinblue) | 300 封/天 | 长期 | 每封邮件底部带 Brevo 营销签名 |
| Mailgun | 100 封/天 | 长期 | 免费层日志保留 1 天,调试不便 |
| Amazon SES | 3,000 封/月(约 0.10 美元/千封起) | 新账号前 12 个月 | 需 AWS 体系,沙箱模式需申请解除 |
我的结论:个人或小团队首选 Resend——免费额度最大且长期有效,API 简洁、默认开启送达日志,对新域名很友好;介意邮件底部带营销签名可以用 Mailgun;有出海场景且量大,再考虑 Amazon SES 的按量计费;SendGrid 的免费层在 60 天后会进入试用限制,只适合短期验证。
送达率真相:SPF 93%、DKIM 90%,可收件箱率只有 65%?
选对服务只是第一步。2026 年业内统计中 SPF 部署率已达 93%、DKIM 部署率 90%,但全球邮件真实收件箱率仍徘徊在 65% 左右,DMARC 覆盖反而回落到约 50%。原因在于:接收方不再看单点配置,而是对整封邮件做“身份 + 内容 + 历史信誉”的综合打分。
举个我踩过的真实例子:某项目的验证码配了 SPF、也开了 DKIM,却漏了 DMARC 的 align 对齐,结果在 Gmail 端偶尔进垃圾箱。后来我把 SPF/DKIM/DMARC 三者对齐到同一域名、并删掉一个历史遗留的“裸发信”子域名后,垃圾箱率几乎归零。具体怎么配,下面给可直接复制的 DNS 记录。
SPF:告诉接收方“谁能用我的域名发信”
在 DNS 添加一条 TXT 记录(RFC 7208),声明哪些服务器被授权发信。以 Resend 为例,类似这样:
v=spf1 include:_spf.resend.com ~all
关键是结尾用 ~all(软失败)而不是 -all:免费层一旦漏加某条 include,-all 会让整个域名发信都被判失败;建议先用 ~all 观察一段时间再收紧。
DKIM:为每封邮件签名加密
DKIM 通过公私钥给邮件内容签名,接收方能验签确认“内容没被篡改、确实来自被授权服务器”。在 DNS 添加服务商提供的 TXT 记录(形如 resend._domainkey)。签名验证失败率是多数服务被拒信的第二大原因,配完一定要用在线工具查是否返回 PASS。
DMARC:把前两者串起来
DMARC 告诉接收方“SPF/DKIM 都不通过时该怎么办”。一条基础记录(RFC 7489):
v=DMARC1; p=none; rua=mailto:dmarc@example.com
建议先 p=none 观察 1~2 周报告,再逐步升到 p=quarantine、p=reject,配合 rua 收 XML 报告,能直观看到哪些第三方在“借用”你的域名。想系统排查接口鉴权与密钥治理,可参考站内这篇 API 安全防护完全指南。
实战:Resend 从零接入验证码邮件
以最常见的“邮箱 + 6 位验证码”为例。先拿到 RESEND_API_KEY,再写一个发送函数:
import { Resend } from "resend";
const resend = new Resend(process.env.RESEND_API_KEY);
export async function sendVerifyCode(to, code) {
const { error } = await resend.emails.send({
from: "no-reply@yourapp.com", // 必须是已验证域名下的地址
to,
subject: "[YourApp] 您的验证码:" + code,
html:
'<div style="font-family:Arial">' +
'<p>您本次操作的验证码是:<b style="font-size:22px;color:#2563eb">' + code + "</b></p>" +
"<p>如非本人操作请忽略,有效期 10 分钟。</p></div>"
});
if (error) throw new Error("发信失败:" + error.message);
return true;
}
三点建议:收件人为空立即失败重试;生产环境把 from 固定为一个已验证的“发件品牌名”,不要随机拼接;把发送封装成独立服务,配合重试与降级,这正是 API 错误处理最佳实践 里强调的容错写法。全链路加监控埋点,可看 免费 API 测试与监控实战指南。
域名预热:新域名别急着全量发
最容易被忽视的坑。即使 SPF/DKIM/DMARC 全部配好,新域名初始信誉也是“白纸”。如果你第一天就往 3 万收件人发信,接收方大概率直接把域名归入“可疑”。正确做法:前 1~2 周让发信量缓慢爬坡(比如每天 50 → 200 → 1000),只发给已订阅用户,绝不买名单;多数服务商免费层也有预热工具。等送达率稳定后再放开,基本不会触发限速或降级。
如果你的应用还要处理接口鉴权、密钥防泄露,把“最小权限 + 白名单 + 审计”的思路迁移过去,能省下大量擦屁股的时间,详见 免费 API Key 泄露防护指南。涉及高并发与限流,可再参考 免费 API 限流破解指南。
收件箱送达率的其他 5 个隐蔽因素
- 邮件内所有外链尽量用 HTTPS,第三方监控脚本是垃圾邮件判分的重灾区;
- 正文别堆“免费领取”“立即点击”这类高频营销触发词,配合异常时段发送会更易降权;
- 交易邮件也要提供退订与一键举报入口,缺失会直接拉低发件方信誉;
- 定期清理硬弹回,邮箱地址不存在导致的连续硬退会累积发件方红牌;
- 上线前用在线 spam 测试工具跑一遍模板,再决定是否调整标题行和 Preheader。
免费还是付费?何时升级
长期有效或额度够用的免费层,足以支撑到“日活数万、验证与通知类邮件单日几百到上千封”的阶段。触发以下任一情况就该升级:免费层配额见顶、需要多域名同时发信、邮件底部不允许第三方签名、或者你需要回退日志与多 IP 池来保障送达。多数服务的付费层按量计价(如 SES 约 0.10 美元/千封),规模上来后成本依然可控。
总结:一套可照抄的行动清单
把本文踩过的坑浓缩成 6 步,直接排期执行即可:
- 选 Resend(或 Brevo/Mailgun)注册并完成域名绑定验证;
- 添加 SPF(~all)与 DKIM 的 TXT 记录,用在线工具确认返回 PASS;
- 添加 DMARC p=none 记录,并配置 rua 报告邮箱;
- 删除所有“裸发信”的历史子域名,让发信身份归属单一主域名;
- 新域名按 1~2 周缓慢预热,只发给已订阅用户;
- 加上送达日志与告警,对照常见问题持续调优。
验证邮件进垃圾箱不是玄学,它就是“正确选型 + 完整认证 + 持续养名”三件事的组合。先按清单跑通最小闭环,再逐项优化,送达率曲线自然会向上走。如果你对用免费 API 搭建微 SaaS 感兴趣,邮件系统正是最值得认真打磨的一环:用免费 API 搭建微 SaaS。