跳转到内容
simail文档v0

入门

认证

agent 用 API key、作用域和权限;人用邮箱验证码、passkey 和再次验证。

docs.simail.ai/zh/authentication

simail 有两类主体,它们从不共用凭据:

  • agent 用 API key 调用 api.simail.ai(REST、MCP、WebSocket)。
  • 人使用控制台 app.simail.ai,用邮箱验证码或 passkey 登录。

有些操作只留给人,通过 API 调用会返回 403 human_required:建 API key、建或改 webhook、放宽允许/拦截名单、放行被扣留的信、审批发信。

Authorization: Bearer sk_<prefix>_<secret>
  • key 只在人创建时显示一次。simail 只保存带密钥的哈希。
  • 缺失、格式错误、过期或已吊销的 key 返回 401 unauthorized。
  • 把 key 放在环境变量或密钥管理器里。永远不要把 key 贴进提示词、邮件或共享文件。simail 命令行只从 SIMAIL_API_KEY 读取 key。
  • GET /v0/auth/me 告诉你正在用哪把 key、它的作用域、权限,以及是否已 claimed(见身份与组织)。
  • GET /v0/api-keys 列出你的 key 以及由它派生的 key。一把 key 可以给自己改名、删权限、提前过期(PATCH),或吊销自己(DELETE),但永远不能增加权限。见 API key。

每把 key 绑定且只绑定一个作用域:

作用域能看到
org组织内的所有邮箱(平台运维邮箱除外)
pod一个 pod(一组邮箱)里的邮箱
inbox一个邮箱

组织级接口(如 GET /v0/threads)会收窄到你作用域内的邮箱。作用域之外的一切,包括其他组织,都返回 404 not_found,所以 key 无法探知某个对象是否存在。对象在作用域内但 key 缺少相应权限时,返回 403 missing_permission。

权限允许
inbox_read列出和读取邮箱与 pod
inbox_create建邮箱(组织级和 pod 级 key)
inbox_update修改邮箱设置
inbox_delete删除邮箱(地址退役,永不重新分配)
message_read读线程、消息、草稿、附件、发送状态
message_raw_read读原始 .eml 和 html 字段(默认不授予 agent key)
message_send发信、回复、回复全部、转发、发送草稿、取消定时发送
message_update加或删标签
message_delete把消息和线程移入回收站
draft_write建、改、删草稿
label_spam_read列表中包含 spam
label_blocked_read列表中包含 blocked
label_trash_read列表中包含 trash
hold_metadata_read在列表中看到被扣留邮件的元数据
list_read读允许/拦截名单
list_tighten加拦截条目或删允许条目(永远不能放宽)
webhook_read读 webhook 配置和投递记录
event_readGET /v0/events、邮箱事件和 WebSocket 推送
usage_read用量、配额和指标
approval_read读审批状态(仅元数据)

控制台给 agent key 的默认预设是 inbox_read、message_read、draft_write、message_send、message_update、list_read、list_tighten、event_read、usage_read、approval_read。不包含原文读取、删除,以及 spam/blocked/trash 标签。

key 只能收紧。 派生 key 的作用域、权限和有效期永远在父 key 之内。没有任何权限能让 key 放行被扣留的信、批准发信、建 key、建 webhook 或放宽名单。

POST /v0/agent/sign-up 返回的 key 在人认领这个 agent 之前是受限的:只能调用 GET /v0/auth/me 和 GET /v0/beta,其余请求一律返回 403 claim_required。认领时会轮换 key。见内测门与等候名单。

  • 邮箱验证码。 输入邮箱、通过人机验证,再输入我们发出的 6 位验证码。验证码 10 分钟内有效,可尝试 3 次。失败次数过多会把该邮箱的验证码登录锁定一小时;任何响应都不会透露某个邮箱是否已注册。
  • passkey。 首次登录后,可以添加 passkey 并直接用它登录。添加或删除 passkey 都必须先完成一次新的邮箱验证码,并且我们会发邮件通知你,邮件里有”不是我本人”的链接,可一键吊销该 passkey 和全部会话。
  • 再次验证(step-up)。 敏感操作(key、webhook、放宽名单、策略、审批、放行扣留邮件、导出、删除组织、认领 agent、生成 agent 定向码、连接 Telegram 或 Slack、MCP OAuth 授权)要求 5 分钟内完成过一次 passkey 断言或新的邮箱验证码。添加不满 24 小时的 passkey 不能用于再次验证。
  • 会话有效期 7 天,使用 __Host- cookie(HttpOnly、Secure、SameSite=Strict),退出即失效。

MCP 使用同样的 API key(Authorization: Bearer …)。支持 MCP OAuth 的客户端也可以不带 key 连接:由你在控制台批准这次连接,选好邮箱和权限(只能比你自己的更窄),simail 为该客户端生成一把限定作用域的 key。在控制台吊销这把 key,客户端就断开了。见 MCP。