📖 API 文档

寻游取件 API 完整使用指南

⚠️

必看:OAuth2 API 使用流程

OAuth2 API 使用 refresh_token 进行身份验证,适合需要长期访问的场景。建议按以下流程操作:

1
📊 获取邮件数量
调用 /api/mail-count 获取当前邮箱中的邮件总数
⬇️
2
📤 触发邮件发送
在目标网站执行操作(如注册/找回密码),触发验证码邮件发送
⬇️
3
📧 获取第N封邮件
调用 /api/mail-by-index,设置 index = 邮件数量 获取最新邮件
💡 为什么这样设计?
由于邮件到达存在延迟,直接获取"最新邮件"可能拿到的是旧邮件。通过先获取邮件数量,触发发送后,新邮件会成为第N封(N=邮件数量+1 ),通过 index = 邮件数量 即可准确获取刚刚发送的验证码邮件。
🚀

必看:Graph API 推荐使用流程

Graph API 是微软官方提供的 RESTful API,相比 IMAP 更加稳定高效。推荐按以下流程操作:

1
📊 获取邮件数量
调用 /api/graph/mail-count 获取当前邮箱中的邮件总数
⬇️
2
📤 触发邮件发送
在目标网站执行操作(如注册/找回密码),触发验证码邮件发送
⬇️
3
📧 获取第N封邮件
调用 /api/graph/mail-by-index,设置 index = N 获取最新邮件(N 为邮件总数)
💡 Graph API 与 OAuth2 API
索引方式一致:
• index 从 1 开始,1 表示最旧的邮件,N 表示最新的邮件

推荐使用 Graph API:更稳定、响应更快、支持更多功能
📧

必看:IMAP API 使用流程

IMAP API 使用邮箱地址和密码进行身份验证,适合快速访问邮件。支持自动识别服务器配置。

1
📨 获取邮件
调用 /api/imap/fetch-emails,提供邮箱地址和密码即可获取邮件
⬇️
2
⚙️ 自动配置服务器
系统会自动通过autoconfig协议查询IMAP服务器配置,无需手动输入服务器地址
💡 IMAP API 特点
简单易用:只需邮箱地址和密码,无需复杂的OAuth2流程
自动配置:支持autoconfig协议,自动识别IMAP服务器地址和SSL设置
广泛支持:支持各种邮件服务提供商
📊

获取邮件数量

获取指定邮箱文件夹中的邮件总数

GET POST
/api/oauth2/mail-count
参数名类型必填说明
refresh_tokenstring✅ 是用于身份验证的 refresh_token
client_idstring✅ 是客户端 ID
emailstring✅ 是邮箱地址
mailboxstring❌ 否邮箱文件夹 (INBOX / Junk),默认 INBOX
serverstring❌ 否IMAP 服务器地址,默认 outlook.live.com
import requests # GET 请求示例 - 获取收件箱邮件数量 url = "https://yourdomain.com/api/oauth2/mail-count" params = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX" } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() print(f"邮箱 {data.get('mailbox')} 共有 {data.get('count')} 封邮件") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 - 获取垃圾箱邮件数量 url = "https://yourdomain.com/api/oauth2/mail-count" data = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "Junk" } try: response = requests.post(url, json=data) response.raise_for_status() print(response.json()) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
🔢

获取第N封邮件

获取指定序号的邮件,index=1 表示第一封(最旧的),index=5 表示第5封,以此类推

GET POST
/api/oauth2/mail-by-index
参数名类型必填说明
refresh_tokenstring✅ 是用于身份验证的 refresh_token
client_idstring✅ 是客户端 ID
emailstring✅ 是邮箱地址
mailboxstring❌ 否邮箱文件夹 (INBOX / Junk),默认 INBOX
indexinteger❌ 否邮件序号,从1开始,1表示第一封(最旧的),默认1
index 参数从1开始计数,按邮件到达顺序,1表示第一封(最旧的),数字越大表示邮件越新
import requests # GET 请求示例 - 获取第3封邮件(第3新的) url = "https://yourdomain.com/api/oauth2/mail-by-index" params = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX", "index": 3 } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() mail = data.get('mail', {}) print(f"第 {mail.get('index')} 封邮件") print(f"主题: {mail.get('subject')}") print(f"内容: {mail.get('body')}") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 url = "https://yourdomain.com/api/oauth2/mail-by-index" data = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX", "index": 1 } try: response = requests.post(url, json=data) response.raise_for_status() print(response.json()) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
✉️

获取最新一封邮件

获取邮箱中最新(最后一封)的邮件,返回邮件序号和总数

GET POST
/api/oauth2/mail-latest
参数名类型必填说明
refresh_tokenstring✅ 是用于身份验证的 refresh_token
client_idstring✅ 是客户端 ID
emailstring✅ 是邮箱地址
mailboxstring❌ 否邮箱文件夹 (INBOX / Junk),默认 INBOX
serverstring❌ 否IMAP 服务器地址,默认 outlook.live.com
import requests # GET 请求示例 - 获取最新邮件 url = "https://yourdomain.com/api/oauth2/mail-latest" params = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX" } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() mail = data.get('mail', {}) print(f"第 {mail.get('index')} 封邮件(共 {mail.get('total')} 封)") print(f"主题: {mail.get('subject')}") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 url = "https://yourdomain.com/api/oauth2/mail-latest" data = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX" } try: response = requests.post(url, json=data) response.raise_for_status() data = response.json() mail = data.get('mail', {}) print(f"第 {mail.get('index')} 封邮件(共 {mail.get('total')} 封)") print(f"主题: {mail.get('subject')}") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
📂

获取全部邮件

获取邮箱中的所有邮件,自动提取6位数字验证码

GET POST
/api/oauth2/mail-all
参数名类型必填说明
refresh_tokenstring✅ 是用于身份验证的 refresh_token
client_idstring✅ 是客户端 ID
emailstring✅ 是邮箱地址
mailboxstring✅ 是邮箱文件夹 (INBOX / Junk)
import requests # GET 请求示例 url = "https://yourdomain.com/api/oauth2/mail-all" params = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX" } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() print(f"获取到 {len(data.get('mails', []))} 封邮件") for mail in data.get('mails', []): print(f"主题: {mail.get('subject', 'N/A')}") print(f"验证码: {mail.get('verification_code')}") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 url = "https://yourdomain.com/api/oauth2/mail-all" data = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX" } try: response = requests.post(url, json=data) response.raise_for_status() print(response.json()) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
🗑️

清空邮箱

清空指定邮箱文件夹中的所有邮件,支持清空收件箱或垃圾箱

GET POST
/api/oauth2/clear-mails
参数名类型必填说明
refresh_tokenstring✅ 是用于身份验证的 refresh_token
client_idstring✅ 是客户端 ID
emailstring✅ 是邮箱地址
mailboxstring❌ 否邮箱文件夹 (INBOX / Junk),默认 INBOX
serverstring❌ 否IMAP 服务器地址,默认 outlook.live.com
此操作会永久删除邮件,请谨慎使用!
import requests # GET 请求示例 - 清空收件箱 url = "https://yourdomain.com/api/oauth2/clear-mails" params = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX" } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() print(f"成功清空 {data.get('deleted_count')} 封邮件") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 - 清空垃圾箱 url = "https://yourdomain.com/api/oauth2/clear-mails" data = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "Junk" } try: response = requests.post(url, json=data) response.raise_for_status() print("垃圾箱清空成功!") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
📨

获取邮件(原接口)

获取指定数量的邮件,同时返回 INBOX 和 Junk 的邮件(旧版接口,兼容保留)

POST
/api/oauth2/fetch-emails
参数名类型必填说明
refresh_tokenstring✅ 是用于身份验证的 refresh_token
client_idstring✅ 是客户端 ID
emailstring✅ 是邮箱地址
countinteger❌ 否获取数量,默认 1
serverstring❌ 否IMAP 服务器地址,默认 outlook.live.com
import requests # POST 请求示例 url = "https://yourdomain.com/api/oauth2/fetch-emails" data = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "count": 5 } try: response = requests.post(url, json=data) response.raise_for_status() result = response.json() print(f"收件箱: {len(result.get('inbox', []))} 封") print(f"垃圾箱: {len(result.get('junk', []))} 封") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
🔄

OAuth2 - 刷新 Token

单独刷新 OAuth2 refresh_token,延长 token 有效期至 90 天

GET POST
/api/oauth2/refresh-token
参数名类型必填说明
refresh_tokenstring✅ 是当前的 refresh_token
client_idstring✅ 是客户端 ID
💡 使用建议:建议在获取邮件后调用此接口刷新 token,确保 token 始终有效。刷新成功后 token 有效期延长至 90 天。
import requests # GET 请求示例 - OAuth2 刷新 token url = "https://yourdomain.com/api/oauth2/refresh-token" params = { "client_id": "your_client_id", "refresh_token": "your_refresh_token" } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() if data.get('success'): print(f"✅ Token 刷新成功") print(f"新 Token: {data.get('refresh_token')}") else: print(f"❌ 刷新失败: {data.get('error')}") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 - OAuth2 刷新 token url = "https://yourdomain.com/api/oauth2/refresh-token" data = { "client_id": "your_client_id", "refresh_token": "your_refresh_token" } try: response = requests.post(url, json=data) response.raise_for_status() result = response.json() print(result) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
📧

IMAP API 接口说明

✅ 简单易用
只需邮箱地址和密码即可使用
⚙️ 自动配置
自动识别IMAP服务器地址和SSL设置
🌐 广泛支持
支持各种邮件服务提供商
📌 参数说明: server = IMAP服务器地址(可选,不输入自动识别)
use_ssl = 是否使用SSL(可选,默认true)
other_email = 垃圾箱文件夹名称(可选,默认Junk)
📨

IMAP - 获取邮件

使用邮箱地址和密码获取邮件,支持自动识别服务器配置

POST
/api/imap/fetch-emails
参数名类型必填说明
emailstring✅ 是邮箱地址
passwordstring✅ 是邮箱密码或应用专用密码
countinteger❌ 否获取邮件数量,默认1
serverstring❌ 否IMAP服务器地址,不输入自动识别
use_sslboolean❌ 否是否使用SSL,默认true
other_emailstring❌ 否垃圾箱文件夹名称,默认Junk
💡 自动配置:当不提供server参数时,系统会自动通过autoconfig协议查询IMAP服务器配置,支持各种邮件服务提供商。
import requests # POST 请求示例 - IMAP获取邮件 url = "https://yourdomain.com/api/imap/fetch-emails" data = { "email": "your_email@example.com", "password": "your_password", "count": 5 } try: response = requests.post(url, json=data) response.raise_for_status() result = response.json() if result.get('success'): print(f"✅ 获取成功") for email in result.get('inbox', []): print(f"主题: {email.get('subject')}") else: print(f"❌ 获取失败: {result.get('error')}") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
📊

IMAP - 获取邮件数量

获取指定邮箱文件夹中的邮件总数

GET POST
/api/imap/mail-count
参数名类型必填说明
emailstring✅ 是邮箱地址
passwordstring✅ 是邮箱密码或应用专用密码
mailboxstring❌ 否邮箱文件夹 (INBOX / Junk),默认INBOX
serverstring❌ 否IMAP服务器地址,不输入自动识别
use_sslboolean❌ 否是否使用SSL,默认true
import requests # GET 请求示例 - 获取收件箱邮件数量 url = "https://yourdomain.com/api/imap/mail-count" params = { "email": "your_email@example.com", "password": "your_password" } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() print(f"邮箱共有 {data.get('count')} 封邮件") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 - 获取垃圾箱邮件数量 url = "https://yourdomain.com/api/imap/mail-count" data = { "email": "your_email@example.com", "password": "your_password", "mailbox": "Junk" } try: response = requests.post(url, json=data) response.raise_for_status() print(response.json()) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
🔢

IMAP - 获取第N封邮件

获取指定序号的邮件,index=1 表示第一封(最旧的),index=N 表示第N封,以此类推

GET POST
/api/imap/mail-by-index
参数名类型必填说明
emailstring✅ 是邮箱地址
passwordstring✅ 是邮箱密码或应用专用密码
mailboxstring❌ 否邮箱文件夹 (INBOX / Junk),默认INBOX
indexinteger❌ 否邮件序号,从1开始,1表示第一封(最旧的),默认1
serverstring❌ 否IMAP服务器地址,不输入自动识别
use_sslboolean❌ 否是否使用SSL,默认true
index 参数从1开始计数,按邮件到达顺序,1表示第一封(最旧的),数字越大表示邮件越新
import requests # GET 请求示例 - 获取第3封邮件 url = "https://yourdomain.com/api/imap/mail-by-index" params = { "email": "your_email@example.com", "password": "your_password", "index": 3 } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() mail = data.get('mail', {}) print(f"第 {mail.get('index')} 封邮件") print(f"主题: {mail.get('subject')}") print(f"内容: {mail.get('body')}") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 url = "https://yourdomain.com/api/imap/mail-by-index" data = { "email": "your_email@example.com", "password": "your_password", "index": 1 } try: response = requests.post(url, json=data) response.raise_for_status() print(response.json()) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
✉️

IMAP - 获取最新一封邮件

获取邮箱中最新(最后一封)的邮件,返回邮件序号和总数

GET POST
/api/imap/mail-latest
参数名类型必填说明
emailstring✅ 是邮箱地址
passwordstring✅ 是邮箱密码或应用专用密码
mailboxstring❌ 否邮箱文件夹 (INBOX / Junk),默认INBOX
serverstring❌ 否IMAP服务器地址,不输入自动识别
use_sslboolean❌ 否是否使用SSL,默认true
import requests # GET 请求示例 - 获取最新邮件 url = "https://yourdomain.com/api/imap/mail-latest" params = { "email": "your_email@example.com", "password": "your_password" } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() mail = data.get('mail', {}) print(f"第 {mail.get('index')} 封邮件(共 {mail.get('total')} 封)") print(f"主题: {mail.get('subject')}") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 url = "https://yourdomain.com/api/imap/mail-latest" data = { "email": "your_email@example.com", "password": "your_password", "mailbox": "INBOX" } try: response = requests.post(url, json=data) response.raise_for_status() data = response.json() mail = data.get('mail', {}) print(f"第 {mail.get('index')} 封邮件(共 {mail.get('total')} 封)") print(f"主题: {mail.get('subject')}") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
✉️

IMAP - 获取最新邮件

获取最新一封邮件

GET POST
/api/imap/mail-new
参数名类型必填说明
emailstring✅ 是邮箱地址
passwordstring✅ 是邮箱密码或应用专用密码
mailboxstring❌ 否邮箱文件夹 (INBOX / Junk),默认INBOX
serverstring❌ 否IMAP服务器地址,不输入自动识别
use_sslboolean❌ 否是否使用SSL,默认true
other_emailstring❌ 否垃圾箱文件夹名称,默认Junk
import requests # GET 请求示例 - 获取最新邮件 url = "https://yourdomain.com/api/imap/mail-new" params = { "email": "your_email@example.com", "password": "your_password" } try: response = requests.get(url, params=params) response.raise_for_status() print(response.json()) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 - 获取最新邮件 url = "https://yourdomain.com/api/imap/mail-new" data = { "email": "your_email@example.com", "password": "your_password" } try: response = requests.post(url, json=data) response.raise_for_status() print(response.json()) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
📂

IMAP - 获取全部邮件

获取指定文件夹中的全部邮件(最多100封)

GET POST
/api/imap/mail-all
参数名类型必填说明
emailstring✅ 是邮箱地址
passwordstring✅ 是邮箱密码或应用专用密码
mailboxstring❌ 否邮箱文件夹 (INBOX / Junk),默认INBOX
serverstring❌ 否IMAP服务器地址,不输入自动识别
use_sslboolean❌ 否是否使用SSL,默认true
other_emailstring❌ 否垃圾箱文件夹名称,默认Junk
import requests # GET 请求示例 - 获取全部邮件 url = "https://yourdomain.com/api/imap/mail-all" params = { "email": "your_email@example.com", "password": "your_password", "mailbox": "INBOX" } try: response = requests.get(url, params=params) response.raise_for_status() print(response.json()) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 - 获取全部邮件 url = "https://yourdomain.com/api/imap/mail-all" data = { "email": "your_email@example.com", "password": "your_password", "mailbox": "Junk" } try: response = requests.post(url, json=data) response.raise_for_status() print(response.json()) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
🚀

Graph API 接口说明

✅ 更稳定
微软官方 API,不受客户端限制
⚡ 更快速
RESTful API,响应速度更快
🔄 自动刷新
自动返回新的 refresh_token
📌 mailbox 参数说明: INBOX = 收件箱 | Junk = 垃圾箱
支持大小写:inbox, junk, junkemail 也有效
🔄

Graph API - 刷新 Token

单独刷新 refresh_token,延长 token 有效期至 90 天

GET POST
/api/graph/refresh-token
参数名类型必填说明
refresh_tokenstring✅ 是当前的 refresh_token
client_idstring✅ 是客户端 ID
💡 使用建议:建议在获取邮件后调用此接口刷新 token,确保 token 始终有效。刷新成功后 token 有效期延长至 90 天。
import requests # GET 请求示例 - 刷新 token url = "https://yourdomain.com/api/graph/refresh-token" params = { "client_id": "your_client_id", "refresh_token": "your_refresh_token" } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() if data.get('success'): print(f"✅ Token 刷新成功") print(f"新 Token: {data.get('refresh_token')}") else: print(f"❌ 刷新失败: {data.get('error')}") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 - 刷新 token url = "https://yourdomain.com/api/graph/refresh-token" data = { "client_id": "your_client_id", "refresh_token": "your_refresh_token" } try: response = requests.post(url, json=data) response.raise_for_status() result = response.json() print(result) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
📊

Graph API - 获取邮件数量

使用 Microsoft Graph API 获取指定邮箱文件夹中的邮件总数,响应更快更稳定

GET POST
/api/graph/mail-count
参数名类型必填说明
refresh_tokenstring✅ 是用于身份验证的 refresh_token
client_idstring✅ 是客户端 ID
emailstring✅ 是邮箱地址
mailboxstring❌ 否邮箱文件夹 (INBOX / Junk),默认 INBOX (支持大小写: inbox, junk, junkemail 也有效)
import requests # GET 请求示例 - Graph API 获取收件箱邮件数量 url = "https://yourdomain.com/api/graph/mail-count" params = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX" } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() print(f"邮箱共有 {data.get('count')} 封邮件") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 - Graph API 获取垃圾箱邮件数量 url = "https://yourdomain.com/api/graph/mail-count" data = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "Junk" } try: response = requests.post(url, json=data) response.raise_for_status() print(response.json()) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
🔢

Graph API - 获取第N封邮件

使用 Microsoft Graph API 获取指定序号的邮件,index=1 表示最旧邮件,index=N 表示最新邮件

GET POST
/api/graph/mail-by-index
参数名类型必填说明
refresh_tokenstring✅ 是用于身份验证的 refresh_token
client_idstring✅ 是客户端 ID
emailstring✅ 是邮箱地址
mailboxstring❌ 否邮箱文件夹 (INBOX / Junk),默认 INBOX (支持大小写: inbox, junk, junkemail 也有效)
indexinteger❌ 否邮件序号,从1开始,1表示最旧邮件,N表示最新,默认1
索引说明:index 从1开始,1表示最旧的邮件,N表示最新的邮件。与 OAuth2 API 索引方式一致!
import requests # GET 请求示例 - Graph API 获取第N封邮件 (index=1 最旧, index=N 最新) url = "https://yourdomain.com/api/graph/mail-by-index" params = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX", "index": 8 } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() mail = data.get('mail', {}) print(f"第 {mail.get('index')} 封邮件(共 {mail.get('total')} 封)") print(f"主题: {mail.get('subject')}") print(f"内容: {mail.get('body')}") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 - 获取最新邮件 (index = 邮件总数) url = "https://yourdomain.com/api/graph/mail-by-index" data = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX", "index": 8 } try: response = requests.post(url, json=data) response.raise_for_status() print(response.json()) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
✉️

Graph API - 获取最新一封邮件

使用 Microsoft Graph API 获取邮箱中最新的一封邮件,返回邮件序号和总数

GET POST
/api/graph/mail-latest
参数名类型必填说明
refresh_tokenstring✅ 是用于身份验证的 refresh_token
client_idstring✅ 是客户端 ID
emailstring✅ 是邮箱地址
mailboxstring❌ 否邮箱文件夹 (INBOX / Junk),默认 INBOX (支持大小写: inbox, junk, junkemail 也有效)
import requests # GET 请求示例 - Graph API 获取最新邮件 url = "https://yourdomain.com/api/graph/mail-latest" params = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX" } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() mail = data.get('mail', {}) print(f"第 {mail.get('index')} 封邮件(共 {mail.get('total')} 封)") print(f"主题: {mail.get('subject')}") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 url = "https://yourdomain.com/api/graph/mail-latest" data = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX" } try: response = requests.post(url, json=data) response.raise_for_status() print(response.json()) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
📂

Graph API - 获取全部邮件

使用 Microsoft Graph API 获取邮箱中的全部邮件,自动提取6位数字验证码

GET POST
/api/graph/mail-all
参数名类型必填说明
refresh_tokenstring✅ 是用于身份验证的 refresh_token
client_idstring✅ 是客户端 ID
emailstring✅ 是邮箱地址
mailboxstring❌ 否邮箱文件夹 (INBOX / Junk),默认 INBOX (支持大小写: inbox, junk, junkemail 也有效)
topinteger❌ 否获取数量,默认 100,最大 1000
import requests # GET 请求示例 - Graph API 获取全部邮件 url = "https://yourdomain.com/api/graph/mail-all" params = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "INBOX", "top": 50 } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() print(f"共获取 {data.get('count')} 封邮件") for mail in data.get('mails', []): print(f"验证码: {mail.get('verification_code')}") except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
import requests # POST 请求示例 url = "https://yourdomain.com/api/graph/mail-all" data = { "email": "your_email@example.com", "client_id": "your_client_id", "refresh_token": "your_refresh_token", "mailbox": "Junk", "top": 20 } try: response = requests.post(url, json=data) response.raise_for_status() print(response.json()) except requests.exceptions.RequestException as e: print(f"请求错误: {e}")
🌐

邮件查看 OAuth2

提供基于 OAuth2 认证的邮件查看 Web 界面,支持查看收件箱和垃圾箱邮件

GET
/api/boobar
参数名类型必填说明
emailstring✅ 是邮箱地址
client_idstring✅ 是客户端 ID
refresh_tokenstring✅ 是用于身份验证的 refresh_token
# GET 请求示例 url = "https://yourdomain.com/api/boobar" params = { "email": "SamanthaKing5282@outlook.com", "client_id": "9e5f94bc-e8a4-4e73-b8be-63364c29d753", "refresh_token": "M.C548_BL2.0.U.-CjrsA36zw2IzpE*Gv99vmzI0IRre8wvH2BGa215f9*55Kp1e962drR7c251emdvyHRqE8sSkLqmot4XObkN2VvhK*EfzqBV!ECttJOuTkE3GDOu5xXr0lnEJXJtxDTAeX*KxYMVv*BYGesQWhFp2VJAuIChc0v*YGuyksOYKXtHUiOsHdS2ymFQbHBCiNQMtUG7o52j8wSys2UR9Tjpiur8VICle5Jb3m!Qu!adVLdVAJESVcOP*1LITbFCNoJppo9yZ2YZGX!9sZUWxIch8TATUzKY!j4OtH0wCFm8FCxtVGTjRxsDCV4N0iZ!If4v7yueBBMDvW0yz!0JT0SthMMCS8VytDaP24WGqMYQ0Bf!5V8*Ib5pUJobDC6cfiTBTrBFqTwbL31Oul7w0nmkXEWfuwMh2Y4cEmzpRMSEfc1hUDUou1Zup06wrNM8THaUl5g$" } # 直接在浏览器中打开或使用 HTTP 客户端发送请求 # 例如:https://yourdomain.com/api/boobar?email=SamanthaKing5282@outlook.com&client_id=9e5f94bc-e8a4-4e73-b8be-63364c29d753&refresh_token=M.C548_BL2.0.U.-CjrsA36zw2IzpE*Gv99vmzI0IRre8wvH2BGa215f9*55Kp1e962drR7c251emdvyHRqE8sSkLqmot4XObkN2VvhK*EfzqBV!ECttJOuTkE3GDOu5xXr0lnEJXJtxDTAeX*KxYMVv*BYGesQWhFp2VJAuIChc0v*YGuyksOYKXtHUiOsHdS2ymFQbHBCiNQMtUG7o52j8wSys2UR9Tjpiur8VICle5Jb3m!Qu!adVLdVAJESVcOP*1LITbFCNoJppo9yZ2YZGX!9sZUWxIch8TATUzKY!j4OtH0wCFm8FCxtVGTjRxsDCV4N0iZ!If4v7yueBBMDvW0yz!0JT0SthMMCS8VytDaP24WGqMYQ0Bf!5V8*Ib5pUJobDC6cfiTBTrBFqTwbL31Oul7w0nmkXEWfuwMh2Y4cEmzpRMSEfc1hUDUou1Zup06wrNM8THaUl5g$ # 注意:请根据实际部署的网站域名替换 yourdomain.com

响应格式

{"inbox": [{"content": "邮件内容", "date": "邮件日期", "from": "发件人", "fullContent": "完整邮件内容", "subject": "邮件主题"}], "junk": []}
此接口返回一个 Web 页面,页面会自动加载邮件数据并显示。页面使用 OAuth2 认证获取邮件。
💡 为什么开发此接口?
用户友好:提供可视化的邮件查看界面,无需编写代码即可查看邮件
实时更新:页面会自动加载和显示最新的邮件
多邮箱支持:通过参数指定不同的邮箱地址
安全认证:使用 OAuth2 认证,确保邮件访问的安全性
便捷操作:直接在浏览器中打开即可查看邮件,无需安装额外软件
🌐

邮件查看 Graph

提供基于 Graph API 的邮件查看 Web 界面,支持查看收件箱和垃圾箱邮件

GET
/api/boobar-graph
参数名类型必填说明
emailstring✅ 是邮箱地址
client_idstring✅ 是客户端 ID
refresh_tokenstring✅ 是用于身份验证的 refresh_token
# GET 请求示例 url = "https://yourdomain.com/api/boobar-graph" params = { "email": "SamanthaKing5282@outlook.com", "client_id": "9e5f94bc-e8a4-4e73-b8be-63364c29d753", "refresh_token": "M.C548_BL2.0.U.-CjrsA36zw2IzpE*Gv99vmzI0IRre8wvH2BGa215f9*55Kp1e962drR7c251emdvyHRqE8sSkLqmot4XObkN2VvhK*EfzqBV!ECttJOuTkE3GDOu5xXr0lnEJXJtxDTAeX*KxYMVv*BYGesQWhFp2VJAuIChc0v*YGuyksOYKXtHUiOsHdS2ymFQbHBCiNQMtUG7o52j8wSys2UR9Tjpiur8VICle5Jb3m!Qu!adVLdVAJESVcOP*1LITbFCNoJppo9yZ2YZGX!9sZUWxIch8TATUzKY!j4OtH0wCFm8FCxtVGTjRxsDCV4N0iZ!If4v7yueBBMDvW0yz!0JT0SthMMCS8VytDaP24WGqMYQ0Bf!5V8*Ib5pUJobDC6cfiTBTrBFqTwbL31Oul7w0nmkXEWfuwMh2Y4cEmzpRMSEfc1hUDUou1Zup06wrNM8THaUl5g$" } # 直接在浏览器中打开或使用 HTTP 客户端发送请求 # 例如:https://yourdomain.com/api/boobar-graph?email=SamanthaKing5282@outlook.com&client_id=9e5f94bc-e8a4-4e73-b8be-63364c29d753&refresh_token=M.C548_BL2.0.U.-CjrsA36zw2IzpE*Gv99vmzI0IRre8wvH2BGa215f9*55Kp1e962drR7c251emdvyHRqE8sSkLqmot4XObkN2VvhK*EfzqBV!ECttJOuTkE3GDOu5xXr0lnEJXJtxDTAeX*KxYMVv*BYGesQWhFp2VJAuIChc0v*YGuyksOYKXtHUiOsHdS2ymFQbHBCiNQMtUG7o52j8wSys2UR9Tjpiur8VICle5Jb3m!Qu!adVLdVAJESVcOP*1LITbFCNoJppo9yZ2YZGX!9sZUWxIch8TATUzKY!j4OtH0wCFm8FCxtVGTjRxsDCV4N0iZ!If4v7yueBBMDvW0yz!0JT0SthMMCS8VytDaP24WGqMYQ0Bf!5V8*Ib5pUJobDC6cfiTBTrBFqTwbL31Oul7w0nmkXEWfuwMh2Y4cEmzpRMSEfc1hUDUou1Zup06wrNM8THaUl5g$ # 注意:请根据实际部署的网站域名替换 yourdomain.com

响应格式

{"inbox": [{"content": "邮件内容", "date": "邮件日期", "from": "发件人", "fullContent": "完整邮件内容", "subject": "邮件主题"}], "junk": []}
此接口返回一个 Web 页面,页面会自动加载邮件数据并显示。页面使用 Microsoft Graph API 获取邮件,相比 OAuth2 模式更加稳定高效。
💡 为什么开发此接口?
官方支持:使用微软官方的 Graph API,更加稳定可靠
性能优势:Graph API 相比传统 IMAP 协议响应更快
功能丰富:支持更多高级邮件操作和数据获取功能
用户友好:提供可视化的邮件查看界面,无需编写代码
实时更新:页面会自动加载和显示最新的邮件
多邮箱支持:通过参数指定不同的邮箱地址