Microsoft OAuth2 邮件 API 与本地邮箱工作台。当前版本:0.6.6。
账号数据仅保存在浏览器的 localStorage 中,不会写入仓库或服务端数据库。
部署完成后访问站点根地址,会直接进入邮箱工作台(/mail.html)。
Vercel 域名在部分网络环境下可能无法直接访问,可以绑定自己的域名。
导入格式为每行一个账号:
邮箱----密码或Key----Client ID----Refresh Token----备注(可选)
- 默认分隔符为
----,导入时可以自定义。分隔符不能出现在邮箱、密码、Client ID、Refresh Token 中,否则字段会被切错;备注是最后一个字段,内部可以包含分隔符。 - 支持粘贴文本、选择文件或选择文件夹。
- 同一邮箱地址不会重复导入。
- 导入验证失败后可一键复制失败账号,修改后可直接重新导入。
- 支持搜索、分页、编辑(包括备注)、单个/批量删除和复制导出。
- 备注为可选字段,最长 2000 字符,仅保存在本地;只修改备注时不会重新请求 Microsoft 验证凭证。
- 编辑弹窗中 Client ID 与 Refresh Token 并排显示为同款文本框,备注独占一行,三者都可以拖动右下角自由调整大小。
- 账号、密码、Client ID、Refresh Token 和备注均支持点击复制;长内容只显示前后片段。备注显示多少由当前备注列宽决定,宽屏能看到更多内容,手机保持紧凑;汉字按两个字符宽计算,中英文备注的视觉长度一致。
- 复制导出的格式与导入一致,有备注时在行尾追加
----备注(备注为空则不追加),导出的文本可以直接重新导入。 - 点击收件箱会合并加载收件箱和垃圾箱,垃圾箱邮件会显示“垃圾箱”标记。
- 支持刷新当前邮箱以及查看邮件详情。邮件列表和邮件详情里的发件人、收件人都可以点击复制;在列表里点地址只复制,不会顺带打开这封邮件。
- 邮件列表先加载轻量摘要,正文按需加载并在当前邮箱中缓存,减少等待和重复请求。
- 同时兼容 Microsoft Graph 与 Outlook IMAP OAuth;Token 没有 Graph 权限时会自动回退到 IMAP。
- 支持明亮/暗色主题。
| 变量名 | 必填 | 说明 |
|---|---|---|
PASSWORD |
否 | 保护取件、清空邮箱、刷新 Token 和 AI API。配置后,直接调用这些 API 时必须传入 password。邮箱工作台不提供密码输入,因此使用工作台时请不要配置此变量。 |
SEND_PASSWORD |
否 | 保护 /api/send-mail;配置后必须传入 send_password。 |
AI_API_KEY |
否 | 独立 AI 代理接口使用的 API Key。 |
AI_API_URL |
否 | OpenAI 兼容接口地址,例如 https://api.example.com。 |
AI_MODEL |
否 | AI 代理接口使用的模型名称。 |
所有邮件类接口都支持 GET 和 POST;推荐使用 POST JSON,避免 Token 出现在 URL 和访问日志中。
GET/POST /api/mail-new- 必填:
refresh_token、client_id、email、mailbox mailbox:INBOX或Junk- 可选:
response_type(json或html,默认json)、password - JSON 响应会尝试从邮件中提取 6 位验证码。
GET/POST /api/mail-all- 必填:
refresh_token、client_id、email、mailbox - 可选:
password、summary(true/1时只返回列表摘要,不下载正文)、include_junk(与INBOX一起使用,true/1时在一次请求中同时读取收件箱和垃圾箱) - 普通请求返回邮件数组;
include_junk=true时返回{ mailboxes, errors },每个文件夹最多返回最新 100 封邮件。
GET/POST /api/mail-detail- 必填:
refresh_token、client_id、email、mailbox、provider、id provider与id来自/api/mail-all?summary=true返回的同名字段。- 可选:
password - 邮箱工作台使用此接口按需加载正文;普通 API 调用仍可不传
summary,保持原有完整列表响应。
GET/POST /api/refresh-token- 必填:
refresh_token、client_id - 可选:
password
GET/POST /api/process-inbox:清空收件箱GET/POST /api/process-junk:清空垃圾箱- 必填:
refresh_token、client_id、email - 可选:
password
GET/POST /api/send-mail- 必填:
refresh_token、client_id、email、to、subject text与html至少填写一个- 可选:
send_password
POST /api/ai- 必填:
messages - 需要同时配置
AI_API_KEY、AI_API_URL和AI_MODEL - 返回 OpenAI 兼容的 SSE 流;该接口独立存在,邮箱工作台不使用 AI 功能。
- 不要把 Refresh Token、邮箱密码或环境变量提交到 GitHub。
- 正式使用时优先通过 HTTPS 和 POST 请求调用 API。
- 如果服务公开在互联网上,请按实际使用方式配置访问保护与 Vercel 防护规则。