60sapi接口搭建完毕,数据库连接测试成功,登录注册部分简单完成

This commit is contained in:
2025-09-02 19:45:50 +08:00
parent b139fb14d9
commit e1f8885c6c
150 changed files with 53045 additions and 8 deletions

View File

@@ -0,0 +1,92 @@
# InfoGenie 邮件服务修复说明
## 修复内容
### 问题描述
原始的 `email_service.py` 中的邮件发送功能存在问题,无法正常发送验证码邮件。
### 修复方案
参考成功的 `QQEmailSendAPI.py` 实现,对 `email_service.py` 进行了以下修复:
1. **SMTP连接方式优化**
-`with smtplib.SMTP_SSL()` 改为直接使用 `smtplib.SMTP_SSL()`
- 显式调用 `smtp_obj.quit()` 关闭连接
2. **邮件头设置优化**
- 确保 `From` 字段直接使用邮箱地址,不使用 `Header` 包装
- 保持与成功实现的一致性
3. **错误处理增强**
- 添加了针对 `SMTPAuthenticationError` 的专门处理
- 添加了针对 `SMTPConnectError` 的专门处理
- 提供更详细的错误信息
4. **调试信息优化**
- 添加了适量的日志输出用于问题诊断
- 移除了生产环境不安全的验证码返回
## 配置要求
### 环境变量
确保设置以下环境变量:
```bash
MAIL_USERNAME=your-qq-email@qq.com
MAIL_PASSWORD=your-qq-auth-code
```
### QQ邮箱授权码
1. 登录QQ邮箱
2. 进入设置 -> 账户
3. 开启SMTP服务
4. 获取授权码不是QQ密码
## 使用方法
### 发送验证码
```python
from modules.email_service import send_verification_email
# 发送注册验证码
result = send_verification_email('user@qq.com', 'register')
# 发送登录验证码
result = send_verification_email('user@qq.com', 'login')
```
### 验证验证码
```python
from modules.email_service import verify_code
# 验证用户输入的验证码
result = verify_code('user@qq.com', '123456')
```
## 测试
运行测试脚本验证功能:
```bash
cd backend
python test/test_email_fix.py
```
## 支持的邮箱
目前仅支持QQ邮箱系列
- @qq.com
- @vip.qq.com
- @foxmail.com
## 注意事项
1. **安全性**验证码不会在API响应中返回仅通过邮件发送
2. **有效期**验证码有效期为5分钟
3. **尝试次数**每个验证码最多可尝试验证3次
4. **频率限制**:建议添加发送频率限制防止滥用
## 修复文件
- `backend/modules/email_service.py` - 主要修复文件
- `backend/test/test_email_fix.py` - 测试脚本
- `backend/邮件服务修复说明.md` - 本说明文档
修复完成后,邮件发送功能已正常工作,可以成功发送注册和登录验证码邮件。