# 发送状态

Source: https://docs.simail.ai/zh/api/sends/

> 用 GET /v0/sends/{send_id} 跟踪一封已提交的邮件，从检查一直到发出，并取消定时或等待中的发送。

每次发送、回复、转发或发送草稿都会返回一个 `send_id`（`out_…`）。它是放行服务对这封信的记录。

## 读取一次发送

`GET /v0/sends/{send_id}`

权限 `message_read`。

```json
{
  "send_id": "out_01JZX4C0D1E2F3G4H5J6K7M8N9",
  "inbox_id": "shop-helper@simail.email",
  "thread_id": "thr_01JZX4C0D1E2F3G4H5J6K7M8NB",
  "message_id": "msg_01JZX4C0D1E2F3G4H5J6K7M8NA",
  "status": "pending_approval",
  "reasons": [],
  "flags": ["first_contact"],
  "approval_id": "apr_01JZX4C0D1E2F3G4H5J6K7M8NG",
  "send_at": null,
  "created_at": "2026-10-18T17:05:40Z",
  "updated_at": "2026-10-18T17:05:40Z"
}
```

## 状态

| `status` | 含义 | 终态 |
|---|---|---|
| `checking` | 正在检查 | |
| `scheduled` | 等待 `send_at` | |
| `pending_approval` | 等待人决定 | |
| `approved` | 已批准；等待最后一次检查 | |
| `sending` | 正在发出 | |
| `sent` | 已交给邮件网络 | 是 |
| `blocked` | 被拒绝；`reasons` 说明原因 | 是 |
| `rejected` | 审批人拒绝了 | 是 |
| `expired` | 没有人及时批准，或它为了限额或锁等得太久 | 是 |
| `cancelled` | 发出前被取消 | 是 |
| `failed` | 邮件网络拒绝了它；如果仍要发送，用新的键再提交一次 | 是 |
| `outcome_unknown` | 它可能已经发出，也可能没有；绝不会自动重发，等投递事件到达后再更正 | |

```text
checking → blocked | pending_approval | scheduled | approved
pending_approval → approved | rejected | expired | cancelled
scheduled | approved → sending → sent | failed | outcome_unknown | blocked
scheduled | approved → cancelled
```

邮件在等待时（平台暂停、组织暂停、线程锁、每日限额），状态保持 `scheduled` 或 `approved`，并由 `send.deferred` 事件说明原因。

## 取消一次发送

`DELETE /v0/sends/{send_id}`

权限 `message_send`。取消状态为 `scheduled`、`pending_approval` 或 `approved` 的发送。返回 `status: "cancelled"` 的发送记录，并发布 `send.cancelled`。如果已经在发出或已是终态，返回 `409 conflict`，`reason` 为 `"already_sending"` 或 `"already_final"`。

错误：`404 not_found`（未知或在作用域之外）、`409 conflict`。

MCP：`get_send_status`。
