Skip to content

管理操作 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 具有执行关键操作的能力,请注意以下安全措施:

  1. 确保仅本地访问:管理 API 默认只接受来自 127.0.0.1localhost 的连接
  2. 使用反向代理添加认证:如果需要远程访问,建议设置反向代理并添加额外的认证
  3. 限制 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

这些日志信息对于安全审计和故障排查非常重要。可以通过查看服务的标准输出或日志文件访问这些记录。

基于 MIT 许可证发布