Cloudflare 域名邮箱系统 临时邮箱系统 支持API 调用 支持多渠道发件 支持用户管理 domain mail tempmail
See the code🇨🇳 中文 | 🌐 English
一个基于 Cloudflare Workers + D1 + R2 构建的前后端分离的开源临时邮箱服务,支持 RESTful API 调用,适配多渠道发件,支持邮件接收、发送、转发、用户管理等功能。
当前版本:V5.3.1 - 新增 Cyberpersons 发件渠道,按发件人域名自动路由 Resend / SendFlare / Cyberpersons
本邮箱服务支持接收邮件时自动创建对应的邮箱,邮箱服务的转发目标邮箱地址需要在cloudflare Email Addresses中验证
📖 一键部署指南 | 🤖 Github Action 部署指南 | 📬 Resend 发件配置 | 🚀 SendFlare 发件配置 | ☁️ Cyberpersons 发件配置 | 📚 API 文档
| 首页 | 所有邮箱 |
|---|---|
![]() | ![]() |
| 用户管理 | 单个邮箱登录 |
|---|---|
![]() | ![]() |
| 类别 | 特性 |
|---|---|
| 📧 邮箱管理 | 随机生成临时邮箱 · 多域名支持 · 置顶/收藏 · 历史记录 · 邮箱搜索 |
| 💌 邮件功能 | 实时接收 · 自动刷新 · 验证码智能提取 · HTML/纯文本 · 邮件转发 |
| ✉️ 发件支持 | 多渠道发件(Resend / SendFlare / Cyberpersons)· 按域名自动路由 |
| ⚡ 技术架构 | Cloudflare Workers · D1 数据库 · R2 存储 · Email Routing |
| 版本 | 主要更新 |
|---|---|
| V5.3.1 | 新增 Cyberpersons(CyberPanel Email Delivery)发件渠道 |
| V5.3.0 | 发件模块抽象为 src/email/providers/ · 新增 SendFlare 渠道· 按发件人域名自动路由 · sent_emails 表新增 provider 字段 |
| V5.2.0 | 引入 postal-mime 改进邮件解析 · 修复部分客户端中文乱码问题 |
| V5.1.0 | 邮箱别名规范化支持扩展,支持 . + - 三种分隔符切分 |
| V1.0~v4.0 | 邮箱生成 · 邮件接收 · 验证码提取 · 用户管理后台 · R2 存储 EML |
使用 Git 集成部署时,请在 Workers → Settings → Variables 中手动配置环境变量
本地运行适合调试前端页面、管理接口和发件逻辑。真实收信依赖 Cloudflare Email Routing,仍需要部署到 Cloudflare Workers 后才能完整验证。
npm install
按需修改 wrangler.toml 中的 [vars]、D1 和 R2 绑定。至少建议设置:
ADMIN_NAME = "admin"
ADMIN_PASSWORD = "your_admin_password"
JWT_TOKEN = "your_random_jwt_secret"
MAIL_DOMAIN = "example.com"
npx wrangler d1 execute maill_free_db --local --file=./d1-init.sql
如果你修改了 wrangler.toml 中的 database_name,请把上面的 maill_free_db 替换为你的数据库名称。
npx wrangler dev
启动后访问 Wrangler 输出的本地地址即可。默认管理员账号为 admin,密码使用 ADMIN_PASSWORD。
| 变量名 | 说明 | 必需 |
|---|---|---|
| TEMP_MAIL_DB | D1 数据库绑定 | 是 |
| MAIL_EML | R2 存储桶绑定 | 是 |
| MAIL_DOMAIN | 邮箱域名,多个用逗号分隔 | 是 |
| ADMIN_PASSWORD | 严格管理员密码 | 是 |
| ADMIN_NAME | 严格管理员用户名(默认 admin) | 否 |
| JWT_TOKEN | JWT 签名密钥 | 是 |
| RESEND_API_KEY | Resend 发件密钥,支持多域名配置 | 否 |
| SENDFLARE_API_KEY | SendFlare 发件密钥,格式同 Resend | 否 |
| CYBERPERSONS_API_KEY | Cyberpersons 发件密钥,格式同 Resend | 否 |
| FORWARD_RULES | 邮件转发规则 | 否 |
三个渠道密钥都支持相同的三种格式:
# 单密钥(通配所有发件域名)
RESEND_API_KEY="re_xxxxxxxxxxxxxxxxxxxxxxxx"
SENDFLARE_API_KEY="live_xxxxxxxxxxxxxxxxxxxxxxxx"
CYBERPERSONS_API_KEY="sk_lera_xxxxxxxxxxxxxxxxxxxxxxxx"
# 键值对格式(推荐,多域名独立计费 / 限额)
RESEND_API_KEY="domain1.com=re_key1,domain2.com=re_key2"
SENDFLARE_API_KEY="domain3.com=live_key3"
CYBERPERSONS_API_KEY="domain4.com=sk_live_key4"
# JSON格式
RESEND_API_KEY='{"domain1.com":"re_key1","domain2.com":"re_key2"}'
渠道路由规则(三个渠道都配置时):
注意:SendFlare 与 Cyberpersons 暂不支持发件查询、修改 scheduled_at、取消已调度 邮件,相关接口对这两个渠道发出的邮件会返回 400「SendFlare / Cyberpersons 渠道 暂不支持此操作」。
发件模块已抽象到 src/email/providers/,新增渠道通常不需要改动前端或业务路由。适配步骤请参考 发件渠道适配文档。
规则按前缀匹配,* 为兜底规则。
⚠️ 重要:转发目标邮箱必须在 Cloudflare 控制台中验证后才能使用:

# 键值对格式
FORWARD_RULES="[email protected],[email protected],*[email protected]"
# JSON格式
FORWARD_RULES='[{"prefix":"vip","email":"[email protected]"},{"prefix":"*","email":"[email protected]"}]'
# 禁用转发
FORWARD_RULES="" 或 "disabled" 或 "none"
TEMP_MAIL_DB,检查 database_id# 本地调试
wrangler dev
# 查看实时日志
wrangler tail
# 检查数据库
wrangler d1 execute TEMP_MAIL_DB --command "SELECT * FROM mailboxes LIMIT 10"
ADMIN_PASSWORD 和 JWT_TOKEN本项目支持 GitHub Actions 自动部署到 Cloudflare Workers。详细配置说明请参考 自动部署指南。
感谢 sarsanta 贡献的 GitHub Actions 自动部署功能!
感谢 oxygen 贡献的权限越权漏洞及其修复
iYear1213如果你觉得本项目对你有帮助,欢迎赞赏支持:
Apache-2.0 license
Cloudflare 域名邮箱系统 临时邮箱系统 支持API 调用 支持多渠道发件 支持用户管理 domain mail tempmail
See the code🇨🇳 中文 | 🌐 English
一个基于 Cloudflare Workers + D1 + R2 构建的前后端分离的开源临时邮箱服务,支持 RESTful API 调用,适配多渠道发件,支持邮件接收、发送、转发、用户管理等功能。
当前版本:V5.3.1 - 新增 Cyberpersons 发件渠道,按发件人域名自动路由 Resend / SendFlare / Cyberpersons
本邮箱服务支持接收邮件时自动创建对应的邮箱,邮箱服务的转发目标邮箱地址需要在cloudflare Email Addresses中验证
📖 一键部署指南 | 🤖 Github Action 部署指南 | 📬 Resend 发件配置 | 🚀 SendFlare 发件配置 | ☁️ Cyberpersons 发件配置 | 📚 API 文档
| 首页 | 所有邮箱 |
|---|---|
![]() | ![]() |
| 用户管理 | 单个邮箱登录 |
|---|---|
![]() | ![]() |
| 类别 | 特性 |
|---|---|
| 📧 邮箱管理 | 随机生成临时邮箱 · 多域名支持 · 置顶/收藏 · 历史记录 · 邮箱搜索 |
| 💌 邮件功能 | 实时接收 · 自动刷新 · 验证码智能提取 · HTML/纯文本 · 邮件转发 |
| ✉️ 发件支持 | 多渠道发件(Resend / SendFlare / Cyberpersons)· 按域名自动路由 |
| ⚡ 技术架构 | Cloudflare Workers · D1 数据库 · R2 存储 · Email Routing |
| 版本 | 主要更新 |
|---|---|
| V5.3.1 | 新增 Cyberpersons(CyberPanel Email Delivery)发件渠道 |
| V5.3.0 | 发件模块抽象为 src/email/providers/ · 新增 SendFlare 渠道· 按发件人域名自动路由 · sent_emails 表新增 provider 字段 |
| V5.2.0 | 引入 postal-mime 改进邮件解析 · 修复部分客户端中文乱码问题 |
| V5.1.0 | 邮箱别名规范化支持扩展,支持 . + - 三种分隔符切分 |
| V1.0~v4.0 | 邮箱生成 · 邮件接收 · 验证码提取 · 用户管理后台 · R2 存储 EML |
使用 Git 集成部署时,请在 Workers → Settings → Variables 中手动配置环境变量
本地运行适合调试前端页面、管理接口和发件逻辑。真实收信依赖 Cloudflare Email Routing,仍需要部署到 Cloudflare Workers 后才能完整验证。
npm install
按需修改 wrangler.toml 中的 [vars]、D1 和 R2 绑定。至少建议设置:
ADMIN_NAME = "admin"
ADMIN_PASSWORD = "your_admin_password"
JWT_TOKEN = "your_random_jwt_secret"
MAIL_DOMAIN = "example.com"
npx wrangler d1 execute maill_free_db --local --file=./d1-init.sql
如果你修改了 wrangler.toml 中的 database_name,请把上面的 maill_free_db 替换为你的数据库名称。
npx wrangler dev
启动后访问 Wrangler 输出的本地地址即可。默认管理员账号为 admin,密码使用 ADMIN_PASSWORD。
| 变量名 | 说明 | 必需 |
|---|---|---|
| TEMP_MAIL_DB | D1 数据库绑定 | 是 |
| MAIL_EML | R2 存储桶绑定 | 是 |
| MAIL_DOMAIN | 邮箱域名,多个用逗号分隔 | 是 |
| ADMIN_PASSWORD | 严格管理员密码 | 是 |
| ADMIN_NAME | 严格管理员用户名(默认 admin) | 否 |
| JWT_TOKEN | JWT 签名密钥 | 是 |
| RESEND_API_KEY | Resend 发件密钥,支持多域名配置 | 否 |
| SENDFLARE_API_KEY | SendFlare 发件密钥,格式同 Resend | 否 |
| CYBERPERSONS_API_KEY | Cyberpersons 发件密钥,格式同 Resend | 否 |
| FORWARD_RULES | 邮件转发规则 | 否 |
三个渠道密钥都支持相同的三种格式:
# 单密钥(通配所有发件域名)
RESEND_API_KEY="re_xxxxxxxxxxxxxxxxxxxxxxxx"
SENDFLARE_API_KEY="live_xxxxxxxxxxxxxxxxxxxxxxxx"
CYBERPERSONS_API_KEY="sk_lera_xxxxxxxxxxxxxxxxxxxxxxxx"
# 键值对格式(推荐,多域名独立计费 / 限额)
RESEND_API_KEY="domain1.com=re_key1,domain2.com=re_key2"
SENDFLARE_API_KEY="domain3.com=live_key3"
CYBERPERSONS_API_KEY="domain4.com=sk_live_key4"
# JSON格式
RESEND_API_KEY='{"domain1.com":"re_key1","domain2.com":"re_key2"}'
渠道路由规则(三个渠道都配置时):
注意:SendFlare 与 Cyberpersons 暂不支持发件查询、修改 scheduled_at、取消已调度 邮件,相关接口对这两个渠道发出的邮件会返回 400「SendFlare / Cyberpersons 渠道 暂不支持此操作」。
发件模块已抽象到 src/email/providers/,新增渠道通常不需要改动前端或业务路由。适配步骤请参考 发件渠道适配文档。
规则按前缀匹配,* 为兜底规则。
⚠️ 重要:转发目标邮箱必须在 Cloudflare 控制台中验证后才能使用:

# 键值对格式
FORWARD_RULES="[email protected],[email protected],*[email protected]"
# JSON格式
FORWARD_RULES='[{"prefix":"vip","email":"[email protected]"},{"prefix":"*","email":"[email protected]"}]'
# 禁用转发
FORWARD_RULES="" 或 "disabled" 或 "none"
TEMP_MAIL_DB,检查 database_id# 本地调试
wrangler dev
# 查看实时日志
wrangler tail
# 检查数据库
wrangler d1 execute TEMP_MAIL_DB --command "SELECT * FROM mailboxes LIMIT 10"
ADMIN_PASSWORD 和 JWT_TOKEN本项目支持 GitHub Actions 自动部署到 Cloudflare Workers。详细配置说明请参考 自动部署指南。
感谢 sarsanta 贡献的 GitHub Actions 自动部署功能!
感谢 oxygen 贡献的权限越权漏洞及其修复
iYear1213如果你觉得本项目对你有帮助,欢迎赞赏支持:
Apache-2.0 license