# edu_mailbox **Repository Path**: cyw1023/edu_mailbox ## Basic Information - **Project Name**: edu_mailbox - **Description**: 教学演示用邮箱演示系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-29 - **Last Updated**: 2025-10-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 教学演示版邮箱系统 ## 项目简介 本项目是一个专为教学环境设计的邮箱系统,旨在让学生在课堂上体验邮箱的基本功能。系统采用简化的架构设计,学生端可以一键部署,无需复杂的环境配置,即可实现邮件的发送和接收功能。 ## 功能清单 ### 核心功能 #### 1. 双模式客户端体验 - **命令行模式(早期邮箱体验)** - 纯文本界面,模拟早期邮箱系统 - 命令行操作方式,体验历史邮箱使用方法 - 简洁的文本菜单和提示信息 - 支持基本的邮件收发功能 - **网页模式(现代邮箱体验)** - 现代化Web界面,类似Gmail/Outlook - 图形化操作界面,直观易用 - 响应式设计,支持不同屏幕尺寸 - 丰富的交互功能和视觉效果 #### 2. 用户管理 - **用户注册**:学生可以创建自己的邮箱账户 - **用户登录**:支持用户名/密码登录验证 - **用户信息管理**:基本的个人信息维护 - **多模式登录**:两种客户端模式共享用户账户 #### 3. 邮件功能 - **邮件发送**:学生可以向教师机发送邮件 - **邮件接收**:教师机可以接收来自所有学生的邮件 - **邮件列表**:显示收件箱中的邮件列表 - **邮件查看**:查看邮件详细内容 - **邮件状态**:显示邮件发送状态(已发送/发送失败) #### 4. 界面功能 - **双界面支持**:命令行和网页两种界面风格 - **实时状态显示**:显示连接状态和操作结果 - **错误提示**:友好的错误信息提示 - **历史对比**:直观展示邮箱技术发展历程 ### 教学特色功能 - **批量用户管理**:教师可以预设学生账户 - **邮件监控**:教师端可以监控所有邮件收发情况 - **教学演示模式**:支持大屏幕演示操作流程 ### 教师端管理功能 #### 1. 主控制台(仪表板) - **系统概览**:显示在线学生数、未读邮件数、今日发送邮件数等统计信息 - **快速导航**:提供各功能模块的快速访问入口 - **实时状态**:显示系统运行状态和学生活动情况 - **统计图表**:可视化展示系统使用数据 #### 2. 邮箱管理界面 - **邮件列表显示**:查看所有学生发送的邮件列表 - **邮件内容查看**:点击邮件查看详细内容 - **邮件状态管理**:标记邮件为已读/未读 - **邮件筛选功能**:按发送者、时间、状态等条件筛选邮件 - **邮件回复功能**:直接回复学生邮件 - **邮件删除功能**:删除不需要的邮件 #### 3. 邮件发送功能 - **单独发送**:向指定学生发送邮件 - **多选发送**:选择多个学生批量发送邮件 - **一键群发**:向所有学生发送邮件 - **邮件模板**:支持保存和使用邮件模板 - **发送状态跟踪**:实时显示邮件发送状态 - **发送历史记录**:查看历史发送记录 #### 4. 学生管理功能 - **学生列表查看**:显示所有注册学生的详细信息 - **登录状态监控**:实时查看学生在线/离线状态 - **学生信息管理**:查看学生详细信息(用户名、真实姓名、邮箱、注册时间等) - **学生操作管理**: - 踢出在线学生 - 重置学生密码 - 批量操作(踢出所有在线学生、重置所有密码) - **活动统计**:显示学生活动统计(今日活跃学生数、邮件发送数量等) #### 5. 系统设置功能 - **学生功能管理**:控制学生端可用功能 - 启用/禁用注册功能 - 启用/禁用邮件发送功能 - 启用/禁用邮件接收功能 - **界面设置**: - 启用/禁用命令行模式 - 启用/禁用网页模式 - **安全设置**: - 设置密码复杂度要求 - 设置登录失败限制 - 设置会话超时时间 #### 6. 数据库管理功能 - **数据库统计**:显示用户总数、邮件总数、数据库大小等信息 - **数据表查看**: - 用户表数据查看 - 邮件表数据查看 - 支持表格形式展示数据 - **SQL查询功能**: - 支持自定义SQL查询(仅限SELECT语句) - 查询结果表格化显示 - 安全限制,防止危险操作 - **数据库操作**: - 数据库备份功能 - 清空邮件数据 - 重置数据库(清空所有数据) - **备份管理**: - 自动生成带时间戳的备份文件 - 显示最后备份时间 - 备份文件存储在backups目录 ## 技术实现方案 ### 整体架构 ``` ┌─────────────────────────────────────────┐ ┌─────────────────┐ │ 学生端客户端 │ │ 教师端服务器 │ │ │ │ (Python Server) │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ │ │ 命令行模式 │ │ 网页模式 │ │◄──►│ - 用户管理 │ │ │ (早期邮箱体验) │ │ (现代邮箱体验) │ │ │ - 邮件接收 │ │ │ │ │ │ │ │ - 邮件存储 │ │ │ - 文本界面 │ │ - Web界面 │ │ │ - API服务 │ │ │ - 命令操作 │ │ - 图形界面 │ │ │ - 管理面板 │ │ │ - 早期风格 │ │ - 现代风格 │ │ │ │ │ └─────────────────┘ └─────────────────┘ │ └─────────────────┘ │ │ │ 共享API通信模块 │ └─────────────────────────────────────────┘ ``` ### 技术栈选择 #### 学生端(双模式客户端) **命令行模式** - **Python 3.8+**:主要编程语言 - **cmd/argparse**:命令行参数解析 - **colorama**:彩色文本输出 - **requests**:HTTP通信库 - **json**:数据交换格式 **网页模式** - **Python 3.8+**:主要编程语言 - **Flask**:轻量级Web框架(客户端本地服务) - **HTML5/CSS3/JavaScript**:前端技术 - **Bootstrap**:响应式UI框架 - **requests**:后端API通信 #### 教师端(服务器) - **Python 3.8+**:主要编程语言 - **Flask**:轻量级Web框架 - **SQLite**:轻量级数据库(无需安装配置) - **Flask-CORS**:跨域请求支持 - **json**:数据交换格式 ### 数据库设计 #### 班级配置表 (classes) ```sql CREATE TABLE classes ( id INTEGER PRIMARY KEY, class_name VARCHAR(50) NOT NULL, description VARCHAR(200), is_active BOOLEAN DEFAULT TRUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 预设五个班级数据 INSERT INTO classes (id, class_name, description) VALUES (1, '一班', '第一班级'), (2, '二班', '第二班级'), (3, '三班', '第三班级'), (4, '四班', '第四班级'), (5, '五班', '第五班级'); ``` #### 用户表 (users) ```sql CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, class_id INTEGER NOT NULL, username VARCHAR(50) NOT NULL, -- 学生选择的用户名(仅英文字母) real_name VARCHAR(50) NOT NULL, -- 学生真实姓名 full_email VARCHAR(100) UNIQUE NOT NULL, -- 完整邮箱地址:班级+用户名@test.com password VARCHAR(100) NOT NULL, display_name VARCHAR(100), -- 显示名称(可选) created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, last_login TIMESTAMP, is_active BOOLEAN DEFAULT TRUE, FOREIGN KEY (class_id) REFERENCES classes(id), -- 确保用户名只包含英文字母 CHECK (username GLOB '[A-Za-z]*' AND length(username) > 0), -- 确保班级ID在1-5范围内 CHECK (class_id BETWEEN 1 AND 5), -- 确保邮箱格式正确 CHECK (full_email LIKE '%@test.com'), -- 确保真实姓名长度合理 CHECK (LENGTH(real_name) BETWEEN 2 AND 50) ); -- 创建索引提高查询性能 CREATE INDEX idx_users_class_id ON users(class_id); CREATE INDEX idx_users_full_email ON users(full_email); CREATE UNIQUE INDEX idx_users_class_username ON users(class_id, username); ``` #### 邮件表 (emails) ```sql CREATE TABLE emails ( id INTEGER PRIMARY KEY AUTOINCREMENT, sender_id INTEGER NOT NULL, sender_email VARCHAR(100) NOT NULL, -- 发送者完整邮箱 sender_class_id INTEGER NOT NULL, -- 发送者班级ID recipient_email VARCHAR(100) DEFAULT 'teacher@test.com', -- 接收者(默认教师) subject VARCHAR(200) NOT NULL, content TEXT NOT NULL, sent_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, is_read BOOLEAN DEFAULT FALSE, read_at TIMESTAMP, FOREIGN KEY (sender_id) REFERENCES users(id), FOREIGN KEY (sender_class_id) REFERENCES classes(id) ); -- 创建索引提高查询性能 CREATE INDEX idx_emails_sender_id ON emails(sender_id); CREATE INDEX idx_emails_sender_class ON emails(sender_class_id); CREATE INDEX idx_emails_sent_at ON emails(sent_at); CREATE INDEX idx_emails_is_read ON emails(is_read); ``` #### 用户注册逻辑 学生注册时需要提供以下信息: - **班级选择**:从1-5班中选择一个 - **用户名**:仅允许英文字母,3-20字符 - **实名**:学生真实姓名,2-50字符 - **密码**:用于登录验证 - **密码确认**:确保密码输入正确 **邮箱地址生成规则:** - 格式:`{班级ID}{用户名}@test.com` - 示例: - 1班学生选择用户名 "alice" → `1alice@test.com` - 3班学生选择用户名 "bob" → `3bob@test.com` - 5班学生选择用户名 "charlie" → `5charlie@test.com` **用户名验证规则:** 1. **仅允许英文字母**:使用正则表达式 `^[A-Za-z]+$` 2. **长度限制**:3-20个字符 3. **唯一性检查**:同一班级内用户名不能重复 4. **保留字检查**:避免使用 admin、teacher、system 等保留字 **注册流程:** ```python def register_user(class_id, username, real_name, password, confirm_password): # 1. 基础验证 if class_id not in [1, 2, 3, 4, 5]: return {"success": False, "message": "请选择有效的班级(1-5)"} # 2. 验证用户名格式(仅英文字母) if not re.match(r'^[A-Za-z]{3,20}$', username): return {"success": False, "message": "用户名只能包含3-20个英文字母"} # 3. 验证真实姓名 if not (2 <= len(real_name) <= 50): return {"success": False, "message": "真实姓名长度应在2-50字符之间"} # 4. 验证密码 if len(password) < 6: return {"success": False, "message": "密码长度至少6位"} if password != confirm_password: return {"success": False, "message": "两次输入的密码不一致"} # 5. 检查保留字 reserved_names = ['admin', 'teacher', 'system', 'root'] if username.lower() in reserved_names: return {"success": False, "message": "该用户名为系统保留字"} # 6. 生成完整邮箱地址 full_email = f"{class_id}{username}@test.com" # 7. 检查邮箱是否已存在 if email_exists(full_email): return {"success": False, "message": f"用户名'{username}'在{class_id}班已被使用"} # 8. 创建用户记录 password_hash = hash_password(password) user_id = create_user({ 'class_id': class_id, 'username': username, 'real_name': real_name, 'full_email': full_email, 'password_hash': password_hash, 'display_name': real_name # 默认显示名为真实姓名 }) return { "success": True, "message": "注册成功", "email": full_email, "user_id": user_id } ``` ### 通信协议 采用HTTP RESTful API进行通信: #### API接口设计 1. **用户注册** - `POST /api/register` - 参数: ```json { "class_id": 1, // 班级ID(1-5) "username": "alice", // 用户名(仅英文字母,3-20字符) "real_name": "张三", // 学生真实姓名 "password": "password123", // 密码(至少6位) "confirm_password": "password123", // 密码确认 "display_name": "Alice" // 显示名称(可选) } ``` - 返回: ```json { "success": true, "message": "注册成功", "email": "1alice@test.com", // 生成的完整邮箱地址 "user_id": 123, "user_info": { "class_id": 1, "username": "alice", "real_name": "张三", "full_email": "1alice@test.com", "display_name": "Alice" } } ``` - 错误返回示例: ```json { "success": false, "message": "用户名'alice'在1班已被使用", "error_code": "USERNAME_EXISTS" } ``` 2. **用户登录** - `POST /api/login` - 参数: ```json { "email": "1alice@test.com", // 完整邮箱地址 "password": "password123" } ``` - 返回: ```json { "success": true, "token": "jwt_token_here", "user_info": { "id": 123, "email": "1alice@test.com", "class_id": 1, "username": "alice", "display_name": "Alice" } } ``` 3. **获取班级列表** - `GET /api/classes` - 返回: ```json { "success": true, "classes": [ {"id": 1, "name": "一班"}, {"id": 2, "name": "二班"}, {"id": 3, "name": "三班"}, {"id": 4, "name": "四班"}, {"id": 5, "name": "五班"} ] } ``` 4. **检查用户名可用性** - `POST /api/check_username` - 参数: ```json { "class_id": 1, "username": "alice" } ``` - 返回: ```json { "success": true, "available": false, "message": "该用户名已被使用", "suggested_email": "1alice@test.com", "validation_errors": [ { "field": "username", "message": "用户名只能包含英文字母" } ] } ``` 5. **密码强度验证** - `POST /api/validate_password` - 参数: ```json { "password": "password123" } ``` - 返回: ```json { "success": true, "valid": true, "strength": "medium", "requirements": { "min_length": true, "has_letter": true, "has_number": true, "has_special": false }, "suggestions": [ "建议添加特殊字符以提高密码强度" ] } ``` 6. **发送邮件** - `POST /api/send_email` - 参数: ```json { "token": "jwt_token_here", "subject": "邮件主题", "content": "邮件内容" } ``` - 返回: ```json { "success": true, "message": "邮件发送成功", "email_id": 456 } ``` 7. **获取邮件列表**(教师端) - `GET /api/emails?class_id=1&page=1&limit=20` - 返回: ```json { "success": true, "emails": [ { "id": 456, "sender_email": "1alice@test.com", "sender_class_id": 1, "sender_real_name": "张三", "subject": "邮件主题", "content": "邮件内容", "sent_at": "2024-01-01 10:00:00", "is_read": false } ], "total": 100, "page": 1, "limit": 20 } ``` 8. **获取班级统计**(教师端) - `GET /api/stats/class/{class_id}` - 返回: ```json { "success": true, "stats": { "class_id": 1, "class_name": "一班", "total_users": 25, "active_users": 23, "total_emails": 150, "unread_emails": 12, "recent_registrations": 3 } } ``` ## 前端界面设计 #### 注册表单设计 **网页模式注册表单**: ```html

学生注册

用户名将用于生成邮箱地址
``` **命令行模式注册流程**: ```python def cli_register(): """命令行注册界面""" print("\n" + "="*50) print(" 学生注册系统") print("="*50) # 班级选择 while True: print("\n可选班级:") for i in range(1, 6): print(f" {i}. {i}班") try: class_id = int(input("\n请选择班级 (1-5): ")) if 1 <= class_id <= 5: break else: print("❌ 请输入1-5之间的数字") except ValueError: print("❌ 请输入有效的数字") # 用户名输入 while True: username = input("\n请输入用户名 (仅英文字母,3-20字符): ").strip() if not username: print("❌ 用户名不能为空") continue if not re.match(r'^[a-zA-Z]{3,20}$', username): print("❌ 用户名只能包含英文字母,长度3-20字符") continue # 检查用户名可用性 if check_username_available(class_id, username): break else: print(f"❌ 用户名'{username}'在{class_id}班已被使用,请选择其他用户名") # 真实姓名输入 while True: real_name = input("\n请输入真实姓名: ").strip() if not real_name: print("❌ 真实姓名不能为空") continue if 2 <= len(real_name) <= 50: break else: print("❌ 真实姓名长度应在2-50字符之间") # 密码输入 while True: password = getpass.getpass("\n请输入密码 (至少6位): ") if len(password) < 6: print("❌ 密码长度至少6位") continue confirm_password = getpass.getpass("请确认密码: ") if password == confirm_password: break else: print("❌ 两次输入的密码不一致") # 显示注册信息确认 email = f"{class_id}{username}@test.com" print(f"\n注册信息确认:") print(f"班级: {class_id}班") print(f"用户名: {username}") print(f"真实姓名: {real_name}") print(f"邮箱地址: {email}") confirm = input("\n确认注册?(y/N): ").lower() if confirm == 'y': # 执行注册 result = register_user(class_id, username, real_name, password, confirm_password) if result['success']: print(f"\n✅ 注册成功!") print(f"您的邮箱地址是: {result['email']}") print("现在可以开始发送邮件了!") else: print(f"\n❌ 注册失败: {result['message']}") else: print("\n注册已取消") ``` **实时验证功能**: - 用户名输入时实时检查格式和可用性 - 密码强度实时显示 - 邮箱地址实时预览 - 表单完整性验证 - 友好的错误提示信息 ### 一键部署设计 #### 学生端部署 1. **便携式Python环境** - 使用Python嵌入式版本(无需安装) - 预配置所有依赖库 - 内置在学生端目录中 2. **学生端文件结构** ``` student_client/ ├── python_portable/ # 便携式Python环境(内置) │ ├── python/ # Python解释器和库 │ ├── setup_portable_python.bat # Python环境安装脚本 │ └── README.md # 环境说明 ├── cli_client/ # 命令行模式客户端 │ ├── cli_main.py # 命令行主程序 │ ├── start_cli.py # 命令行启动脚本 │ └── start_cli.bat # 命令行启动批处理 ├── web_client/ # 网页模式客户端 │ ├── web_app.py # Flask本地服务器 │ ├── start_web.py # 网页启动脚本 │ ├── start_web.bat # 网页启动批处理 │ ├── templates/ # HTML模板 │ │ ├── login.html # 登录页面 │ │ ├── inbox.html # 收件箱页面 │ │ └── compose.html # 写邮件页面 │ └── static/ # 静态资源 │ ├── css/ # 样式文件 │ ├── js/ # JavaScript文件 │ └── images/ # 图片资源 ├── start_with_env.py # 统一启动器(虚拟环境版) ├── setup_env.py # 虚拟环境配置脚本 ├── 启动学生客户端.bat # 主启动脚本 └── README_虚拟环境.md # 虚拟环境使用说明 ``` 3. **多模式启动选项** - 双击 `启动学生客户端.bat` 启动统一菜单 - 选择命令行模式或网页模式 - 自动检测教师机IP地址 - 自动连接到服务器 #### 教师端部署 1. **服务器环境** - 使用系统Python环境 - 自动检测并安装Python(如未安装) - 自动安装所需依赖包 2. **教师端文件结构** ``` teacher_server/ ├── app.py # Flask应用主文件 ├── start_server.py # 服务器启动脚本 ├── 启动教师服务器.bat # 服务器启动批处理 ├── templates/ # HTML模板 │ ├── dashboard.html # 管理仪表板 │ ├── mailbox.html # 邮箱管理 │ ├── send_email.html # 邮件发送 │ └── student_management.html # 学生管理 ├── static/ # 静态资源 │ ├── css/ # 样式文件 │ ├── js/ # JavaScript文件 │ └── images/ # 图片资源 └── database/ # 数据库文件目录 ``` ### 网络配置 #### 简化网络设置 - **自动IP发现**:学生端自动扫描局域网寻找教师机 - **固定端口**:使用8080端口,避免端口冲突 - **防火墙提示**:提供防火墙配置指导 #### 教室网络适配 - **支持WiFi和有线网络** - **支持教室投影系统** - **网络故障自动重连** ## 使用流程 ### 教师操作流程 #### 服务器启动 1. 在教师机上运行 `teacher_server/启动教师服务器.bat` 2. 系统自动检测Python环境,如未安装则自动下载安装 3. 自动安装所需依赖包(Flask、requests等) 4. 启动服务器并显示IP地址 5. 将IP地址告知学生或使用自动发现功能 #### 教师端管理界面使用 **1. 访问管理界面** - 打开浏览器访问 `http://localhost:8080/dashboard` - 查看系统概览和统计信息 **2. 邮箱管理** - 访问 `/mailbox` 查看所有学生邮件 - 点击邮件查看详细内容 - 使用筛选功能按发送者或时间筛选邮件 - 标记邮件为已读/未读 - 回复或删除邮件 **3. 发送邮件** - 访问 `/send_email` 进入邮件发送页面 - 选择发送模式: - **单独发送**:选择特定学生 - **多选发送**:勾选多个学生 - **一键群发**:发送给所有学生 - 填写邮件主题和内容 - 点击发送,系统显示发送状态 **4. 学生管理** - 访问 `/student_management` 查看学生状态 - 查看学生列表和详细信息 - 监控学生在线/离线状态 - 执行管理操作: - 踢出在线学生 - 重置学生密码 - 批量操作(踢出所有在线学生、重置所有密码) **5. 系统设置** - 访问 `/admin/settings` 进行系统配置 - 控制学生端功能开关 - 设置界面模式和安全参数 **6. 数据库管理** - 访问 `/database_management` 进行数据库管理 - 查看数据库统计信息 - 浏览用户表和邮件表数据 - 执行SQL查询(仅限SELECT语句) - 进行数据库备份、清理和重置操作 **7. 教学演示功能** - 通过管理界面监控所有学生邮件收发情况 - 实时查看学生活动状态 - 大屏幕展示系统使用情况 ### 学生操作流程 #### 注册流程 1. **启动客户端**:运行 `student_client/启动学生客户端.bat` 2. **选择模式**:在启动菜单中选择命令行模式或网页模式 3. **选择注册**:在界面中选择"注册新用户" 4. **填写信息**: - 选择班级(1-5班) - 输入用户名(仅英文字母,3-20字符) - 输入真实姓名(2-50字符) - 设置密码(至少6位) - 确认密码 5. **系统验证**:自动检查用户名可用性和格式 6. **生成邮箱**:系统自动生成邮箱地址(如:1alice@test.com) 7. **注册完成**:显示生成的邮箱地址,可开始发送邮件 #### 命令行模式体验(早期邮箱) 1. 将 `student_client/` 文件夹复制到学生机 2. 双击 `启动学生客户端.bat` 启动统一菜单 3. 选择 "1. 启动命令行客户端" 4. 看到类似早期邮箱的文本界面: ``` ======================================== 欢迎使用教学邮箱系统 (命令行版本) ======================================== 请选择操作: 1. 用户注册 2. 用户登录 3. 发送邮件 4. 查看帮助 5. 退出系统 请输入选项 (1-5): 1 === 用户注册 === 请选择班级 (1-5): 1 请输入用户名 (仅英文字母): alice 请输入真实姓名: 张三 请输入密码: ****** 请确认密码: ****** 注册成功!您的邮箱地址是: 1alice@test.com ``` 5. 通过输入数字选择功能,体验早期邮箱操作方式 #### 网页模式体验(现代邮箱) 1. 双击 `启动学生客户端.bat` 启动统一菜单 2. 选择 "2. 启动网页客户端" 3. 系统自动打开浏览器,显示现代化邮箱界面 4. 通过图形界面进行注册、登录和邮件操作(带实时验证) 5. 享受现代邮箱的便捷体验 #### 部署说明 **学生机部署**: - 只需复制 `student_client/` 文件夹到学生机 - 便携式Python环境已内置,无需安装Python - 双击启动脚本即可使用 **教师机部署**: - 只需 `teacher_server/` 文件夹 - 如系统未安装Python,启动脚本会自动下载安装 - 自动安装所需依赖包 ## 教学优势 ### 历史对比学习 - **技术演进体验**:通过命令行和网页两种模式,直观感受邮箱技术发展 - **操作方式对比**:从文本命令到图形界面的用户体验变化 - **界面设计演变**:从简单文本到现代化Web界面的设计理念变化 ### 简单易用 - **零配置启动**:学生无需任何技术背景 - **多种体验方式**:可选择命令行或网页模式,满足不同学习需求 - **即时反馈**:操作结果立即显示 ### 教学友好 - **离线运行**:不依赖外网,适合教室环境 - **可控环境**:教师完全掌控系统状态 - **演示友好**:支持大屏幕投影演示,可同时展示两种模式 ### 扩展性强 - **模块化设计**:易于添加新功能 - **配置灵活**:可根据教学需要调整 - **多平台支持**:Windows/Mac/Linux通用 ## 开发计划 ### 第一阶段:基础功能 - [ ] 用户注册/登录系统(双模式共享) - [ ] 命令行模式基本邮件发送功能 - [ ] 网页模式基本邮件发送功能 - [ ] 教师端邮件接收和管理 - [ ] 简单的命令行界面和Web界面 ### 第二阶段:完善功能 - [ ] 邮件列表和查看(双模式) - [ ] 用户管理界面 - [ ] 错误处理和状态提示 - [ ] 双模式一键部署脚本 - [ ] 自动IP发现功能 ### 第三阶段:优化体验 - [ ] 命令行界面美化(彩色文本、ASCII艺术) - [ ] 网页界面现代化设计 - [ ] 性能优化 - [ ] 教学演示功能(对比模式) - [ ] 使用文档完善 ## 技术要求 ### 系统要求 - **操作系统**:Windows 7/10/11 - **内存**:最低2GB RAM - **存储空间**:100MB可用空间 - **网络**:局域网连接 ### 开发环境 - **Python版本**:3.8+ - **开发工具**:推荐使用VS Code或PyCharm - **版本控制**:Git ## 注意事项 1. **安全性**:本系统仅用于教学演示,不适用于生产环境 2. **数据保护**:建议定期备份邮件数据 3. **网络安全**:在公共网络环境中使用时需注意安全 4. **版权说明**:本项目仅供教学使用,请勿用于商业用途 --- *本文档将根据开发进度持续更新*