只需要一个域名,就可以创建多个不同的邮箱,类似各大邮箱平台 QQ邮箱,谷歌邮箱等,本项目使用Cloudflare部署,Resend推送邮件,无需服务器费用,搭建自己的邮箱服务
代发模式,安全无屏蔽
💰 低成本使用:无需服务器,部署到 Cloudflare Workers 降低使用成本
💻 响应式设计:响应式布局自动适配PC和大部分手机端浏览器
📧 邮件发送:集成resend发送邮件,支持群发,内嵌图片和附件发送,发送状态查看
🛡️ 管理员功能:可以对用户,邮件进行管理,RABC权限控制对功能及使用资源限制
🔀 多号模式:开启后一个用户可以添加多个邮箱,默认一用户一邮箱,类似各大邮箱平台
📦 附件收发:支持收发附件,使用R2对象存储保存和下载文件
🔔 邮件推送:接收邮件后可以转发到TG机器人或其他服务商邮箱
📡 开放API:支持使用API批量生成用户,多条件查询邮件
📈 数据可视化:使用echarts对系统数据详情,用户邮件增长可视化显示
⭐ 星标邮件:标记重要邮件,以便快速查阅
🎨 个性化设置:可以自定义网站标题,登录背景,透明度
⚙️ 功能设置:可以对注册,邮件发送,添加等功能关闭和开启,设为私人站点
🤖 人机验证:集成Turnstile人机验证,防止人机批量注册
📜 更多功能:正在开发中...
框架:Vue3 + Element Plus
Web框架:Hono
ORM:Drizzle
邮件推送: Resend
数据库:Cloudflare D1
文件存储:Cloudflare R2
报错:Hostname '***' already has externally managed DNS records... [code: 100117]
原因:CUSTOM_DOMAIN 指定的域名/子域名在 Cloudflare DNS 里已存在 A/CNAME 记录,或被其他 Worker/Pages 项目占用。
解决:去 Cloudflare → DNS → 记录,删除冲突记录;或检查 Workers & Pages 里是否有其他项目占用了这个域名。
报错:KV namespace '***' is not valid... [code: 10042]
原因:D1_DATABASE_ID / KV_NAMESPACE_ID 这两个 Secret,新手很容易误填成资源的名字(比如 cloud-mail),但脚本需要的是真正的 ID/UUID。
解决:
提醒:如果这两个 Secret 干脆不填,脚本会按 NAME(默认 cloud-mail)自动查找同名资源并复用,同样安全,不容易填错。
报错:HTTP 403,返回内容是 Just a moment... 的 JS 挑战页(challenges.cloudflare.com)
原因:GitHub Actions 服务器的 IP 是公开数据中心 IP,天然会被 Cloudflare 的机器人识别机制判定为可疑流量,拦截了这个 curl 请求。触发源可能有多层,需要逐层排查:
| 触发源 | 是否能被 WAF"跳过"规则覆盖 |
|---|---|
| WAF 自定义规则(Managed Rules) | ✅ 可以跳过 |
| 安全级别(Security Level) | ✅ 可以跳过(需手动勾选) |
| Bot Fight 模式(基础版) | ❌ 不能被 WAF 跳过规则覆盖,必须单独关闭 |
| Super Bot Fight Mode | ✅ 可以跳过 |
最终解法:安全性 → 设置 → 找到 "Bot Fight 模式",直接关闭开关(这是本次问题的根本原因,反复调 WAF 规则都不生效,就是因为漏了这个)。