outlook邮件管理服务 · 现代化OAuth2认证 · 一键Docker部署
- 🔧 修复Docker权限问题 - 解决accounts.json文件权限错误
- 🐳 容器配置优化 - 调整容器用户设置为root
详细内容
- 邮箱快速切换 - 邮件界面新增下拉选择器,无需退出登录
- 账户管理按钮 - 一键返回账户管理,提升操作流程
- 智能状态显示 - 实时显示账户有效性,支持颜色标识
- 批量操作增强 - 支持批量验证、导入、删除账户
- 搜索筛选功能 - 账户搜索和状态筛选,快速定位
- IMAP连接池 - 新增连接复用机制,减少认证开销
- 邮件缓存系统 - 5分钟智能缓存,重复访问速度提升60%+
- 批量获取优化 - FLAGS字段优化,邮件头获取效率显著提升
- 异步文件IO - 文件操作移至线程池,避免阻塞主线程
- 原子写入机制 - 临时文件+移动操作,防止并发写入损坏
- 前端渲染优化 - DocumentFragment减少DOM操作
- 加载动画增强 - 统一的Spinner组件和状态管理
- 错误处理完善 - 友好的错误提示和状态恢复
- 响应式设计 - 移动端邮箱切换器布局优化
- 连接状态管理 - 优化IMAP连接生命周期
- 异常处理机制 - 完善的错误捕获和恢复逻辑
- 内存使用优化 - 减少内存占用和潜在内存泄漏
# 🎯 最快启动
git clone https://github.com/oDaiSuno/OutlookManager.git && cd OutlookManager
docker compose up -d
# 🌐 访问服务
open http://localhost:8000# Linux/macOS/Windows
./deploy.shpip install -r requirements.txt
python main.py| 🔐 企业级安全 | ⚡ 极致性能 | 🎨 现代化UI | 🐳 云原生 |
|---|---|---|---|
| 极简认证体系 | 异步处理 | 响应式设计 | Docker容器化 |
| Bearer密码验证 | 智能分页 | 管理员界面 | 一键部署 |
| OAuth2认证 | 邮件缓存 | 多主题支持 | 环境变量配置 |
- ✅ 管理员登录 - 密码保护的系统访问控制
- ✅ Bearer密码认证 - 极简的无状态认证机制
- ✅ 直接密码验证 - 无需会话管理的简单认证
- ✅ 双层认证体系 - 管理员认证 + OAuth2邮箱认证
- ✅ OAuth2安全认证 - 微软官方认证流程
- ✅ 多文件夹支持 - 收件箱、垃圾箱、自定义文件夹
- ✅ 双栏视图 - 同时浏览多个邮件文件夹
- ✅ 智能分页 - 灵活的分页参数,最高500封/页
- ✅ 邮件解析 - 支持HTML/纯文本双格式
- ✅ 字符编码 - 完美支持中文等多语言
- ✅ 快速切换 - 邮件界面直接切换多个邮箱账户
- ✅ 邮件缓存 - 5分钟智能缓存提升加载速度
- ✅ 异步高性能 - 基于FastAPI的现代化架构
- ✅ RESTful API - 标准化接口设计
- ✅ 交互式文档 - 自动生成的API文档
- ✅ 健康检查 - 服务状态实时监控
- ✅ Docker容器化 - 一键部署和扩展
- ✅ 连接池优化 - IMAP连接复用提升性能
- ✅ 原子文件操作 - 数据安全保障
- ✅ 响应式设计 - 完美适配桌面和移动设备
- ✅ 实时状态 - 账户活性状态智能检测
- ✅ 批量操作 - 支持批量添加、验证、删除账户
- ✅ 搜索筛选 - 账户搜索和状态筛选
- ✅ 动画效果 - 流畅的加载和切换动画
- ✅ 错误处理 - 友好的错误提示和恢复机制
- 访问系统 👉
http://localhost:8000 - 管理员登录 👉 输入管理密码(默认:
admin123) - 邮箱账户配置 👉 添加Outlook账户凭证
- 开始使用 👉 查看和管理邮件
graph LR
A[用户访问] --> B[输入管理密码]
B --> C[Bearer密码验证]
C --> D[邮箱账户管理]
D --> E[OAuth2认证]
E --> F[邮件访问]
- 第一层:管理员密码直接作为Bearer令牌
- 第二层:OAuth2保护邮箱数据访问
- 特点:无状态、零会话管理、极简实现
🔐 0. 极简认证说明
极简认证机制: 直接使用管理密码作为Bearer令牌,无需登录API。
所有API调用都需要在请求头中携带管理密码:
-H "Authorization: Bearer admin123"验证认证配置:
curl "http://localhost:8000/auth/config" \
-H "Authorization: Bearer admin123"响应示例:
{
"auth_type": "bearer_password",
"password_hashed": false
}📝 1. 注册账户
单个账户注册:
curl -X POST "http://localhost:8000/accounts" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer admin123" \
-d '{
"email": "[email protected]",
"refresh_token": "your_refresh_token",
"client_id": "your_client_id"
}'批量账户注册:
curl -X POST "http://localhost:8000/accounts" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer admin123" \
-d '[
{
"email": "[email protected]",
"refresh_token": "token1",
"client_id": "client1"
},
{
"email": "[email protected]",
"refresh_token": "token2",
"client_id": "client2"
}
]'响应示例:
{
"email_id": "[email protected]",
"message": "Account verified and saved successfully."
}📊 2. 账户管理
获取账户列表:
# 基础列表
curl "http://localhost:8000/accounts" \
-H "Authorization: Bearer admin123"
# 检查活性状态
curl "http://localhost:8000/accounts?check_status=true" \
-H "Authorization: Bearer admin123"批量验证账户:
curl -X POST "http://localhost:8000/accounts/verify" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer admin123" \
-d '{
"accounts": [
{
"email": "[email protected]",
"refresh_token": "token",
"client_id": "client_id"
}
]
}'批量删除账户:
curl -X DELETE "http://localhost:8000/accounts" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer admin123" \
-d '{
"emails": ["[email protected]", "[email protected]"]
}'📬 3. 获取邮件列表
# 获取所有邮件(智能聚合)
curl "http://localhost:8000/emails/[email protected]?folder=all&page=1&page_size=100" \
-H "Authorization: Bearer admin123"
# 仅收件箱
curl "http://localhost:8000/emails/[email protected]?folder=inbox" \
-H "Authorization: Bearer admin123"
# 仅垃圾箱
curl "http://localhost:8000/emails/[email protected]?folder=junk" \
-H "Authorization: Bearer admin123"
# 双栏视图(推荐)
curl "http://localhost:8000/emails/[email protected]/dual-view?inbox_page=1&junk_page=1&page_size=20" \
-H "Authorization: Bearer admin123"响应示例:
{
"email_id": "[email protected]",
"folder_view": "all",
"page": 1,
"page_size": 100,
"total_emails": 1247,
"emails": [...]
}📖 4. 获取邮件详情
curl "http://localhost:8000/emails/[email protected]/INBOX-12345" \
-H "Authorization: Bearer admin123"响应示例:
{
"message_id": "INBOX-12345",
"subject": "重要:项目进展更新",
"from_email": "[email protected]",
"to_email": "[email protected]",
"date": "2024-01-20T10:30:00Z",
"body_plain": "邮件正文...",
"body_html": "<html>...</html>"
}访问 http://localhost:8000/docs 体验完整的交互式API文档
- IMAP连接池 - 复用连接减少认证开销
- 邮件列表缓存 - 5分钟智能缓存机制
- 批量获取优化 - FLAGS字段优化和批量处理
- 异步文件IO - 线程池处理文件读写操作
- 原子写入 - 防止并发写入时数据损坏
- DocumentFragment渲染 - 减少DOM操作提升性能
- 动画优化 - 流畅的加载和切换动画
- 状态管理 - 智能加载状态防止重复请求
- 响应式设计 - 完美适配各种设备尺寸
- 邮件加载速度 - 相比原版提升60%以上
- 账户切换 - 无需退出登录,秒级切换
- 缓存命中率 - 重复访问缓存命中率95%+
- 并发处理 - 支持高并发邮件读取
- 邮箱切换器 - 下拉选择器快速切换邮箱
- 账户管理按钮 - 一键返回账户管理页面
- 状态标识 - 实时显示账户有效性状态
- 双栏视图 - 同时查看收件箱和垃圾邮件
- 批量操作 - 支持批量验证、导入、删除
- 状态筛选 - 按有效性筛选账户列表
- 搜索功能 - 快速定位特定邮箱账户
- 实时状态 - 账户活性状态实时检测
- 格式验证 - 智能解析批量账户信息
- 并行验证 - 多账户并行验证提升效率
- 选择性导入 - 仅导入验证成功的账户
- 详细反馈 - 每个账户的验证结果展示
# 基础服务配置
HOST=0.0.0.0 # 监听地址
PORT=8000 # 监听端口
WORKERS=1 # 工作进程数
LOG_LEVEL=info # 日志级别
# 🔐 安全认证配置
ADMIN_PASSWORD=admin123 # 管理员密码安全提醒:
- 🚨 生产环境中请务必修改默认密码
- 🔒 支持bcrypt哈希密码(推荐)
- 🌐 HTTPS部署时更安全
volumes:
- ./data:/app/data # 应用数据
- ./accounts.json:/app/accounts.json # 账户凭证
```### 🛠️ 管理命令
```bash
# 查看状态
docker compose ps
# 实时日志
docker compose logs -f
# 滚动更新
docker compose pull && docker compose up -d
# 完全重置
docker compose down -v && docker compose up -d⭐ 如果这个项目对你有帮助,请给我们一个星标!