Sign inGet Started

cURL

只用 curl 发送您的第一封电子邮件:导出 API 密钥,用 POST 发送一条消息,再用 GET 取回它,查看投递进度。这是原始的 HTTP 流程,SDK 所做的一切都以此为基础。

1. 导出您的 API 密钥

在控制台的 Platform tools > API keys 下创建密钥(发送您的第一封电子邮件中有详细步骤),然后导出它:

代码示例
export BIRD_API_KEY="bk_us1_..."

区域前缀决定您使用的 API 主机:bk_us1_ 密钥调用 https://us1.platform.bird.com,bk_eu1_ 密钥调用 https://eu1.platform.bird.com。发送示例使用 us1;如果您的密钥属于其他区域,请更换主机。

2. 发送电子邮件

向 /v1/email/messages 发送 POST 请求,从我们共享的入门域名发送到 delivered@messagebird.dev 沙盒地址。您无需验证域名,也无需真实邮箱。在本快速入门中请选择 cURL 选项卡。

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"

API 返回 202:表示 Bird 已接受该邮件,并将异步投递。*_count 字段跟踪收件人在各投递状态中的进展。在初始响应中,有一个收件人已被接受,尚无收件人完成投递:

代码示例
{
  "id": "em_01ky7ma8y2es1s2akzk53tmjn0",
  "status": "accepted",
  "category": "marketing",
  "from": { "email": "onboarding@messagebird.dev" },
  "to": [{ "email": "delivered@messagebird.dev" }],
  "subject": "Hello from Bird",
  "accepted_count": 1,
  "processed_count": 0,
  "delivered_count": 0,
  "deferred_count": 0,
  "bounced_count": 0,
  "complained_count": 0,
  "rejected_count": 0,
  "open_count": 0,
  "click_count": 0,
  "track_opens": true,
  "track_clicks": true,
  "created_at": "2026-07-23T13:58:20.866Z"
}

直接使用 HTTP 时,没有 SDK 替您生成幂等键。如需防止重复发送,请在首次尝试时提供一个键,并在重试时复用它。示例和重放限制请参阅幂等性。

3. 查看投递进度

通过 em_ ID 用 GET 获取该消息,观察状态从 accepted 经过 processed 变为 delivered。同样选择 cURL 标签页:

const msg = await bird.email.get("em_abc123");
msg.status; // "accepted" | "processed" | "delivered" | "bounced" | …
msg.delivered_count;
msg.bounced_count;
console.log(msg.subject, msg.subject_recipient_id);

由于收件人是 delivered@messagebird.dev 沙盒地址,投递必定成功:消息会经过 Bird 的真实投递流程,但不会进入任何真实邮箱。

后续步骤