前言:这个项目是之前给kiro注册机写的,因为没有找到真正满意的Outlook邮箱管理项目
OK,正文开始
GongXi Mail (廾匸邮箱) - Microsoft OAuth2 邮箱 API 服务
一站式 Outlook 邮箱池管理解决方案,专为自动化场景打造
wjn6/GongXi-Mail: 一站式 Outlook 邮箱池管理解决方案,专为自动化场景打造
项目简介
GongXi Mail 是一个基于 Microsoft OAuth2 的邮箱收取 API 服务。它可以帮助你集中管理多个 Outlook/Hotmail 邮箱账户,并通过 RESTful API 对外提供邮件读取能力。
典型应用场景:
-
自动获取验证码/激活链接 -
批量邮箱监控 -
与自动化脚本/机器人集成
核心特性
智能邮箱池
-
自动分配未使用邮箱给 API Key
-
每个 API Key 独立管理邮箱资源
-
一键重置分配记录
双通道邮件读取
-
优先使用 Microsoft Graph API
-
自动回退到 IMAP (XOAUTH2)
-
支持 inbox 和 junk 文件夹
安全设计
-
AES-256-GCM 加密存储敏感凭证
-
API Key 哈希存储,仅创建时显示一次
-
JWT 认证管理后台
技术栈
| 组件 | 技术 |
|:—:|:—|
| 后端 | Fastify 5 + TypeScript + Prisma 6 |
| 数据库 | PostgreSQL 16 |
| 缓存 | Redis 7 |
| 前端 | React 19 + Ant Design 6 + Vite |
| 部署 | Docker + Docker Compose |
快速开始
Docker 一键部署 (推荐)
# 克隆项目
git clone https://github.com/wjn6/GongXi-Mail.git
cd gongxi-mail
# 启动服务
docker-compose up -d --build
服务启动后访问: http://localhost:3000
默认管理员账号:
-
用户名:
admin -
密码:
admin123
API 接口一览
所有接口需要 API Key 认证,支持以下方式:
-
Header:
X-API-Key: sk_xxx -
Bearer:
Authorization: Bearer sk_xxx -
Query:
?api_key=sk_xxx
主要接口
| 接口 | 方法 | 说明 |
|:—|:—:|:—|
| /api/get-email | GET | 获取一个未使用的邮箱 |
| /api/mail_new | GET/POST | 获取最新邮件 (JSON) |
| /api/mail_text | GET/POST | 获取邮件文本,支持正则提取 |
| /api/mail_all | GET/POST | 获取所有邮件 |
| /api/process-mailbox | POST | 清空邮箱 |
| /api/pool-stats | GET | 查看邮箱池统计 |
| /api/reset-pool | POST | 重置邮箱分配 |
示例:获取验证码
# 1. 获取邮箱
curl -H "X-API-Key: sk_xxx" "http://localhost:3000/api/get-email"
# 2. 等待邮件到达后,提取验证码
curl -H "X-API-Key: sk_xxx" \
"http://localhost:3000/api/[email protected]®ex=\d{6}"
管理后台功能
-
数据概览: 实时统计邮箱状态、API 调用趋势 -
邮箱管理: 添加/编辑/删除邮箱,批量导入导出 -
API Key 管理: 创建/禁用 Key,分配邮箱池 -
操作日志: 查看所有 API 调用记录 -
管理员管理: 多管理员支持 (超管专属)
邮箱数据导入格式
批量导入邮箱时,支持以下格式 (默认分隔符 ----):
# 格式1: 基础格式 (3列)
email----clientId----refreshToken
# 格式2: 带密码 (4列)
email----password----clientId----refreshToken
# 格式3: 扩展格式 (5列,兼容某些导出工具)
email----clientId----uuid----info----refreshToken
注意: 代理需要在管理后台单独为每个邮箱配置,不支持在导入时指定。(并未完美实现)
环境变量
| 变量 | 说明 | 默认值 |
|:—|:—|:—|
| PORT | 服务端口 | 3000 |
| DATABASE_URL | PostgreSQL 连接 | - |
| REDIS_URL | Redis 连接 (可选) | - |
| JWT_SECRET | JWT 密钥 (≥32字符) | - |
| ENCRYPTION_KEY | 加密密钥 (32字符) | - |
| ADMIN_USERNAME | 初始管理员用户名 | admin |
| ADMIN_PASSWORD | 初始管理员密码 | admin123 |
反馈与支持
如有问题或建议,欢迎:
-
在本帖下方回复
-
提交 GitHub Issue
-
联系作者
未来计划
我也不知道还有什么要写
目前就一个每3月真自动刷新令牌
其他的看佬友们提要求
如果这个项目对你有帮助,请给个 Star!






