想要多少个邮箱,就能有多少个,还不用绑手机号,听起来很美好吧。
不过现在想申请个邮箱挺麻烦,QQ 邮箱要绑手机,163 要绑手机,Gmail 同样得绑。一个手机号能开的邮箱有限,想要多个?没门。
但只要你有自己的域名,事情就完全不一样了。给它加任意前缀,就能生成无数个独立的邮箱地址——像 xxx@你的域名.com、yyy@你的域名.com 这样。注册不信任的网站用临时前缀,谁泄露了你的隐私一眼就能看出来;平台有新人福利就换前缀多注册几次,反复薅它羊毛。所有邮件都收到同一个后台统一管理,省心。
这玩意儿还有个专业叫法,叫"域名邮箱"。听起来高大上,搞起来其实没那么复杂。今天我就来教大家,怎么用 Cloudflare 这个互联网大善人,搭一套完全免费、零服务器成本的域名邮箱系统。
这一篇我们先把整套环境跑通、实现稳定收信,前缀随便起、多人一起用。发信的部分留到下一篇,配上 Resend 之后就能真正收发自如了。
项目介绍及前期准备
在动手之前,先介绍一下今天要用到的核心工具——一个叫 Cloud Mail 的开源项目,地址我会统一放在文末。

完全免费、开源、免服务器免维护。 它不用你自己买云服务器,直接借 Cloudflare 的免费计算和存储来跑就行。宕机、黑客攻击这些事跟你没关系。
收和发也一体。 Cloudflare 原生只提供收信,但这个项目接了 Resend(第三方发信服务),发信也能搞定——具体怎么接留到下一篇。
还有个很爽的点是集中管理。一个后台可以管多个域名,每个域名下又能起无数个前缀。你甚至可以开放注册、生成邀请码,拉上家人朋友一起用。
其实这个项目的部署过程不算复杂,原作者也提供了官方教程,有点折腾基础的小伙伴照着弄就行。但对小白来说,官方教程有点过于简洁了,中间有些环节容易让人懵。 所以今天这篇文章,我就手把手带大家一步一步把它跑起来。
部署的前置条件:你得先有一个属于自己的域名。如果你还没有,可以去看我之前那篇白嫖域名的文章。我个人比较推荐 SpaceShip 来买域名(链接放文末),最便宜的顶级域名一年也就几块钱,买完托管到 Cloudflare 就行。
好,我们打开自己的 Cloudflare 账号。左边这一栏就是我托管进来的域名,今天就拿 wintermiss.com 这个域名为例来做演示。

克隆仓库并部署 Worker
第一步,打开这个项目的 GitHub 仓库。涉及的地址我都会放在文章末尾。确保你已经登录好了自己的 GitHub 账号,没有的话花一分钟免费注册一个。然后点右上角的 Fork,把原作者的项目复制到你自己的账号下。仓库名保持默认就行,点 Create Fork。现在你的 GitHub 账号下面就有一份一模一样的仓库了。

接下来我们要创建一个 Worker 来当我们的"虚拟服务器"。回到 Cloudflare,在账户主页的状态下。左边的菜单点 计算 → Workers 和 Pages → 创建应用程序。默认就是创建 Worker。

我们直接点 Continue with GitHub,意思就是直接从我们刚才 Fork 的仓库里拉取项目,省得自己写代码。

浏览器已经登录了 GitHub 的话,这里会自动列出你的仓库。如果只有一个就直接选;有多个的话搜一下 cloud-mail,选中它,点 下一步。

项目名称保持默认。这里有个隐藏设置要注意——把进度条拉下来,点 高级设置,路径这里必须填 mail-worker,其他的不动,点 部署。

等几分钟,它会自动从 GitHub 拉代码、编译、部署。好了,部署完成。
接下来给它绑定一个好记的登录域名,顺便配一下环境变量。
点 设置。Cloudflare 默认会给你分配一个 worker.dev 后缀的域名,这个就是你以后登录邮箱后台的地址。但这个默认域名被墙了,而且又长又难记,强烈建议大家自定义一个自己的域名。点 添加 → 自定义域,比如我就用 mail.wintermiss.com——在主域名前面加个 mail 当登录入口。后面的主域名必须是你已经托管到 Cloudflare 的那个哦。填好之后点 添加域。
下面我们来加几个环境变量。找到 变量和机密,点 添加。
首先加一个邮箱域名的变量。类型选 JSON,变量名输入 domain,值这里填你自己的域名。注意格式:必须有一对英文中括号,里面再加一对英文双引号,像下面这样:
["wintermiss.com"]
填好点 添加变量。
我们再加一个设置管理员账号的变量。类型保持默认的"文本",变量名输入 admin,值这里填你想要的管理员邮箱,比如我就用 admin@wintermiss.com,点 添加变量。
再添加最后一个。类型还是文本,名称输入 jwt_secret。这个东西就相当于你后台的一把防伪钥匙,值可以随便填一段英文或数字,越乱越长越安全,但千万不要加特殊符号。三个变量都设好之后,咱们继续下一步。

创建数据库并绑定
变量配好了,现在要做的就是给邮箱造两个仓库——创建数据库,并跟刚才的 Worker 绑定起来。这两个数据库分别是 D1 和 KV,都是 Cloudflare 免费提供的。
简单给大家科普一下这两个数据库的分工。你可以把我们这套邮箱系统想象成一个快递站:D1 是前台的登记簿,专门登记发件人、时间和主题这些基础信息,方便你快速翻找;KV 是后面的大仓库,专门装那些又长又占地方的邮件正文。一个管查,一个管存,搭配起来干活不累。
好,我们现在来创建数据库。左边菜单栏找到 存储和数据库,先点 D1 SQL 数据库 → 创建数据库。名字随意,我为了方便识别就叫 cloudmail,点 创建。

接着再去创建另一个。点左边的 Workers KV,点右上方的蓝色按钮创建,名字同样随意,我也叫它 cloudmail,点 添加。

数据库建好之后,现在要把它们跟 Worker 绑定起来。回到 Worker 的界面,进入刚才部署好的那个项目,在 设置 里找到 绑定,点 添加绑定。

首先来绑定 KV 空间。左侧选 KV 命名空间,点 添加绑定,变量名这里必须输入小写的 kv,下拉列表里选你刚才新建的那个命名空间,点 添加。


接着绑定 D1 数据库。继续点 添加绑定,选 D1 数据库,点 添加,变量名这里必须输入小写的 db,下拉列表里选刚才创建的 D1 数据库,点 添加绑定。


设置电子邮件路由
后端的仓库搭好了,现在要配置一个"邮递员"——也就是 Cloudflare 的电子邮件路由。
回到账户主页,先进入你要配置的那个域名,左侧菜单点 电子邮件 → 电子邮件路由 → 开始使用。


正常情况下,Cloudflare 的邮件路由只能把信转到你的其他邮箱里,但我们不需要这个功能,所以直接点右下方的 跳过入门指南。然后点 启用电子邮件系统 → 添加记录并启用。Cloudflare 很聪明,它会自动把接收邮件必需的 DNS 记录都给你加上。

记录加完之后,我们来配一下路由规则。点 Catch all 规则 这里的 编辑,操作选 发送到 Worker,目标选刚才创建的 cloud-mail Worker,点 保存。最后在状态这里确保它是开启的——这样所有发到这个域名的邮件,就都会被通通丢到你的 Worker 里处理。


初始化及接收邮件
到这里系统基本上就搭好了。下面去给它做一下初始化。
浏览器地址栏输入你刚才绑定的登录域名,比如我的就是 mail.wintermiss.com——在域名前面加个 mail 的那个——然后在后面再加 /api/init/,最后接上你设置的那一串 jwt_secret,按回车。屏幕上显示 success,就代表数据库初始化成功了。


现在把网址后面那一长串尾巴删掉,直接访问登录域名,就能看到一个挺漂亮的邮箱管理界面了。
点 Sign Up 注册账号,输入刚才在环境变量里设置的那个管理员邮箱——对,就是 admin@your_domain.com——然后设置两遍登录密码,点 Sign Up。注册完系统会自动退出,咱们再点 Sign In 重新登进去。

激动人心的时刻到了——我们来测一下它能不能正常收邮件。我用我自己的另一个邮箱,给这个 admin 邮箱发一封测试邮件。

好,回到 Cloud Mail 的后台,点一下刷新按钮,你看,收件箱里马上就能看到这封邮件了。

除了给 admin 这个前缀发邮件,因为我们设了 Catch all 规则,所以你可以随时创建新身份。点一下 新建,比如输入 test,就创建了一个前缀为 test 的邮箱。这功能用起来是真顺手——你可以用不同前缀的邮箱去注册不同的网站,以后谁泄露了你的隐私一目了然。

写在最后
到这里,咱们的零成本域名邮箱就已经搭建完成,并且能正常收邮件了。前期配置步骤看起来有点繁琐,但只要你跟着教程一步步做下来,就能拥有一个真正属于自己的、真正免费、无限前缀的专属邮箱系统。拿来保护隐私或者薅平台羊毛,都挺顺手。
你可能也发现了,现在系统虽然能收信,但如果你想回复或者主动发邮件,会发现是发不出去的。这是因为 Cloudflare 原生只提供收信功能,发信得借助第三方的服务。 下一篇我就来教大家怎么接上 Resend 这家发信服务,把收发能力彻底打通。配好之后你就可以用任意前缀的邮箱往外发邮件了,敬请期待。
相关链接
• Cloud Mail 开源项目:https://github.com/maillab/cloud-mail • SpaceShip 域名购买:https://www.spaceship.com
