MS OAuth2 API

简化邮箱取件操作流程

高效、便捷的 Outlook 邮箱取件方案

📨

智能邮件获取

支持获取收件箱和垃圾箱邮件,适合验证码和通知邮件读取。

🔄

令牌自动刷新

接口返回新 refresh_token 时,邮箱助手会自动更新本地缓存。

GET/POST 兼容

本项目代理优先 POST,遇到 405 自动回退 GET。

🛡️

本地代理

浏览器只请求你自己的域名,降低跨域和接口暴露问题。

获取全部邮件

本项目内置代理地址:

POST /api/mail-all.php
GET  /api/mail-all.php

参数:

  • refresh_token:OAuth2 刷新令牌
  • client_id:客户端 ID
  • email:邮箱地址
  • mailboxINBOXJunk
  • password:可选,接口密码

POST 示例

fetch('/api/mail-all.php', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    refresh_token: '...',
    client_id: '...',
    email: 'user@outlook.com',
    mailbox: 'INBOX'
  })
})

返回格式

{
  "data": [
    {
      "send": "\"OpenAI\" <noreply@tm.openai.com>",
      "subject": "你的 OpenAI 代码为 123456",
      "date": "2026-05-20T01:16:29.000Z",
      "html": "...",
      "text": "..."
    }
  ],
  "new_refresh_token": "..."
}

部署检查

访问下面地址:

/api/mail-all.php

如果看到 JSON 缺参提示,说明 PHP 正常。如果看到 <?php 源码,说明宝塔仍是纯静态,需要切换 PHP 版本。

IMAP 激活

通过 refresh_token 换取 Microsoft access_token,并用 XOAUTH2 连接 Outlook IMAP 做一次 EXAMINE INBOXNOOP

POST /api/activate-imap.php

参数:

  • email:邮箱地址
  • client_id:客户端 ID
  • refresh_token:OAuth2 刷新令牌