title: Mailbox 认证与 Scopes
Mailbox 认证与 Scopes
Mailbox 对外集成统一使用 access token 模型。
Token 类型
mailbox token
特点:
- 绑定单个邮箱
- 可用于
HTTP API - 可用于
MCP - 可用于
SMTP Submission 587
适合:
- 单邮箱读信、发信、回复
- 邮件客户端登录 SMTP
domain token
特点:
- 绑定整个域
- 可用于
HTTP API - 可用于
MCP - 可用于
SMTP Submission 587
适合:
- 多邮箱统一集成
- 域级系统对接
Scopes
公开集成常见 scopes:
MailboxRead:读取邮箱、消息和线程MailboxRead也用于PUT /api/messages/{messageId}/read-state与POST /api/messages/bulk-read-stateMailboxSend:发送新邮件和回复AttachmentWrite:上传出站附件TokenManage:管理当前邮箱自己的后续 mailbox tokenMailboxDelete:软删除消息MailboxDelete用于DELETE /api/messages/{messageId}与POST /api/messages/bulk-deleteDomainManage:管理当前domain token所属域内 mailbox、密码和 mailbox token
第一个 token 怎么来
通过 POST /api/mailboxes 创建邮箱后,响应会直接返回 bootstrap token。
重点字段:
initialAccessTokeninitialAccessTokenIdinitialAccessTokenExpiresAtTs
建议:
- 不要长期直接使用 bootstrap token
- 尽快派生用途更清晰的后续 token
不同接入方式怎么带认证
HTTP API
使用:
Authorization: Bearer <token>
MCP
使用:
Authorization: Bearer <token>
SMTP Submission 587
使用标准 SMTP AUTH:
- 用户名:任一 active sender identity 地址
- 密码:
mailbox token或domain token
限制:
- token 必须具备
MailboxSend mailbox token只能代表自己的 mailboxdomain token只能代表该 domain 下已存在且可解析到的 mailbox 主地址或 active alias
mailbox token 与 domain token 的差异
HTTP API
mailbox token默认只操作绑定邮箱domain token在读信和发信时通常必须显式传mailboxAddressdomain token访问/api/domain/*时需要DomainManage
MCP
mailbox token可省略mailboxAddressdomain token调用list_messages、send_mail、reply_message时通常必须显式传mailboxAddress
SignalR
mailbox token可省略mailboxAddress,省略时默认监听绑定邮箱domain token连接/hubs/mailbox-events时必须显式传mailboxAddress- 单个 SignalR 连接只绑定一个 mailbox
SMTP
mailbox token和domain token都可用于 SMTP- SMTP username 必须能解析到一个 active sender identity
domain token的 SMTP username 还必须属于 token 自己的 domain
Token 自助治理
如果当前 mailbox token 具备 TokenManage,可以使用:
GET /api/mailbox/access-tokensPOST /api/mailbox/access-tokensPOST /api/mailbox/access-tokens/{tokenId}/revealPOST /api/mailbox/access-tokens/{tokenId}/disableDELETE /api/mailbox/access-tokens/{tokenId}
约束:
- 新 token 的 scopes 必须是当前 token scopes 的子集
- 新 token 过期时间不能晚于当前 token
domain token不支持自助TokenManage
密码换 token
公开第三方可以使用:
POST /api/mailbox/auth/login/password
行为:
- 传入
mailboxAddress + password - 成功时返回一个可直接用于 HTTP / MCP / SMTP 的
mailbox token - 如果当前邮箱已经存在符合默认集成 scope 集合的可 reveal token,则直接返回该 token
- 否则自动创建一个新的默认 mailbox token 并返回
默认集成 scope 集合:
MailboxReadMailboxSendAttachmentWriteTokenManageMailboxDelete
Domain Token 域级治理
如果 domain token 具备 DomainManage,可以使用:
GET /api/domain/mailboxesPOST /api/domain/mailboxesPOST /api/domain/mailboxes/{mailboxId}/passwordGET /api/domain/mailboxes/{mailboxId}/access-tokensPOST /api/domain/mailboxes/{mailboxId}/access-tokensPOST /api/domain/mailboxes/{mailboxId}/access-tokens/{tokenId}/revealPOST /api/domain/mailboxes/{mailboxId}/access-tokens/{tokenId}/disableDELETE /api/domain/mailboxes/{mailboxId}/access-tokens/{tokenId}
常见失败
401 Unauthorized
常见原因:
- 没带 token
- token 无效
- token 已过期
- token 已禁用
403 Forbidden
常见原因:
- scope 不足
- 例如缺少
MailboxSend却去发信
SMTP 535 5.7.8 Authentication credentials invalid
常见原因:
- 用户名不是邮箱地址
- 密码不是有效的
mailbox token/domain token - token 不具备
MailboxSend - username 无法解析到 active sender identity
- username 对当前 token 越权
- username 不属于当前
domain token的 domain
下一步
- 想看证书要求:看 TLS 与根证书
- 想看 HTTP API:看 HTTP API 概览
- 想看 SMTP:看 SMTP Submission 概览