# imap_server_test **Repository Path**: ming_log/imap_server_test ## Basic Information - **Project Name**: imap_server_test - **Description**: 用于测试imap服务连通性的简单工程。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-12 - **Last Updated**: 2026-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # IMAP 服务验证器 这是一个本地运行的 IMAP 服务验证工具。它提供一个简单网页,用于输入 IMAP 服务器配置,并通过 Python 后端实际执行连接、登录和邮箱目录选择,判断 IMAP 服务是否可用。 ## 功能说明 - 支持 SSL/TLS 方式连接 IMAP 服务,常用端口为 `993`。 - 支持 STARTTLS 方式连接 IMAP 服务,常用端口为 `143`。 - 验证流程包括配置检查、网络连接、认证登录和选择邮箱目录。 - 页面会显示验证结果和失败阶段,便于定位问题。 - 不依赖第三方包,仅使用 Python 标准库和静态前端文件。 ## 项目结构 ```text . ├── server.py # 本地 HTTP 服务,提供页面和 /validate 接口 ├── imap_validator.py # IMAP 验证核心逻辑 ├── index.html # 页面结构 ├── styles.css # 页面样式 ├── app.js # 前端交互逻辑 ├── start.bat # Windows 一键启动脚本 ├── start.sh # Linux/macOS 一键启动脚本 ├── test_imap_validator.py # 单元测试 └── AGENTS.md # 贡献者指南 ``` ## 运行方式 ### 一键启动 Windows: ```powershell .\start.bat ``` Linux/macOS: ```bash chmod +x ./start.sh ./start.sh ``` 脚本会切换到项目目录、尝试打开浏览器,并启动本地服务。 ### 手动启动 进入项目目录后启动服务: ```powershell cd D:\Project\imap_server_test python .\server.py ``` 启动后在浏览器打开: ```text http://127.0.0.1:8000 ``` 在页面中填写 IMAP 配置,然后点击“开始验证”。 ## 表单字段 - `服务器地址`:IMAP 服务域名或 IP,例如 `imap.example.com`。 - `端口`:SSL/TLS 通常为 `993`,STARTTLS 通常为 `143`。 - `连接方式`:选择 `SSL/TLS` 或 `STARTTLS`。 - `账号`:邮箱账号,通常是完整邮箱地址。 - `密码或授权码`:邮箱密码或应用专用授权码。 - `邮箱目录`:默认 `INBOX`。 - `超时秒数`:连接超时时间,默认 `10` 秒。 ## 验证结果 后端返回统一结果结构: ```json { "ok": true, "stage": "success", "message": "IMAP service is available" } ``` 常见阶段包括: - `configuration`:输入配置不完整或不合法。 - `connection`:服务器地址、端口、网络或 TLS 连接失败。 - `authentication`:账号、密码或授权码错误。 - `mailbox`:登录成功但无法选择指定邮箱目录。 - `success`:IMAP 服务可用。 ## 测试 运行单元测试: ```powershell python -m unittest test_imap_validator.py ``` 检查 Python 语法: ```powershell python -m py_compile imap_validator.py server.py ``` 测试中使用假的 IMAP 连接对象,不会访问真实邮箱服务。 ## 安全注意事项 不要把真实邮箱密码、授权码写入代码、测试、截图或日志。当前服务默认监听 `127.0.0.1:8000`,只建议在本机使用;如需对外暴露,应先增加鉴权和访问控制。