Skip to content

About

msOauth2api

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

29 Commits

Folders and files

Repository files navigation

MS OAuth2API

Microsoft OAuth2 邮件 API 与本地邮箱工作台。当前版本:0.6.6。

账号数据仅保存在浏览器的 localStorage 中,不会写入仓库或服务端数据库。

一键部署到 Vercel

Deploy with Vercel

部署完成后访问站点根地址,会直接进入邮箱工作台(/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 代理接口使用的模型名称。

API

所有邮件类接口都支持 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,保持原有完整列表响应。

刷新 Refresh Token

  • 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

AI 流式代理(可选)

  • POST /api/ai
  • 必填:messages
  • 需要同时配置 AI_API_KEY、AI_API_URL 和 AI_MODEL
  • 返回 OpenAI 兼容的 SSE 流;该接口独立存在,邮箱工作台不使用 AI 功能。

安全建议

  • 不要把 Refresh Token、邮箱密码或环境变量提交到 GitHub。
  • 正式使用时优先通过 HTTPS 和 POST 请求调用 API。
  • 如果服务公开在互联网上,请按实际使用方式配置访问保护与 Vercel 防护规则。

项目地址

a06342637/msOauth2api

About

msOauth2api

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages