diff --git a/README.md b/README.md new file mode 100644 index 0000000..17891a5 --- /dev/null +++ b/README.md @@ -0,0 +1,153 @@ +# Outlook 邮件管理工具 + +一个功能完整的 Outlook 邮件管理解决方案,支持多种方式读取 Outlook 邮箱邮件,并提供 Web 界面进行邮箱账号管理和邮件查看。 + +## ✨ 功能特性 + +### 邮件读取方式 +本工具支持三种方式读取 Outlook 邮箱邮件: + +1. **旧版 IMAP 方式** - 使用 `outlook.office365.com` 服务器 +2. **新版 IMAP 方式** - 使用 `outlook.live.com` 服务器 +3. **Graph API 方式** - 使用 Microsoft Graph API + +### Web 应用功能 +- 🔐 **登录验证** - 密码保护的 Web 界面 +- 📁 **分组管理** - 支持创建、编辑、删除邮箱分组 +- 📧 **多邮箱管理** - 批量导入和管理多个 Outlook 邮箱账号 +- 📬 **邮件查看** - 查看收件箱邮件列表和邮件详情 +- 📤 **导出功能** - 支持按分组导出邮箱账号信息 +- 🎨 **现代化 UI** - 简洁美观的用户界面 + +## 📋 系统要求 + +- Python 3.8+ +- 网络连接(访问 Microsoft 服务) + +## 🚀 快速开始 + +### 1. 安装依赖 + +```bash +pip install -r requirements.txt +``` + +### 2. 运行 Web 应用 + +```bash +python web_outlook_app.py +``` + +启动后访问:http://127.0.0.1:5001 + +默认登录密码:`admin123`(可在 [`web_outlook_app.py`](web_outlook_app.py:27) 中修改 `LOGIN_PASSWORD` 变量) + +### 3. 运行命令行测试工具 + +```bash +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 凭证: + +1. **Client ID** - Microsoft Azure 应用注册的客户端 ID +2. **Refresh Token** - OAuth2 刷新令牌 + +获取方式: +1. 在 [Azure Portal](https://portal.azure.com/) 注册应用 +2. 配置适当的 API 权限(Mail.Read、IMAP.AccessAsUser.All 等) +3. 通过 OAuth2 授权流程获取 refresh_token + +### API 端点 + +Web 应用提供以下 API 端点: + +| 端点 | 方法 | 描述 | +|------|------|------| +| `/api/groups` | GET | 获取所有分组 | +| `/api/groups` | POST | 创建分组 | +| `/api/groups/` | PUT | 更新分组 | +| `/api/groups/` | DELETE | 删除分组 | +| `/api/accounts` | GET | 获取所有账号 | +| `/api/accounts` | POST | 添加账号 | +| `/api/accounts/` | GET | 获取账号详情 | +| `/api/accounts/` | PUT | 更新账号 | +| `/api/accounts/` | DELETE | 删除账号 | +| `/api/emails/` | GET | 获取邮件列表 | +| `/api/email//` | GET | 获取邮件详情 | +| `/api/groups//export` | GET | 导出分组邮箱 | +| `/api/accounts/export` | GET | 导出所有邮箱 | + +## ⚙️ 配置说明 + +### Web 应用配置 + +在 [`web_outlook_app.py`](web_outlook_app.py) 中可以修改以下配置: + +| 配置项 | 默认值 | 说明 | +|--------|--------|------| +| `LOGIN_PASSWORD` | `admin123` | 登录密码 | +| `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`](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 \ No newline at end of file