4.2 KiB
4.2 KiB
Stalwart 邮件 Web API 部署指南
本文档介绍如何将Stalwart邮件API客户端部署为Web服务,通过HTTP API提供邮箱管理功能。
特点
- RESTful API设计
- 默认使用API Key认证方式
- JSON格式请求和响应
- 支持所有命令行工具的功能
- 易于集成到现有系统
API端点
| 端点 | 方法 | 描述 |
|---|---|---|
/api/create_user |
POST | 创建新邮箱用户 |
/api/list_users |
GET | 获取用户列表 |
/api/get_user |
GET | 获取单个用户信息 |
/api/get_emails |
POST | 获取用户邮件 |
/health |
GET | 健康检查 |
构建和部署
1. 编译Web服务器
cd go_stalwart_client
go build -o bin/stalwart-web-server cmd/web_server/main.go
2. 准备配置文件
确保config/config.yaml文件已正确配置,特别是API Key:
api:
base_url: https://mail.evnmail.com/api
disable_proxy: true
user:
default_domain: evnmail.com
default_quota: 1073741824
auth:
basic:
username: admin
password: your_password_here
api_key: api_your_api_key_here
3. 部署到Linux服务器
3.1 复制文件到服务器
# 创建目录
ssh user@your-server "mkdir -p /usr/local/bin /etc/stalwart"
# 复制可执行文件
scp bin/stalwart-web-server user@your-server:/usr/local/bin/
# 复制配置文件
scp config/config.yaml user@your-server:/etc/stalwart/
# 复制服务文件
scp stalwart-api.service user@your-server:/etc/systemd/system/
3.2 设置权限
ssh user@your-server "chmod +x /usr/local/bin/stalwart-web-server"
3.3 创建用户和组(如果需要)
ssh user@your-server "useradd -r -s /bin/false stalwart"
3.4 生成API Token并更新服务文件
在服务器上运行一次Web服务器以生成API Token:
/usr/local/bin/stalwart-web-server -c /etc/stalwart/config.yaml
复制生成的API Token,然后更新服务文件:
sudo vim /etc/systemd/system/stalwart-api.service
# 将YOUR_API_TOKEN替换为生成的Token
3.5 启动服务
sudo systemctl daemon-reload
sudo systemctl enable stalwart-api
sudo systemctl start stalwart-api
sudo systemctl status stalwart-api
4. 部署到Windows服务器
4.1 使用NSSM(Non-Sucking Service Manager)
- 下载NSSM: https://nssm.cc/download
- 安装服务:
nssm install StalwartAPI D:\path\to\stalwart-web-server.exe -p 8080 -c D:\path\to\config.yaml -t YOUR_API_TOKEN
nssm set StalwartAPI AppDirectory D:\path\to\
nssm start StalwartAPI
API使用示例
创建用户
curl -X POST http://your-server:8080/api/create_user \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "newuser@evnmail.com",
"description": "新用户",
"quota": 1073741824
}'
响应:
{
"id": 123,
"username": "newuser",
"email": "newuser@evnmail.com",
"password": "A8f2@xLp9q!Z",
"success": true,
"message": "用户创建成功"
}
获取用户列表
curl -X GET "http://your-server:8080/api/list_users?limit=10&page=1" \
-H "Authorization: Bearer YOUR_API_TOKEN"
获取用户信息
curl -X GET "http://your-server:8080/api/get_user?email=user@evnmail.com" \
-H "Authorization: Bearer YOUR_API_TOKEN"
获取邮件
curl -X POST http://your-server:8080/api/get_emails \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "user@evnmail.com",
"password": "userpassword",
"count": 5
}'
注意事项
-
安全性:
- 使用HTTPS部署Web服务
- 保护API Token,不要泄露
- 定期更换API Token
-
资源考虑:
- 对于高负载环境,考虑增加服务器资源
- 对于大规模部署,考虑负载均衡
-
监控:
- 定期检查服务状态
- 设置日志轮转
- 监控API调用频率和响应时间
故障排除
-
服务无法启动
- 检查配置文件路径是否正确
- 确认API服务器地址可访问
- 检查端口是否被占用
-
认证失败
- 确认API Token是否正确设置
- 检查Authorization头格式
-
API请求失败
- 检查请求格式和参数
- 查看服务器日志获取详细错误信息