mirror of
https://github.com/xiaozhi349/outlookEmail.git
synced 2026-04-27 01:55:51 +03:00
No description
| __pycache__ | ||
| templates | ||
| outlook_mail_reader.py | ||
| README.md | ||
| requirements.txt | ||
| web_outlook_app.py | ||
Outlook 邮件管理工具
一个功能完整的 Outlook 邮件管理解决方案,支持多种方式读取 Outlook 邮箱邮件,并提供 Web 界面进行邮箱账号管理和邮件查看。
✨ 功能特性
邮件读取方式
本工具支持三种方式读取 Outlook 邮箱邮件:
- 旧版 IMAP 方式 - 使用
outlook.office365.com服务器 - 新版 IMAP 方式 - 使用
outlook.live.com服务器 - Graph API 方式 - 使用 Microsoft Graph API
Web 应用功能
- 🔐 登录验证 - 密码保护的 Web 界面
- 📁 分组管理 - 支持创建、编辑、删除邮箱分组
- 📧 多邮箱管理 - 批量导入和管理多个 Outlook 邮箱账号
- 📬 邮件查看 - 查看收件箱邮件列表和邮件详情
- 📤 导出功能 - 支持按分组导出邮箱账号信息
- 🎨 现代化 UI - 简洁美观的四栏式界面布局
- ⚡ 性能优化 - 邮箱列表缓存,快速切换分组
- 🔥 临时邮箱 - 集成 GPTMail API,一键生成临时邮箱
- ⚙️ 系统设置 - 支持在线修改登录密码和 API Key
界面布局
Web 应用采用四栏式布局设计:
- 分组面板 - 显示所有邮箱分组,点击切换
- 邮箱面板 - 显示当前分组下的邮箱账号列表
- 邮件列表 - 显示选中邮箱的收件箱邮件
- 邮件详情 - 显示选中邮件的完整内容
📋 系统要求
- Python 3.8+
- 网络连接(访问 Microsoft 服务)
🚀 快速开始
1. 安装依赖
pip install -r requirements.txt
2. 运行 Web 应用
python web_outlook_app.py
启动后访问:http://127.0.0.1:5001
默认登录密码:admin123(可在 Web 界面的「设置」中修改)
3. 运行命令行测试工具
python outlook_mail_reader.py
📁 项目结构
outlookEmail/
├── outlook_mail_reader.py # 命令行邮件读取测试工具
├── web_outlook_app.py # Flask Web 应用
├── requirements.txt # Python 依赖
├── README.md # 项目说明文档
└── templates/
├── index.html # Web 应用主页面
└── login.html # 登录页面
📖 使用说明
导入邮箱账号
在 Web 界面中,点击「导入邮箱」按钮,按以下格式输入账号信息:
邮箱----密码----client_id----refresh_token
支持批量导入,每行一个账号。
获取 OAuth2 凭证
要使用本工具,您需要获取以下 OAuth2 凭证:
- Client ID - Microsoft Azure 应用注册的客户端 ID
- Refresh Token - OAuth2 刷新令牌
获取方式:
- 在 Azure Portal 注册应用
- 配置适当的 API 权限(Mail.Read、IMAP.AccessAsUser.All 等)
- 通过 OAuth2 授权流程获取 refresh_token
API 端点
Web 应用提供以下 API 端点:
| 端点 | 方法 | 描述 |
|---|---|---|
/api/groups |
GET | 获取所有分组 |
/api/groups |
POST | 创建分组 |
/api/groups/<id> |
PUT | 更新分组 |
/api/groups/<id> |
DELETE | 删除分组 |
/api/accounts |
GET | 获取所有账号 |
/api/accounts |
POST | 添加账号 |
/api/accounts/<id> |
GET | 获取账号详情 |
/api/accounts/<id> |
PUT | 更新账号 |
/api/accounts/<id> |
DELETE | 删除账号 |
/api/emails/<email> |
GET | 获取邮件列表 |
/api/email/<email>/<message_id> |
GET | 获取邮件详情 |
/api/groups/<id>/export |
GET | 导出分组邮箱 |
/api/accounts/export |
GET | 导出所有邮箱 |
/api/temp-emails |
GET | 获取所有临时邮箱 |
/api/temp-emails/generate |
POST | 生成新的临时邮箱 |
/api/temp-emails/<email> |
DELETE | 删除临时邮箱 |
/api/temp-emails/<email>/messages |
GET | 获取临时邮箱邮件列表 |
/api/temp-emails/<email>/messages/<id> |
GET | 获取临时邮件详情 |
/api/temp-emails/<email>/clear |
DELETE | 清空临时邮箱所有邮件 |
/api/settings |
GET | 获取系统设置 |
/api/settings |
PUT | 更新系统设置 |
临时邮箱功能
系统集成了 GPTMail API 提供临时邮箱服务:
- 生成临时邮箱 - 点击「临时邮箱」分组,然后点击「生成临时邮箱」按钮
- 查看邮件 - 选择临时邮箱后点击「获取邮件」按钮
- 清空邮件 - 点击临时邮箱旁的「清空」按钮,清空该邮箱的所有邮件
- 删除邮箱 - 点击临时邮箱旁的「删除」按钮,删除邮箱及其所有邮件
临时邮箱数据会存储在本地数据库中,方便后续查看。
系统设置
点击导航栏的「⚙️ 设置」按钮,可以修改以下配置:
- 登录密码 - 修改 Web 界面的登录密码
- GPTMail API Key - 设置临时邮箱功能所需的 API Key
设置会保存在数据库中,重启应用后仍然有效。
⚙️ 配置说明
Web 应用配置
以下配置可以在 Web 界面的「设置」中修改:
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 登录密码 | admin123 |
Web 界面登录密码 |
| GPTMail API Key | 空 | 临时邮箱功能的 API Key |
以下配置需要在 web_outlook_app.py 中修改:
| 配置项 | 默认值 | 说明 |
|---|---|---|
DATABASE |
outlook_accounts.db |
SQLite 数据库文件 |
IMAP_SERVER_OLD |
outlook.office365.com |
旧版 IMAP 服务器 |
IMAP_SERVER_NEW |
outlook.live.com |
新版 IMAP 服务器 |
IMAP_PORT |
993 |
IMAP 端口 |
命令行工具配置
在 outlook_mail_reader.py 中配置:
| 配置项 | 说明 |
|---|---|
EMAIL |
邮箱地址 |
PASSWORD |
邮箱密码 |
CLIENT_ID |
OAuth2 客户端 ID |
REFRESH_TOKEN |
OAuth2 刷新令牌 |
PROXY |
代理地址(可选) |
🔒 安全说明
- 请妥善保管您的 OAuth2 凭证
- 建议修改默认登录密码
- 数据库文件包含敏感信息,请注意保护
- 生产环境建议使用 HTTPS
📝 依赖说明
- Flask >= 3.0.0 - Web 框架
- Werkzeug >= 3.0.0 - WSGI 工具库
- requests >= 2.25.0 - HTTP 请求库
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📄 许可证
MIT License