Bird vs Resend
Bird vs Resend:事务性邮件对比
Bird 运营邮件发送基础设施,管理 IP 信誉并自研投递工具。如果您希望由运营发送网络的团队处理投递反馈,并在一个 API 中同时使用邮件、SMS 和语音,请选择 Bird。
每天都被构建
世界级软件的团队所信赖。
谁掌控发送栈?
Resend:托管 IP 池
Resend 将专用 IP 作为 Scale 附加选项.发布。其托管专用 IP 池提供自动预热、基于收件方反馈的弹性扩缩以及持续的信誉监控。
Resend 不公开池中的单个 IP。池会根据发送量变化动态增减 IP。
Bird:基础设施与信誉
Bird 自主运营其发送基础设施,并开发 MTA 软件,包括 PowerMTA,Bird 也将其授权用于自建发送。Bird 于 2021 年收购了 SparkPost,其网络承载了全球约 40% 的商业邮件。
Bird 管理其共享发送 IP、专用 IP 和 IP 池,支持自动预热和共享池溢出。Bird 的投递技术按邮箱服务商调整流量,其平台处理投递反馈并根据退信和投诉信号采取措施。这些都是 Bird 在其发送技术栈中运行的控制能力。
Bird 提供 Inbox Insights 用于收件箱到达率估算和种子测试、邮件分析用于查看您自己的发送结果,以及 Competitive Insights 用于观察竞争对手的营销活动。Bird 的邮件团队可以帮助评估您的需求。
Bird 和 Resend 如何对比?
Resend 拥有更长的重试窗口和直接的 React 参数。Bird 将邮件与其他渠道结合。下表对比了两者已公开的发送控制和集成选项。
| 功能 | Bird | Resend | 谁更胜一筹? |
|---|---|---|---|
| 发送 API 与开发者体验 | Bird 的 TypeScript SDK 默认抛出类型化错误;.safe() 返回 data 和 error。 | Resend 的 Node SDK 在发送调用中返回 data 和 error。 | |
| 发送幂等性 | Bird 保留已完成的响应 3 小时;之后的重试视为新请求。 | Resend 保留幂等键 24 小时,适用于单条发送和批量发送。 | |
| 已存储邮件的保留期 | 启用内容存储后,Bird 将已发送邮件正文保留最多 30 天。 | Resend 的公开定价方案包含 30 天数据保留。Enterprise 保留期可灵活调整。 | |
| React Email 模板 | 在您的应用中将 React Email 渲染为 HTML,然后通过 Bird 发送该 HTML。 | 通过 Node SDK 的 react 参数传入 React 组件. | |
| SMTP 中继 | Bird SMTP 支持 465 端口上的隐式 TLS 以及 587 或 2525 端口上的 STARTTLS,使用 API 密钥。 | Resend SMTP 支持隐式 TLS 和 STARTTLS,使用 API 密钥。 | |
| 邮件之外的渠道 | Bird 的 API 包含邮件、SMS、WhatsApp、语音、Verify 和 Realtime。 | Resend 支持邮件发送,、接收和邮件营销活动. | |
| 投递能力积淀 | Bird 于 2021 年收购了 SparkPost。其发送网络承载了全球约 40% 的商业邮件。 | Resend 于 2023 年推出了邮件发送平台,此前其开源邮件项目于 2022 年启动。 | |
| 专用 IP | Bird 提供专用 IP 和 IP 池,支持自动预热和按发送选择 IP 池。 | Resend 提供托管的专用 IP 池,支持自动预热和扩展;其事务性定价将专用 IP 列为 Scale 附加项。 | |
| 公开定价 | Bird 邮件套餐与费率提供下方套餐表中的实时金额。 | Resend 套餐和费率提供下方套餐表中带日期标注的发布金额。 | |
| 签名事件 Webhook | Bird 使用 Standard Webhooks 对事件签名,包含 webhook-id、webhook-timestamp 和 webhook-signature。 | Resend 对 Webhook 请求签名,使用 svix-id、svix-timestamp 和 svix-signature。 | |
| 邮箱 | Bird 的 Agent 邮箱提供可寻址的收件箱、会话线程、回复和通过代码管理的发件人规则。 | Resend 接收邮件,暴露内容和附件,并支持同一线程内回复。 | |
| 智能体工具 | Bird 托管的 MCP 服务器位于 mcp.bird.com,暴露 354 个工具。bird CLI 可发送和查看邮件、管理域名、模板和 Webhook,并为 Agent 提供 JSON 输出和语义退出码。 | Resend 托管的 MCP 服务器涵盖邮件、模板、群发、联系人、日志和 Webhook。其 CLI管理发送、接收及其他 Resend 资源。 |
如何处理发送结果?
以下示例根据 data 和 error 进行分支处理。Bird 显式使用 .safe();其默认客户端会抛出类型化错误。当你的应用将错误作为值处理时,使用 result 风格。
Resend
import { Resend } from "resend";
const resend = new Resend(process.env.RESEND_API_KEY!);
const { data, error } = await resend.emails.send({
from: "onboarding@yourdomain.com",
to: ["customer@example.com"],
subject: "Your March invoice",
html: "<p>Attached.</p>",
});
if (error) console.error(error.message);
else console.log(data.id);
Bird
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.email
.send({
from: { email: "onboarding@yourdomain.com", name: "Acme" },
to: ["customer@example.com"],
subject: "Your March invoice",
html: "<p>Attached.</p>",
})
.safe();
if (error) console.error(error.message);
else console.log(data.id);
发送调用周围有哪些变化?
Agent 能否通过两个服务商接收和回复邮件?
已公布的邮件套餐
Bird 的完整月度阶梯定价如下。标注的是最接近的发送量套餐,并非针对 Bird 发送量的报价。请查看计费条款、功能及超量费用。
定价对比结论: Bird. 该结论比较的是每个精确发送量和币种下最低的已公布月费;仅按日计算的配额、年度承诺、用量费率、起步价和定制报价不在比较范围内。
| Bird 层级 | 每月邮件数 | Bird | Resend |
|---|---|---|---|
| Free | 1,000 | 最接近的已公布发送量 | |
| Startup | 50,000 | 匹配发送量 | |
| Startup | 100,000 | 2 在该发送量下的套餐展开以对比所有选项及其计费条款。 匹配发送量 匹配发送量 | |
| Growth | 100,000 | 2 在该发送量下的套餐展开以对比所有选项及其计费条款。 匹配发送量 匹配发送量 | |
| Growth | 250,000 | 最接近的已公布发送量 | |
| Growth | 500,000 | 匹配发送量 | |
| Growth | 1,000,000 | 匹配发送量 | |
| Growth | 2,500,000 | 匹配发送量 |
Resend: 已公布的套餐
如何比较邮件费用?
Bird 和 Resend 的价格行包含哪些内容?
迁移成本
从 Resend 迁移涉及哪些工作?
移植发送调用,在现有记录旁发布 Bird 的域名认证记录,导入被抑制的地址,并更新 Webhook 验证。域名认证和抑制列表需要单独的迁移步骤。
迁移指南映射了请求字段和事件处理。在切换生产流量之前,先在 Bird 的邮件沙箱中测试集成,如果要迁移到专用 IP,还需规划预热。
Bird 与 Resend:常见问题
迁移到 Bird 时能保留我的 React Email 模板吗?
付诸实践。
继续查阅此主题的文档、指南和示例。资源为英文。