管理操作 API
管理操作 API 提供了执行各种管理任务的接口,如重试失败邮件、手动清理队列等。这些接口需要更高的权限,默认只接受本地连接。
重试失败邮件
端点信息
- URL:
/admin/retry-failed
- 方法: POST
- 权限: 仅本地连接
说明
触发一个后台任务,尝试重新发送之前发送失败的邮件。这些邮件存储在 emails/failed
目录中。
请求参数
无需请求参数。
响应格式
json
{
"status": "ok",
"message": "已开始处理失败邮件"
}
使用示例
bash
curl -X POST http://localhost:8025/admin/retry-failed
计划中的管理 API
以下管理 API 功能目前尚未实现,但已计划在未来版本中添加:
清理队列
- URL:
/admin/clean-queue
- 方法: POST
- 功能: 清理邮件队列中的所有待处理邮件
清理旧邮件
- URL:
/admin/clean-old-emails
- 方法: POST
- 功能: 清理超过一定天数的已处理邮件
更新配置
- URL:
/admin/config
- 方法: GET/POST
- 功能: 获取或更新运行时配置,无需重启服务
服务控制
- URL:
/admin/service
- 方法: POST
- 功能: 控制服务状态(暂停/恢复发送)
安全考虑
由于管理 API 具有执行关键操作的能力,请注意以下安全措施:
- 确保仅本地访问:管理 API 默认只接受来自
127.0.0.1
和localhost
的连接 - 使用反向代理添加认证:如果需要远程访问,建议设置反向代理并添加额外的认证
- 限制 API 访问频率:避免过于频繁地调用这些 API,特别是重试失败邮件的功能
使用 Webhook 触发管理操作
对于需要定期执行的管理任务,可以设置定时作业调用相应的 API。例如,使用 cron 定期触发失败邮件重试:
bash
# 每小时重试一次失败邮件
0 * * * * curl -X POST http://localhost:8025/admin/retry-failed
# 每天凌晨2点清理旧邮件
0 2 * * * curl -X POST http://localhost:8025/admin/clean-old-emails
日志和审计
所有管理 API 的调用都会记录在服务日志中,包括:
- 操作时间
- 操作类型
- 操作结果
- 请求来源 IP
这些日志信息对于安全审计和故障排查非常重要。可以通过查看服务的标准输出或日志文件访问这些记录。