🛠️ 用 Cloudflare 免费把临时邮箱装起来,省钱省力还能随时把垃圾邮件甩掉
如果你和大多数人一样,常常在注册外部网站时被迫泄露真实邮箱,导致收不完的广告和钓鱼信息,这篇文章帮你用 Cloudflare 的 Workers、Pages 和 D1 数据库,几步就能搞定一个私有的、自动过期的临时邮箱,0 费用、0 维护,真正把个人隐私锁在自己的域名下。
核心:全流程手把手教会你从零搭建、配置到使用,而且全程避免常见的踩坑误区,让你省去几小时的折腾时间。

🔍 只靠 Cloudflare 邮件路由就能发信?
很多人看到 Cloudflare 提供的 电子邮件路由,误以为只要打开这个开关,就能直接用 @yourdomain.com 发邮件。实际上 Cloudflare 只负责收信转发,发送功能需要额外的 SMTP 服务(如 Resend、SendGrid)或自行实现。
所以,想要完整的收发功能,唯一的办法就是部署 cloudflare_temp_email 这套开源项目,它在 Workers 中实现了邮件解析、存储(D1)和 Web UI,配合 Pages 把前端装进去,整个链路都是在 Cloudflare 边缘完成的。
🚀 真实经验:在两台不同机器上跑了一遍,最容易卡住的点是…
- ① 域名的 Nameserver 没换成 Cloudflare——即使页面里已经显示“已启用邮件路由”,如果 NS 仍指向原注册商,邮件根本收不到。建议先在 Cloudflare 控制台 Add site,确认状态变成 Active 再继续。
- ② D1 数据库的 Schema 没执行——部署 Worker 前一定要在 Console 里跑一遍
db/2024-01-13-patch.sql,否则查询会报表不存在。 - ③ Worker 与 Pages 的绑定变量写错——变量名大小写敏感,常见错误是把
KV写成kv,导致前端读取不到邮件列表。 - ④ 自定义域名的 Catch‑all 规则忘记开启——没有打开捕获所有地址,只有特定别名可以收到邮件。
以上四点是在实际项目中遇到最多的坑,解决后系统就能稳定跑起来。
⚙️ 核心原理拆解
整个系统其实只有三层:
- Worker(后端):收到 Cloudflare 邮件路由转发的原始邮件(SMTP),使用 WASM 解析器或 Node.js 原生模块把邮件内容、附件抽取出来,存进 D1。
- D1(数据库):轻量级 SQLite 兼容,专门存放邮件元数据和正文,自动过期清理(默认 24h)。
- Pages(前端):React/Vite 打包的 UI,直接挂载在同一个域名下,调用 Worker 暴露的 API 完成收件、删除、导出等操作。
因为所有请求都在 Cloudflare 边缘完成,延迟低到几毫秒,且免费额度每天可用 100k 次请求,完全够个人使用。
📋 实战步骤
- 准备工作:
- 拥有 Cloudflare 账户并把域名的 NS 指向 Cloudflare。
- 在 GitHub 上 fork cloudflare_temp_email 仓库。
- 创建 D1 数据库:在 Workers & Pages → D1 → Create Database,记下 database_id。
- 配置 Secrets(GitHub Actions):
CLOUDFLARE_ACCOUNT_ID、CLOUDFLARE_API_TOKEN(带 Workers、D1 权限)。BACKEND_TOML(把wrangler.toml内容粘进去),FRONTEND_ENV(复制frontend/.env.example)。- 可选:
DEBUG_MODE、TG_FRONTEND_NAME,若想要 Telegram 通知。
- 启动 GitHub Actions:手动触发
Deploy Backend Production与Deploy Frontend。
- 后端部署成功后访问
https://your-worker.workers.dev/health_check,返回OK即可。
- 后端部署成功后访问
- 设置 Email Routing:在 Cloudflare 控制台 → Email → Routing → Catch‑all,动作选择 “Send to a Worker”,目标选你的 Worker 名称。
- 前端验证:打开自定义域名(如
mail.yourdomain.com),出现登录界面后点 “创建新邮箱”。 - 可选:发送功能:在 Worker 环境变量里加入
RESEND_TOKEN(Resend API Key),即可使用@yourdomain.com发邮件。
整个流程大约 30 分钟就能搞定,关键在于每一步的配置要对应到自己的域名和数据库 ID。
💡 进阶技巧
- 开启
BACKEND_USE_MAIL_WASM_PARSER=true,使用 WebAssembly 解析邮件,兼容性更好,速度更快。 - 在
wrangler.toml添加routes,把自定义域名直接指向 Worker,省去 Pages 的重定向。 - 利用 Cloudflare Workers KV 存放临时的验证码或访问令牌,配合 JWT 实现细粒度的访问控制。
🧾 小结:为什么它值得一装
通过 Cloudflare 这套无服务器组合,你可以拥有:
- ✅ 完全免费(Worker、Pages、D1 的免费额度足以支撑数千封邮件)
- 🔐 高度隐私(所有数据都在边缘,不会落地第三方)
- ⚡ 超低延迟(边缘节点直接响应)
- 🛠️ 可扩展(后期接入 Telegram Bot、自动回复、垃圾邮件过滤等)
对普通开发者而言,这比花钱买市面上的一次性临时邮箱服务要划算得多,也更安全。
🚀 快行动吧
如果你已经准备好域名和 Cloudflare 账户,赶紧按照上面的步骤动手做一遍;如果在某一步卡住了,欢迎在评论区告诉我,你遇到的具体报错或疑惑,大家一起来交流。
记得点个赞哦!
评论 (0)