事务性邮件和营销邮件共享同一基础设施,与您的 SMS、语音和 WhatsApp 消息并行运转。全球约 40% 的商业邮件经由 Bird 网络传输。我们已深耕此领域十年。2025 年黑色星期五周末,我们处理了 199 亿封电子邮件。
import { BirdClient } from "@messagebird/sdk";
import { render } from "@react-email/render";
import { WelcomeEmail } from "./emails/welcome";
const bird = new BirdClient({
apiKey: process.env.BIRD_API_KEY!,
});
const { data, error } = await bird.email.send({
from: "Bird <hello@bird.com>",
to: ["ada@example.com"],
subject: "Your invite is ready",
html: await render(<WelcomeEmail name="Ada" />),
}).safe();
if (error) throw error;
console.log(data.id);
// → "em_2bX91Yk8h..."
You can sign in any time at bird.com/login.
Your test API key is on your dashboard, ready to send.
从npm install到首次发送仅需 5 分钟
用您已在使用的编程语言发送邮件。
覆盖各主流运行时的 SDK。首次发送可以发往指定的测试地址(delivered@messagebird.dev),因此在验证域名之前,你就能基于实时 API 进行开发(发送、webhook,完整流程)。
const msg = await bird.email.send({
from: { email: "onboarding@messagebird.dev", name: "Bird" },
to: ["delivered@messagebird.dev"],
subject: "Hello from Bird",
html: "<p>My first Bird email.</p>",
});
console.log(msg.id, msg.status); // "em_…", "accepted"邮件的十大环节
不再需要您操心。
投递能力与运维基础组件,
具名且可审计。
- 01
边缘节点签名。
需要发布三条记录:DKIM、一条 return-path CNAME 和一条 DMARC 策略。CNAME 同时覆盖了 SPF,因此无需在域名根记录上做任何配置。
- 02
发送之前,先做一次审查。
将审查工具指向任意域名,它会解析实时的 DMARC、SPF、DKIM、BIMI 和 MX 记录,评估它们的协同工作情况,并按优先级列出需要修复的问题。无需注册账户。
- 03
托管式专用 IP。
按账户预配,约 30 天内自动预热,并整理到你可掌控的 IP 池中。
- 04
动态屏蔽列表。
退回、投诉和退订将自动且可逆地抑制对应收件人。
- 05
无需轮询来验证域名。
添加域名、发布记录,Bird 会自动重新检查直至解析成功——通常在 DNS 传播后几分钟内完成。如果您需要立即获得结果,也可以调用 verify 接口。
- 06
使用存储的模板,或您自己的 HTML。
指定一个存储的模板,Bird 会使用 Liquid 进行渲染;或者在您的应用中将 React Email 渲染为 HTML,然后传入结果。
- 07
可搜索的邮件日志。
你发送的每一条消息都会记录其投递事件和状态。可按 ID 查询任意邮件。
- 08
送达率指标,逐项拆解。
退信码、投诉类型,以及邮箱服务商和客户端的细分数据,按域名、ISP 和 IP 拆分,在控制台中和通过 stats API 都可查看。
- 09
入站解析。
使用 Bird 生成的转发地址,或在您拥有的子域名上发布 MX 记录。无论哪种方式,邮件都会以签名的 webhook 形式到达,您可以进行线程化处理。
- 10
批量发送最多 100 封。
每次调用最多 100 封独立邮件,各自拥有专属收件人和变量。一个幂等键覆盖整批。
探索 Email 平台
每一项能力都深入到位。一套 API,一组密钥。
送达率。
身份验证、IP 预热、抑制和黑名单监控。
数据分析。
送达和互动指标,按域名、ISP 和 IP 划分。
发送。
事务性和营销邮件、模板及批量发送。
模板。
存储的、带版本控制的邮件模板,在发送时为每位收件人进行个性化处理。
专用 IP。
托管式专用 IP 及 IP 池,自动预热。
发送域名。
域名验证、DKIM/SPF/DMARC 签名,以及 DMARC 监控。
屏蔽管理。
对退信、投诉和退订进行自动、可撤销的抑制。
群发消息。
营销活动:起草、定位受众、排期并发送。
受众。
你的联系人,以及你在广播中定位的受众。
客服邮箱。
一个由您的代码掌控的真实收件箱。申领一个邮箱地址,将邮件接收到会话线程中,并通过 API 进行回复。
我们为何打造邮件服务
因为您的验证码不应该和送达回执分属不同供应商。
邮件不是一个独立的产品;它只是流程中的一个渠道。验证码以邮件起始,并回退到短信。回执在客户偏好时通过 WhatsApp 发送。Bird Email 的 API、webhook 和幂等契约与其他每个渠道都一致,因为同一支工程团队在同一个网络上构建了它们。
import { BirdClient } from "@messagebird/sdk";
import { render } from "@react-email/render";
import { WelcomeEmail } from "./emails/welcome";
const bird = new BirdClient({
apiKey: process.env.BIRD_API_KEY!,
});
const { data, error } = await bird.email.send({
from: "Bird <hello@bird.com>",
to: ["ada@example.com"],
subject: "Your invite is ready",
html: await render(<WelcomeEmail name="Ada" />),
}).safe();
if (error) throw error;
console.log(data.id);
// → "em_2bX91Yk8h..."
You can sign in any time at bird.com/login.
Your test API key is on your dashboard, ready to send.
每次状态变更都是一个 Webhook。
HMAC 签名的负载,防重放,幂等。每个 Bird 渠道上都是同一份签名信封,因此你为邮件写的处理器已经能解析你的 SMS 和 WhatsApp 事件。
{
"type": "email.delivered",
"timestamp": "2026-05-19T15:42:01.221Z",
"data": {
"email_id": "em_01krdgeqcxet5s7t44vh8rt9mg",
"recipient_id": "er_01krdgeqcxet5s7t44vh8rt9mg",
"workspace_id": "ws_01krdgeqcxet5s7t44vh8rt9mg",
"recipient": "ada@example.com",
"recipient_role": "to",
"tags": [{ "name": "campaign", "value": "spring-2026" }],
"metadata": { "order_id": "ord_5512" },
"broadcast_id": null
}
}
在大约 27.5 小时内进行八次尝试,退避间隔分别为 5 秒、5 分钟、30 分钟、2 小时、5 小时、10 小时、10 小时,并附加 20% 的随机抖动以避免重试同步。每次尝试都复用相同的 webhook-id,这正是您的去重校验能够生效的关键。最后一次尝试失败后,投递将被标记为永久失败,您可以通过 replay 调用进行恢复。
email.accepted发送请求已被接受,正在准备投递。email.processed已排队,等待投递至收件人的邮件服务器。email.delivered收件人的邮件服务器已接受该消息。email.opened收件人打开了邮件。可能触发多次。email.clicked收件人点击了一个跟踪链接。email.bounced永久失败:退信类型和 SMTP 代码包含在 payload 中。email.complained收件人将该邮件举报为垃圾邮件。email.unsubscribed收件人通过跟踪的退订链接选择退出。email.list_unsubscribed收件人使用邮件客户端的一键退订功能。
如果您已集成了电子邮件,那么 SMS 也已集成。
相同的鉴权模型,相同的幂等契约,相同的错误信封,相同的 webhook 结构。区别在于每个渠道做什么,而不在于你怎么调用它。
已验证域名,边缘签名,自动处理退订。支持渲染 React 或直接传入原始 HTML。
await bird.email.send({
from: "hello@bird.com",
to: ["ada@example.com"],
subject: "Your code",
html: `<p>Code: ${code}</p>`,
});
SMS
相同的信封、相同的幂等性、相同的错误类型注册表。唯一的区别只是传输方式。
await bird.sms.send({
from: "Bird",
to: "+14155550172",
text: `Your code is ${code}.`,
category: "authentication",
});
定价
按每 1,000 封邮件计价
免费起步:每月 1,000 封邮件,无需绑卡。付费方案中,Growth 单条消息费率随用量增长持续递减,最高可达 250 万封,定价页面公布了每一阶梯的具体价格。无平台费、无席位费、无功能锁定年度合约。
Send your first request before you write any code.
The whole public API is a Postman collection, converted from the same OpenAPI specification the SDKs are generated from, with an example request and response on every endpoint. Fork it into your own workspace, set an API key, and send a live request.
Put it into practice.
Continue with the documentation, guides and examples for this topic. Resources are in English.