邮件发送这件事为什么变难了
做过产品的开发者都知道:发邮件从来不是"调一个 SMTP 接口"那么简单。收件箱对垃圾邮件的过滤越来越严,SPF、DKIM、DMARC 三条认证缺一不可,IP reputation 一旦脏了,再好的内容也进不了收件箱。传统方案如自建 Postfix 或买企业邮箱,要么维护成本高,要么 API 古老、文档难读、调试困难。
Resend 想解决的就是这个问题。它把自己定位成 "Email API for developers",核心卖点不是便宜,而是让开发者用几分钟就能把邮件可靠地发出去。
Resend 是什么
Resend 是一个面向开发者的邮件发送平台,支持事务性邮件(Transactional)和营销邮件(Marketing/Broadcasts)。它的团队同时也是 React Email 的维护者,所以两者在模板渲染上天然契合。对于已经在用 React 技术栈的团队来说,写邮件模板终于不用回到 2005 年的 HTML table 时代。
| 项目 | 说明 |
|---|---|
| 产品定位 | 开发者邮件 API |
| 支持发送类型 | 事务性邮件、营销广播、定时邮件、批量发送 |
| 接入方式 | REST API、SMTP Relay、官方 SDK、CLI |
| 认证支持 | SPF、DKIM、DMARC、自定义域名 |
| 免费额度 | 3,000 封 / 月,单日上限 100 封 |
这张表说明 Resend 的免费版并不是"只能测试"的玩具:每月 3000 封、支持自定义域名和入站邮件,对早期产品、个人博客或小型 SaaS 已经足够跑起来。
核心功能
REST API 与多语言 SDK
Resend 的 API 设计非常干净。以 Node.js 为例,安装 resend 包后,只需要一个 API key 就能发送邮件。官方提供了 Node.js、Python、Go、Ruby、PHP、Java、.NET、Elixir、Rust 等 SDK,基本覆盖主流技术栈。
React Email 原生集成
如果你用 React Email 写模板,可以直接把组件传给 Resend 的 react 字段,服务端渲染后发送。模板版本控制、组件复用、类型安全这些前端优势,第一次被带到了邮件场景里。
入站邮件与 Webhook
Resend 不只是发邮件,也支持接收邮件并解析成 JSON 推送到你的 Webhook。免费版提供 1 个 Webhook endpoint,付费版可以配置多个。对于需要做"邮件触发工作流"的场景,这比传统邮件路由方案省事很多。
发送分析与可投递性
后台能看到每封邮件的状态:已发送、已送达、打开、点击、退信、投诉。配合自动退信列表和共享 IP 池管理,能在不购买独立 IP 的情况下维持不错的到达率。
定价方案
Resend 的定价结构简单,免费版没有有效期,按月重置额度。
| 方案 | 月费 | 邮件额度 | 额外邮件 | 自定义域名 | 每日上限 |
|---|---|---|---|---|---|
| Free | $0 | 3,000 封 / 月 | 不可超额 | 1 个 | 100 封 |
| Pro | $20 | 50,000 封 / 月 | $0.90 / 1,000 封 | 10 个 | 无限制 |
| Scale | $90 | 100,000 封 / 月 | $0.90 / 1,000 封 | 1,000 个 | 无限制 |
| Enterprise | 定制 | 定制 | 定制 | 灵活 | 无限制 |
从性价比看,Free tier 适合验证阶段;Pro 在 5 万封这个量级与竞品基本持平;超过 10 万封之后,Scale 方案由于域名数量和自动化运行额度更高,会更适合多租户 SaaS。
5 分钟接入示例
接入 Resend 只需要三步:注册账号、验证域名、拿到 API key。下面给出一个最小可运行的 Node.js 示例。
npm install resend
import { Resend } from 'resend';
const resend = new Resend(process.env.RESEND_API_KEY);
const { data, error } = await resend.emails.send({
from: 'noreply@yourdomain.com',
to: ['user@example.com'],
subject: '欢迎使用 Resend',
html: '<p>这是一封来自 Resend 的测试邮件。</p>',
});
if (error) {
console.error(error);
} else {
console.log(data?.id);
}
生产环境建议把 from 地址换成已验证域名的邮箱,并把 API key 放到环境变量里。如果你已经在用 Docker 部署服务,把 key 注入容器即可。
竞品对比
市面上的邮件服务很多,但定位差异明显。下面把 Resend 和几个常见选项放在一起看。
| 服务 | 免费额度 | 入门付费 | 超额单价 | 适合场景 |
|---|---|---|---|---|
| Resend | 3,000 封 / 月 | $20 / 5 万封 | $0.90 / 1,000 封 | 开发者、React 技术栈、中小 SaaS |
| SendGrid | 100 封 / 天(试用 60 天) | $19.95 / 月起 | 按套餐浮动 | 大企业、营销自动化 |
| Postmark | 100 封 / 月 | $15 / 1 万封 | $1.80 / 1,000 封 | 高到达率、事务性邮件 |
| AWS SES | 3,000 封 / 月(首 12 个月) | $0.10 / 1,000 封 | $0.10 / 1,000 封 | 大规模、成本敏感、愿意自己运维 |
这张表的结论很清晰:如果只看单价,AWS SES 几乎无敌;如果看开发者体验和免费额度,Resend 更友好;如果公司已经有成熟的营销邮件体系,SendGrid 的生态可能更完整。
写在最后
Resend 的价值不在于它是最便宜的邮件服务,而在于它把"发邮件"这件脏活重新做成了开发者愿意用的产品。每月 3000 封的免费额度、原生 React Email 支持、清晰的 REST API,让它成为个人项目和小团队启动阶段的最优解之一。当月发送量稳定超过 5 万封时,再横向对比 AWS SES 或 Postmark 的成本也不迟。
对于已经在关注服务器和部署效率的团队,Resend 可以和 1Panel 这类面板工具形成互补:面板管机器,Resend 管邮件,两者都不需要在基础设施上花太多时间。