很多人手里都攥着几个吃灰的域名,总想搞个专属前缀的邮箱(比如 hi@你的域名)。但真动起手来,摆在面前的几条路都不太好走:
- 1. 买企业邮:Google Workspace、腾讯企业邮,要么按月收费贵得肉疼,要么免费版限制重重,且无法完全掌控数据。
- 2. 硬核自建:开台 VPS,配 Postfix + Dovecot。且不说现在主流云服务商基本都默认封禁了 25 端口,直接掐断了自建的可能;就算你费劲心思解封了,这也是配置地狱——发出去的邮件大概率进对方垃圾箱,还要天天操心 IP 信誉、TLS 证书续期、防扫弱口令。
- 3. 白嫖大厂转发:比如用 Cloudflare Email Routing 转到 QQ 邮箱。这确实省事,但只能收不能发。别人发到你域名的信,你在 QQ 邮箱里点回复,发件人直接变成了你的 QQ 号,瞬间破功。
如果你也觉得这些方案无法满足需求,今天介绍的这个基于 Cloudflare Serverless 架构的个人邮箱系统 —— mail-relay,可能会是你的一种选择。
它不要你买服务器,甚至连数据库都不用单买,全部跑在 Cloudflare 的免费额度里。最关键的是:数据在你自己手里,且支持完整的收发编排。
纯 Serverless 的架构
在技术实现上,mail-relay 走了一条非常轻量的路线:
- • 计算与路由:单个 Cloudflare Worker 承载所有的收信逻辑、API 接口和后台前端页面。
- • 存储层:抛弃了传统的 MySQL/PostgreSQL,直接使用 Cloudflare Durable Object (DO) 内置的 SQLite 存索引和小正文;超过 256KB 的邮件内容、原始
.eml 文件和附件,直接扔进 R2 对象存储。 - • 收信链路:由 Cloudflare 的 MX 记录兜底接收,邮件到达边缘节点后直接触发 Worker 入库。
- • 发信链路:发信层被抽象成了一个可插拔的 Provider(目前接入了 Resend),通过 DO 内部的状态机进行“发送、失败退避、重试”的异步编排。
这意味着你只需要敲一行 wrangler deploy,前端、后台、数据库、对象存储就能全部在云端拉起,几乎没有后期维护成本。
为什么它比“纯邮件转发”好用?
1. 真正的“域名身份”收发
原生转发把你域名的邮件转给 QQ,你回信时只能用 QQ 身份。而 mail-relay 自带了独立后台(Web UI)和发信集成。你可以以 admin@你的域名 的身份主动发信,回复时也会自动保持域名身份,归并到同一个会话流中。
2. Catch-all 的完美应用与无限邮箱分身
你可以开启 Catch-all(捕获所有地址),这意味着 任意前缀@你的域名 都能收到信。相当于你瞬间拥有了无限个邮箱地址。
它的典型场景是:你在不同网站注册账号时,可以随时捏造一个专属邮箱,比如 baidu@你的域名、taobao@你的域名。这不仅能有效防止跨站点的账号关联,还能精准追踪隐私泄露——哪天收到一封发给 xxx@你的域名 的澳门赌场广告,你瞬间就知道是谁把你的数据卖了。原生转发会把这些全塞进一个收件箱混作一团,而 mail-relay 的后台可以按收件前缀做清晰的归档和搜索。
3. 绝对的数据主权
用邮件转发,实际上是把数据副本交给了第三方托管。而 mail-relay 所有的邮件、附件、原始 .eml,全都静静躺在你自己的 Cloudflare 账号里。哪怕你以后不用这个系统了,去 R2 里把 .eml 文件打包下载,随时可以无缝迁移。
4. 鱼和熊掌兼得的“智能转发”
mail-relay 内置了转发功能,但它走的是“先落库备份,再按规则转发”的逻辑。你可以配置一条规则:把某些重要发件人的邮件,本地存档一份,同时转发到常用邮箱做强提醒。万一转发因为 SPF/DMARC 校验失败被拒收,本地依然有底,不会丢件。
适用场景与边界
为了保持极简,mail-relay 也有清晰的边界:
- • 推荐场景:拥有自己域名、想白嫖大厂基础设施、对数据隐私有要求、主要用于日常收发验证码、通知或少量个人通讯的用户。
- • 不适用场景:重度依赖 Foxmail / Outlook 等 IMAP/POP3 客户端的用户(系统仅支持浏览器后台),以及需要做大批量商业群发的人(发信依赖第三方 API 的免费额度)。
10 分钟极速部署指南
由于项目几乎没有多余的依赖,只要你有一个 Cloudflare 账号并配置好了本地的 Node.js 环境,部署过程将非常顺滑:
1. 拉取代码与初始化
npm install
npx wrangler login
# 创建用于存储邮件和附件的 R2 Bucket
npx wrangler r2 bucket create mail-relay
# 一键部署前端静态资源、Worker 和 DO 数据库
npx wrangler deploy
2. 注入核心密钥
部署完成后,需要注入两个用于加密和签名的核心密钥(每次执行 secret put 都会自动重新发布 Worker,无需手动再 deploy):
npx wrangler secret put CONFIG_MASTER_KEY
npx wrangler secret put SESSION_SECRET
3. 给后台绑定自定义域名(国内网络必看)
Worker 部署后默认的域名是 *.workers.dev,这个域名在国内由于网络环境原因通常打不开。因此,务必在 Cloudflare 后台为该 Worker 绑定一个自定义域名(建议用一个子域名,比如 mail.yourdomain.com,这只用来访问管理后台,不影响收发信域名)。
操作路径:Cloudflare 控制台 -> Workers & Pages -> 选中刚部署的 Worker -> Settings -> Domains & Routes -> Add Custom Domain。
4. 绑定域名与收信路由
前往 Cloudflare 控制台,进入你域名的 Email Routing (电子邮件路由) 设置。将 Catch-all address (捕获所有地址) 开启,并将其目的地指向刚刚部署的 Worker。这样,所有发往你域名的邮件就会自动进入系统了。
5. 后台初始化与发信配置
通过你绑定的自定义域名(如 https://mail.yourdomain.com)首次访问后台,系统会引导你在页面上设置管理后台密码(密码经过哈希处理存入 DO 库中,不留明文)。
进入后台后,在「设置」页填入你的主域名。如果你还需要发信功能【可选】,只需前往「发送通道」填入 Resend 的 API Key 并激活即可。
阅读原文:点击这里
该文章在 2026/7/19 10:32:39 编辑过