Skip to content

dangweilinshinidie/Email-Manager

Repository files navigation

Email-Manager

Email-Manager 是一个 Microsoft 邮箱账户与邮件管理面板,提供 Web UI、批量导入、邮件检索、标签管理、API Key 管理和接口文档。

项目仓库: https://github.com/dangweilinshinidie/Email-Manager

快速跳转

部署入口

新版本更新

当前版本已支持 2 种邮箱接入方式,可按账户情况自由选择:

  1. IMAP 适合继续使用传统微软邮箱邮件读取流程,基于 OAuth2 + IMAP 获取邮件内容。
  2. Microsoft Graph API 适合使用 Graph 权限体系的场景,通过 Microsoft Graph API 读取邮件与详情。

这 2 种方式目前都已经支持:

  • 单个账户添加
  • 批量账户导入
  • 连接测试
  • 邮件列表读取
  • 邮件详情查看

批量导入时的格式说明:

  • Graph API邮箱----密码----client_id----令牌
  • IMAP:支持 邮箱----刷新令牌----客户端ID,兼容旧格式 邮箱----占位密码----刷新令牌----客户端ID,也支持 Outlook_OA2 格式 邮箱----密码----client_id----refresh_token

docker-compose 一键部署

如果你已经拉取了仓库,直接执行下面命令就可以部署:

git clone https://github.com/dangweilinshinidie/Email-Manager.git Email-Manager
cd Email-Manager
docker-compose up -d

部署完成后默认访问:

说明:

  • 当前仓库内的 docker-compose.yml 默认会拉取镜像 dangweilinshinidie/email-manager:main
  • 默认把本地 ./data 映射到容器 /app/data
  • 默认端口映射为 8073:8000
  • 默认已包含 TRUST_PROXY_HEADERS=true
  • 如果你的环境使用新版 Docker Compose 插件,也可以使用 docker compose up -d

核心特性

  • 支持 2 种接入方式:IMAP / Microsoft Graph API
  • Microsoft 邮箱账户管理、批量导入、快速检索
  • 收件箱 / 垃圾箱邮件查看与详情展示
  • 邮件主题、发件人、内容搜索
  • API Key 创建、停用、调用记录查看
  • 内置 API 文档,适合二次开发与自动化接入
  • 默认支持 Docker 部署,适合线上长期运行
  • 首次访问支持初始化管理员密码与使用协议确认

线上部署前必看

无论你使用 Railway、Zeabur 还是 ClawCloud Run,部署时都建议保持以下约束:

  • 持久化目录挂载到 /app/data
  • 服务对内端口使用 8000
  • 首次上线后访问 Web 页面完成初始化
  • 如果暴露到公网,请自行配置 HTTPS、访问控制、日志审计和备份
  • 若需要长期稳定运行,优先绑定自定义域名

强制环境变量:

变量名 强制值 / 推荐值 说明
HOST 0.0.0.0 容器内监听地址
PORT 8000 容器内监听端口
DATA_DIR /app/data 数据目录
ACCOUNTS_FILE /app/data/accounts.json 账户数据文件
PYTHONUNBUFFERED 1 便于查看日志
TRUST_PROXY_HEADERS true 强制开启。站点在 Nginx / 宝塔反向代理 / CDN / HTTPS 终止后面时如果未开启,浏览器写请求可能被判定为跨站

健康检查地址:

  • GET /api/auth/state

反向代理补充说明:

  • 如果你的站点前面挂了 Nginx、宝塔反向代理、Caddy、Cloudflare 或其他 HTTPS 终止层,必须同时转发 HostX-Forwarded-Proto
  • 建议额外转发 X-Forwarded-Host
  • 如果未正确转发这些头,后台创建 API Key、批量导入、删除账户这类 POST/PUT/DELETE 请求可能会报错: Cross-site browser requests are not allowed.

Railway 在线部署

Railway 适合直接从 GitHub 仓库快速上线,也适合直接使用 Docker 镜像部署。

跳转链接:

方式一:从 GitHub 仓库部署

  1. 登录 Railway。
  2. 创建新项目并选择 Deploy from GitHub repo
  3. 选择当前项目仓库 dangweilinshinidie/Email-Manager
  4. Railway 会检测到仓库内的 Dockerfile 并自动构建部署。
  5. 为服务添加持久化卷,并挂载到 /app/data
  6. 设置环境变量: HOST=0.0.0.0 PORT=8000 DATA_DIR=/app/data ACCOUNTS_FILE=/app/data/accounts.json TRUST_PROXY_HEADERS=true
  7. 等待部署完成后打开 Railway 分配的域名。
  8. 首次进入页面后完成管理员密码初始化。

方式二:直接使用镜像部署

  1. 在 Railway 新建服务。
  2. 选择 Docker Image 方式。
  3. 填入镜像:dangweilinshinidie/email-manager:main
  4. 挂载持久化卷到 /app/data
  5. 设置与上面一致的环境变量。
  6. 发布后访问域名完成初始化。

Railway 备注

  • Railway 是最省事的部署方式之一。
  • 只要卷路径正确,服务重启后数据会保留。
  • 建议绑定自定义域名并启用 HTTPS。

返回:

Zeabur 在线部署

Zeabur 适合可视化部署和 GitHub 仓库直连部署。

跳转链接:

方式一:导入 GitHub 仓库

  1. 登录 Zeabur。
  2. 新建 Project。
  3. 选择从 GitHub 导入当前项目仓库: https://github.com/dangweilinshinidie/Email-Manager
  4. Zeabur 检测到 Dockerfile 后会按容器方式构建。
  5. 为服务添加持久化存储,挂载目录设为 /app/data
  6. 设置环境变量: HOST=0.0.0.0 PORT=8000 DATA_DIR=/app/data ACCOUNTS_FILE=/app/data/accounts.json TRUST_PROXY_HEADERS=true
  7. 等待部署完成后,使用分配域名访问。

方式二:使用 Docker 镜像

  1. 在 Zeabur 创建新服务。
  2. 选择容器 / Docker Image 方式。
  3. 填入镜像:dangweilinshinidie/email-manager:main
  4. 添加卷并挂载到 /app/data
  5. 配置环境变量并发布。

Zeabur 备注

  • Zeabur 界面化程度更高,适合不想手动写部署脚本的场景。
  • 绑定域名和 HTTPS 也都可以直接在平台内继续配置。

返回:

ClawCloud Run 在线部署

按当前 ClawCloud Run 官方文档,推荐使用 App Launchpad 以容器 / Docker 镜像方式部署本项目,而不是按 VPS 方式处理。

这里我根据官方文档做的判断是:

  • ClawCloud Run 当前更贴近托管容器应用流程
  • 这个项目最适合直接使用公开镜像 dangweilinshinidie/email-manager:main
  • 数据目录仍然应挂载到 /app/data

跳转链接:

推荐方式:App Launchpad + Docker 镜像

  1. 登录 ClawCloud Run。
  2. 进入 App Launchpad
  3. 创建一个新的应用。
  4. 选择容器镜像部署方式。
  5. 填入镜像:dangweilinshinidie/email-manager:main
  6. 将服务端口设置为 8000
  7. 配置环境变量: HOST=0.0.0.0 PORT=8000 DATA_DIR=/app/data ACCOUNTS_FILE=/app/data/accounts.json TRUST_PROXY_HEADERS=true
  8. 如平台支持持久化存储,请将数据目录挂载到 /app/data
  9. 发布后通过平台生成的公网地址访问。
  10. 首次进入页面后完成管理员密码初始化。

需要注意的点

  • 若你不挂载持久化目录,容器重建后数据可能丢失。
  • 如果要长期使用,建议绑定域名并启用 HTTPS。
  • 如果你需要更复杂的资源配置,可以继续参考 Configuration Files 文档。

关于 GitHub 仓库直连

我根据当前可检索到的 ClawCloud Run 官方文档,优先给出的是 App Launchpad + Docker 镜像 方案,因为这是最直接且与本项目最匹配的官方容器部署路径。

如果你后续要把 ClawCloud Run 再细化成“仓库直连构建”版本,我可以再按你指定的平台界面路径继续补一版。

返回:

本地 / 自托管 Docker 部署

如果你不走云平台,也可以直接在自己的服务器或本地机器使用 Docker Compose。

git clone https://github.com/dangweilinshinidie/Email-Manager.git Email-Manager
cd Email-Manager
docker compose up -d

相关文件:

应用商店支持

当前应用商店支持状态如下:

  • GMSSH:已支持,可直接通过应用商店下载安装。
  • 宝塔:敬请期待。
  • aaPanel:敬请期待。
  • 1Panel:敬请期待。

说明:

  • 目前只有 GMSSH 已完成接入。
  • 其他商店图标与入口说明已经预留,但暂未开放下载。

首次使用流程

  1. 打开首页。
  2. 阅读并同意使用协议。
  3. 选择安装模式: MREGISTER适配模式:会自动预置账户分类 MREGISTER 和快捷标签 已注册CHATGPT普通模式:纯净版本,不预置这 2 个默认分类配置。 商业授权版本:界面已预留,当前暂未开放。
  4. 设置管理员密码。
  5. 登录后台。
  6. 添加单个 Microsoft 邮箱账户,或使用批量导入。
  7. 根据账户情况选择 IMAPMicrosoft Graph API 接入方案。
  8. 进入邮件页面查看收件箱 / 垃圾箱邮件。
  9. 如需程序化调用,可进入 API 密钥页面创建 Key。

目录结构

Microsoft-Email-Manager/
├─ main.py
├─ static/
│  ├─ index.html
│  ├─ home.html
│  ├─ open.html
│  └─ favicon.ico
├─ data/
├─ Dockerfile
├─ docker-compose.yml
├─ docker-entrypoint.sh
├─ docker.env.example
├─ requirements.txt
└─ README.md

开发与调试

本地运行

pip install -r requirements.txt
python main.py

默认访问地址:

关键接口

  • GET /api/auth/state
  • POST /api/auth/setup
  • POST /api/auth/login
  • POST /api/auth/logout
  • GET /accounts
  • POST /accounts
  • GET /emails/{email_id}
  • GET /emails/{email_id}/{message_id}
  • GET /api/api-keys
  • POST /api/api-keys

开源说明

本项目为开源程序,适合学习、研究、测试与自部署使用。

联系作者

GitHub: https://github.com/dangweilinshinidie

About

Microsoft email account and mail management panel with IMAP and Graph API support, Web UI, batch import, mail search, API Key management

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages