API DOCUMENTATION

接口文档

控制台现在由 FastAPI 提供,邮件存储位于 PostgreSQL,邮件写入入口由 Cloudflare Worker 调用内部接口。

文档说明
所有接口都需要 Authorization: Bearer API_TOKEN

认证验证

GET /api/auth/verify

用于验证当前 Token 是否正确。

fetch("/api/auth/verify", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + token
  }
});

邮件列表

GET /api/mails
  • rcptTo: 可选,按收件邮箱过滤。
  • after: 可选,开始时间,ISO 字符串。
  • before: 可选,结束时间,ISO 字符串。
  • page: 页码,从 1 开始。
  • pageSize: 每页条数,最大 100。
const params = new URLSearchParams({
  rcptTo: "[email protected]",
  page: "1",
  pageSize: "20"
});

fetch("/api/mails?" + params.toString(), {
  method: "GET",
  headers: {
    Authorization: "Bearer " + token
  }
});

邮件详情

GET /api/mails/{id}

返回单封邮件的基础信息、头信息和原始内容。

fetch("/api/mails/MAIL_ID", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + token
  }
});

系统自动清理配置

GET / PUT /api/admin/auto-cleanup

用于读取或更新后端自动清理开关与执行间隔。系统默认清理 10 分钟前的邮件。

fetch("/api/admin/auto-cleanup", {
  method: "PUT",
  headers: {
    Authorization: "Bearer " + token,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    enabled: true,
    intervalMinutes: 10
  })
});

手动历史清理

POST /api/admin/cleanup-history

仅在你手动触发时执行清理,也可传入 JSON body 指定 before 时间;不传时默认清理一天前的邮件。

fetch("/api/admin/cleanup-history", {
  method: "POST",
  headers: {
    Authorization: "Bearer " + token,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    before: "2025-01-01T00:00:00.000Z"
  })
});

内部写入接口

POST /internal/emails

仅供 Cloudflare Worker 调用,负责把收到的邮件落到 PostgreSQL。

fetch("/internal/emails", {
  method: "POST",
  headers: {
    Authorization: "Bearer " + token,
    "Content-Type": "application/json"
  },
  body: JSON.stringify(payload)
});

兼容接口

  • GET /api/mail/{email}?after=&before=&page=1&pageSize=20
  • GET /api/mail/{email}/{id}