增强:添加批量注册功能和支持文件
This commit is contained in:
168
README.md
168
README.md
@@ -1,32 +1,154 @@
|
||||
# 邮件系统
|
||||
# 邮件系统使用指南
|
||||
|
||||
这是一个基于Python的完整邮件系统解决方案,提供SMTP服务和API接口管理。
|
||||
这是一个自托管的邮件系统,用于接收和处理电子邮件,特别适用于批量注册和验证场景。
|
||||
|
||||
## 功能特点
|
||||
## 系统特性
|
||||
|
||||
- SMTP服务器接收和发送邮件
|
||||
- 邮箱管理API接口
|
||||
- 配置灵活,支持多域名
|
||||
- 支持Docker部署
|
||||
- 包含监控和性能测试工具
|
||||
- 自动接收邮件并存储到数据库
|
||||
- 提供API接口查询和管理邮件
|
||||
- 支持通过邮箱地址直接查询最新邮件
|
||||
- 提供验证码自动提取功能
|
||||
- 支持批量注册和验证操作
|
||||
- 支持邮件附件的处理和下载
|
||||
|
||||
## 目录结构
|
||||
## 安装和配置
|
||||
|
||||
- `app/`: 应用主代码
|
||||
- `api/`: API接口实现
|
||||
- `models/`: 数据模型
|
||||
- `services/`: 业务逻辑服务
|
||||
- `templates/`: 模板文件
|
||||
- `config.py`: 配置文件
|
||||
- `run.py`: 主程序入口
|
||||
- `monitor_email_system.py`: 监控工具
|
||||
- `performance_test.py`: 性能测试工具
|
||||
- `deploy_production.sh`: 生产环境部署脚本
|
||||
### 系统要求
|
||||
|
||||
## 部署方法
|
||||
- Python 3.7+
|
||||
- SQLite 或 MySQL 数据库
|
||||
- 开放的网络端口(SMTP: 25, HTTP: 5000)
|
||||
|
||||
详细部署步骤请参考 `DEPLOYMENT_GUIDE.md`。
|
||||
### 安装步骤
|
||||
|
||||
## 许可证
|
||||
1. 克隆代码库:
|
||||
```bash
|
||||
git clone https://github.com/yourusername/emailsystem.git
|
||||
cd emailsystem
|
||||
```
|
||||
|
||||
此项目采用MIT许可证。
|
||||
2. 安装依赖:
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
3. 配置系统:
|
||||
```bash
|
||||
cp config.example.py config.py
|
||||
# 编辑config.py文件设置相关参数
|
||||
```
|
||||
|
||||
4. 启动系统:
|
||||
```bash
|
||||
python run.py --host 0.0.0.0 --port 5000 --smtp-port 25
|
||||
```
|
||||
|
||||
5. 设置为系统服务(可选):
|
||||
```bash
|
||||
sudo cp email-system.service /etc/systemd/system/
|
||||
sudo systemctl enable email-system
|
||||
sudo systemctl start email-system
|
||||
```
|
||||
|
||||
## API使用指南
|
||||
|
||||
### 获取邮箱列表
|
||||
|
||||
```
|
||||
GET /api/domains/{domain_id}/mailboxes
|
||||
```
|
||||
|
||||
### 获取指定邮箱的邮件
|
||||
|
||||
```
|
||||
GET /api/mailboxes/{mailbox_id}/emails
|
||||
```
|
||||
|
||||
### 直接通过邮箱地址获取邮件
|
||||
|
||||
```
|
||||
GET /api/emails/by-address?email_address=user@example.com&limit=10&unread_only=true
|
||||
```
|
||||
|
||||
参数说明:
|
||||
- `email_address`: 邮箱地址
|
||||
- `limit`: 返回邮件数量限制(可选,默认10)
|
||||
- `unread_only`: 是否只返回未读邮件(可选,默认false)
|
||||
- `since`: 获取指定时间之后的邮件(可选,格式:YYYY-MM-DDTHH:MM:SS)
|
||||
|
||||
### 获取邮件详情
|
||||
|
||||
```
|
||||
GET /api/emails/{email_id}
|
||||
```
|
||||
|
||||
### 检查系统状态
|
||||
|
||||
```
|
||||
GET /api/status
|
||||
```
|
||||
|
||||
## 使用示例
|
||||
|
||||
### 使用API客户端
|
||||
|
||||
```python
|
||||
from email_api_client import EmailApiClient
|
||||
|
||||
# 创建客户端实例
|
||||
client = EmailApiClient(base_url="http://localhost:5000/api")
|
||||
|
||||
# 检查系统状态
|
||||
status = client.check_system_status()
|
||||
print(f"系统状态: {status}")
|
||||
|
||||
# 获取指定邮箱的最新邮件
|
||||
emails = client.get_emails_by_address("user@example.com", limit=5)
|
||||
print(f"获取到 {len(emails)} 封邮件")
|
||||
|
||||
# 等待特定邮件并提取验证码
|
||||
email = client.wait_for_email(
|
||||
"user@example.com",
|
||||
timeout=30,
|
||||
subject="验证",
|
||||
keyword="验证码"
|
||||
)
|
||||
if email:
|
||||
verification_code = client.extract_verification_code(email)
|
||||
print(f"验证码: {verification_code}")
|
||||
```
|
||||
|
||||
### 运行批量注册示例
|
||||
|
||||
```bash
|
||||
python batch_registration_example.py --domain example.com --count 10 --concurrent 3
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 系统需要开放25端口用于接收邮件,请确保服务器防火墙已配置
|
||||
2. 默认情况下,系统会接收任何发往配置域名的邮件
|
||||
3. 邮件存储在数据库中,附件存储在文件系统中
|
||||
4. 系统不支持发送邮件功能
|
||||
|
||||
## 故障排除
|
||||
|
||||
1. 如果无法接收邮件,请检查:
|
||||
- SMTP端口是否开放
|
||||
- DNS MX记录是否正确配置
|
||||
- 防火墙设置
|
||||
|
||||
2. 如果API无法访问,请检查:
|
||||
- HTTP端口是否开放
|
||||
- 应用日志中是否有错误信息
|
||||
- 数据库连接是否正常
|
||||
|
||||
## 更多资源
|
||||
|
||||
- [API文档](docs/api.md)
|
||||
- [配置选项](docs/configuration.md)
|
||||
- [开发指南](docs/development.md)
|
||||
|
||||
## 维护与支持
|
||||
|
||||
如有问题或需要支持,请创建GitHub issue或联系维护人员。
|
||||
Reference in New Issue
Block a user