Files
emailsystem/README.md
2025-02-26 10:16:12 +08:00

154 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 邮件系统使用指南
这是一个自托管的邮件系统,用于接收和处理电子邮件,特别适用于批量注册和验证场景。
## 系统特性
- 自动接收邮件并存储到数据库
- 提供API接口查询和管理邮件
- 支持通过邮箱地址直接查询最新邮件
- 提供验证码自动提取功能
- 支持批量注册和验证操作
- 支持邮件附件的处理和下载
## 安装和配置
### 系统要求
- Python 3.7+
- SQLite 或 MySQL 数据库
- 开放的网络端口SMTP: 25, HTTP: 5000
### 安装步骤
1. 克隆代码库:
```bash
git clone https://github.com/yourusername/emailsystem.git
cd emailsystem
```
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或联系维护人员。