[开源] GongXi Mail - 基于 Graph API/IMAP 的Outlook 邮箱池管理接收服务系统,轻松对接自动化脚本

前言:这个项目是之前给kiro注册机写的,因为没有找到真正满意的Outlook邮箱管理项目

OK,正文开始

:tada: GongXi Mail (廾匸邮箱) - Microsoft OAuth2 邮箱 API 服务

一站式 Outlook 邮箱池管理解决方案,专为自动化场景打造


wjn6/GongXi-Mail: 一站式 Outlook 邮箱池管理解决方案,专为自动化场景打造


:open_book: 项目简介

GongXi Mail 是一个基于 Microsoft OAuth2 的邮箱收取 API 服务。它可以帮助你集中管理多个 Outlook/Hotmail 邮箱账户,并通过 RESTful API 对外提供邮件读取能力。

典型应用场景:

  • :locked_with_key: 自动获取验证码/激活链接

  • :e_mail: 批量邮箱监控

  • :robot: 与自动化脚本/机器人集成


:sparkles: 核心特性

:person_swimming: 智能邮箱池

  • 自动分配未使用邮箱给 API Key

  • 每个 API Key 独立管理邮箱资源

  • 一键重置分配记录

:counterclockwise_arrows_button: 双通道邮件读取

  • 优先使用 Microsoft Graph API

  • 自动回退到 IMAP (XOAUTH2)

  • 支持 inbox 和 junk 文件夹

:locked: 安全设计

  • AES-256-GCM 加密存储敏感凭证

  • API Key 哈希存储,仅创建时显示一次

  • JWT 认证管理后台


:hammer_and_wrench: 技术栈

| 组件 | 技术 |

|:—:|:—|

| 后端 | Fastify 5 + TypeScript + Prisma 6 |

| 数据库 | PostgreSQL 16 |

| 缓存 | Redis 7 |

| 前端 | React 19 + Ant Design 6 + Vite |

| 部署 | Docker + Docker Compose |


:rocket: 快速开始

Docker 一键部署 (推荐)


# 克隆项目

git clone https://github.com/wjn6/GongXi-Mail.git

cd gongxi-mail

# 启动服务

docker-compose up -d --build

服务启动后访问: http://localhost:3000

默认管理员账号:

  • 用户名: admin

  • 密码: admin123


:satellite_antenna: 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]&regex=\d{6}"




:desktop_computer: 管理后台功能

  • :bar_chart: 数据概览: 实时统计邮箱状态、API 调用趋势

  • :e_mail: 邮箱管理: 添加/编辑/删除邮箱,批量导入导出

  • :key: API Key 管理: 创建/禁用 Key,分配邮箱池

  • :memo: 操作日志: 查看所有 API 调用记录

  • :busts_in_silhouette: 管理员管理: 多管理员支持 (超管专属)


:package: 邮箱数据导入格式

批量导入邮箱时,支持以下格式 (默认分隔符 ----):


# 格式1: 基础格式 (3列)

email----clientId----refreshToken

# 格式2: 带密码 (4列)

email----password----clientId----refreshToken

# 格式3: 扩展格式 (5列,兼容某些导出工具)

email----clientId----uuid----info----refreshToken

:warning: 注意: 代理需要在管理后台单独为每个邮箱配置,不支持在导入时指定。(并未完美实现)


:gear: 环境变量

| 变量 | 说明 | 默认值 |

|:—|:—|:—|

| PORT | 服务端口 | 3000 |

| DATABASE_URL | PostgreSQL 连接 | - |

| REDIS_URL | Redis 连接 (可选) | - |

| JWT_SECRET | JWT 密钥 (≥32字符) | - |

| ENCRYPTION_KEY | 加密密钥 (32字符) | - |

| ADMIN_USERNAME | 初始管理员用户名 | admin |

| ADMIN_PASSWORD | 初始管理员密码 | admin123 |


:handshake: 反馈与支持

如有问题或建议,欢迎:

  • 在本帖下方回复

  • 提交 GitHub Issue

  • 联系作者


未来计划

我也不知道还有什么要写

目前就一个每3月真自动刷新令牌

其他的看佬友们提要求


:star: 如果这个项目对你有帮助,请给个 Star!

81 个赞

前排 佬,如何批量注册呀

1 个赞

蹲一个啊

感谢分享,老哥aigc要截图,照搬readme也不行哦,会被举报的。

大佬牛逼

蹲一个蹲一个

支持一下佬友,虽然用不上

感谢大佬!

大佬牛逼

感谢开源

感谢佬。

感谢大佬啊

这也太强了吧,佬

这个一般是直接买,大约0.04一个,建一个1000账号池,也才40,跟注册域名邮箱差不多,但基本上是永久的

感谢提醒,不过这个咋截图啊

readme截长图,或者截几张图。
里面混杂的说明图像就放尾巴呗

感谢分享

https://blog.useforall.com/posts/graph-api-imap-check-outlook-mail/

11月份就用astro在博客实现了:joy:其实只用实现个取件就行了,其他功能意义不大,因为反正这些买的outlook都是临时拿来注册东西的邮箱

2 个赞

这个牛逼

去哪里买啊