前几天跟一个做独立开发的朋友聊起邮箱的事。他的产品上线半年,对外留的联系邮箱还是 QQ 邮箱,用户看到之后总有一种“这个项目会不会明天就跑路”的错觉。他想换个带自己域名的邮箱,去看了 Google Workspace 和 Zoho 的企业版,发现都是按用户数收费,一年下来对于个人或者小团队来说也不是一笔小钱;自己用 Postfix 自建邮局?光是反垃圾、SPF/DKIM/DMARC 配置、服务器运维这几件事就够喝一壶了。后来我给他支了个招:用 Cloudflare 的 Email Routing 功能做域名邮箱转发,把任意数量的别名地址统一收进个人邮箱,配置全过程不到十分钟,成本为零。这篇文章就把这个方案从设计思路到实操步骤、再到常见问题完整拆开讲一遍。
1. 方案设计思路:为什么偏偏是 Cloudflare
1.1 主流域名邮箱方案的成本与痛点
在做任何方案选型前,先把你面前的选项捋一遍。结论往往不是哪个功能最强,而是哪个在“够用”和“成本”之间取得最合理的平衡。
自建邮局这条路,技术含量高、维护成本高、收件可靠性低。你需要在 VPS 上装 Postfix、Dovecot、配置 SPF、DKIM、DMARC,还要维护 IP 信誉。家里有矿的人可以无视成本,但普通人和小团队折腾不起,更关键的是自建邮局的 IP 往往是“冷启动”,发出去的信容易进垃圾箱,收信也可能被大厂邮件服务拒收。这还没算 7x24 小时在线的服务器费用。
商业邮箱托管是另一条路。Google Workspace 按账号收费,一个人一个月就要十几美元,能接受,但一个五到十人的小团队一年下来就大几千块了。Zoho 虽然有免费版,但是免费版的功能限制比较多,而且在国内访问的体验要看运气。腾讯企业邮箱、阿里企业邮也有免费版,但要么需要你已经有了对应生态的资源,要么在界面和功能上不那么“干净”。
Cloudflare Email Routing跟上面两者都不一样。它的本质是一个邮件转发器:你给自己域名配置一个 MX 记录指向 Cloudflare,所有发到你域名邮箱地址的邮件,Cloudflare 直接转寄到你指定的真实邮箱。它不替你保存邮件、不提供网页端收信界面、也不支持通过它发信。听起来功能很“薄”,但恰恰是这种“薄”,让它具备了两个别人给不了的优势。
1.2 无限别名的核心原理:转发规则 ≠ 邮箱账号
很多人第一次接触“邮箱别名”这个概念时会有一个误区,以为要先去开通一个邮箱账号,然后再给它绑定一堆别名。这是传统企业邮箱的思维。
Cloudflare Email Routing 的逻辑完全不同。它把“邮箱地址”和“存储空间”彻底分离了。你不需要为每个别名创建账号,也不用给每个别名分配存储,你要做的只是告诉 Cloudflare:凡是发到 aaa@yourdomain.com 的邮件,请转发到 my@gmail.com;凡是发到 bbb@yourdomain.com 的邮件,也请转发到 my@gmail.com。
这样,别名数量就不再受账号配额限制,理论上你想创建多少就可以创建多少。个人和企业场景下动辄几十上百个别名,用传统的“一别名一账号”方案成本极高,而用转发规则几乎零边际成本。
这里的“无限别名”不是说 Cloudflare 在后台给你开了什么无限资源,而是说它的模式决定了别名数量不再成为你需要关心的约束。用生活中类比就是:传统邮箱是“一间房子挂一块门牌”,你要多一个邮箱地址就得再造一间房子;而 Cloudflare 方案是“一个传达室大爷”,全世界的信都寄到一个楼里,大爷根据收件人姓名帮你把信分送到不同的房间。房子(存储邮箱)只有一间,但门牌(别名)可以无限挂。
注意:这个方案的定位是“轻量级、高性价比、易维护”。它适合个人开发者、独立创业者、小型团队和一切想用自己的域名做品牌邮箱、但不想为此付费和维护服务器的人。如果你的团队需要共享日历、协同文档、超大附件这些企业协作能力,那还是老老实实去用 Google Workspace 或 Microsoft 365,没必要在这条路上较劲。
2. 搭建前的准备:三个前置条件
2.1 一个可管理的域名
这是整个方案的地基。你需要一个自己的域名,并且拥有这个域名的 DNS 管理权限。如果你还没有域名,随便去任意一家域名注册商注册一个即可,.com 一年费用约几十到上百元不等(取决于注册商和促销)。这个成本不属于“方案成本”,而是你拥有域名的固有成本,任何域名邮箱方案都绕不开。
这里有个小建议:如果你是为了工作或长期品牌使用,优先选择 .com 后缀,其次是 .net、.io、.dev 等常见后缀。尽量避免注册那些便宜但冷门的后缀做业务邮箱,一方面用户输入时容易打错,另一方面某些邮件服务商对非主流后缀的信誉评估不高,影响送达率。
域名在哪个注册商不重要,Cloudflare 完全兼容。只要域名能正常解析,你就有资格使用 Email Routing。
2.2 Cloudflare 账号与 DNS 接管
注册 Cloudflare 账号是免费的,然后你需要把域名的 DNS 托管到 Cloudflare。这个过程叫“更改域名服务器”(Nameserver),不改也行,但改了才能享受全部功能。
为什么要改 NS 而不只是修改几条解析记录?因为 Email Routing 需要读取你的 MX、TXT(SPF)、DKIM 等记录,如果你只是手动添加几条解析记录,DNS 记录冲突和生效速度都会成为问题。Cloudflare 接管 DNS 后,MX 记录的配置会自动完成,而且在 Dashboard 里明明白白展示每一条记录的用途。
改 NS 的流程很简单:
- 在 Cloudflare 控制台点击“添加站点”,输入你的域名。
- Cloudflare 会自动扫描你现有的 DNS 记录,并提示你复制两个 NS 地址(形如 xxx.ns.cloudflare.com)。
- 回到你的域名注册商后台,找到 NS 设置,把原来的 NameServer 替换成 Cloudflare 给的那两个。
- 等待生效。时间从几分钟到 48 小时不等,一般在半小时内就能完成,Cloudflare 会发邮件通知你。
需要提醒的是:如果你之前已经用这个域名在腾讯企业邮箱或阿里企业邮配置过 MX 记录,建议先导出原有 DNS 记录清单,再到 Cloudflare 这边核对。别把旧记录清了导致线上业务解析中断。
2.3 一个真实存在的收件邮箱
既然 Cloudflare 只是转发不带存储,你就需要一个真实的邮箱来接收最终邮件。
推荐用 Gmail 或 Outlook,理由有三个:免费、垃圾邮件过滤机制成熟、支持国际邮件收发正常。国内的话 QQ 邮箱、163 也行,只要你能正常收到 Cloudflare 发送的验证邮件,就有资格作为目标邮箱。
这里有个隐藏细节值得注意:Cloudflare Email Routing 的“目标地址验证”是必须做的,而且验证链接会发送到你填写的目标邮箱。所以目标邮箱必须是你当前能正常访问收件的邮箱。启动 Email Routing 后,Cloudflare 会给目标邮箱发一封带验证链接的邮件,不点击验证就不会开始转发。
实操中我见过不少人卡在这一步:明明已经添加了目标邮箱,但收不到验证邮件。原因通常是垃圾邮件过滤把验证邮件吞了。如果五分钟后还没收到,记得去垃圾箱翻一翻。如果连垃圾箱都没有,可以先关掉 Cloudflare 的代理状态(改成灰云 DNS only),再把 SPF 记录加上,基本就能顺利收到。
3. 实操:十分钟配置无限别名邮箱系统
3.1 添加域名并启用 Email Routing
这一步在 Cloudflare Dashboard 里操作,路径很直观:左侧菜单找到“Email”,点击“Email Routing”。
如果你已经完成了 DNS 接管,此时页面会直接显示你的域名列表。点击域名进入配置页面,会看到“Email Routing”的整体状态。第一次进入时,Cloudflare 会提示你开始配置,你需要做三件事:
- 添加目标邮箱:在“Routing rules”页面点击“Create address”,先添加一个真实邮箱作为目标地址。Cloudflare 会给这个邮箱发一封验证邮件,打开邮件点击验证链接即可。这封验证邮件很重要,不完成验证一切转发规则都不会生效。
- 等待 DNS 检测:Cloudflare 在启用 Email Routing 时,会自动检测你的 MX 记录。如果检测到旧的 MX 记录,它会给你两个选择:自动替换或手动删除。对普通用户来说直接选择自动配置,Cloudflare 会把 MX 记录指向自己的邮件服务器。
- 确认状态为 Active:当页面显示“Email Routing is active”时,说明你的邮箱系统已经处于收件待命状态。可以先用一个外部邮箱(比如用 QQ 邮箱)给自己 hello@yourdomain.com 发一封测试邮件,验证整个链路是通的。
3.2 创建自定义地址:一对多转发规则的建立
Cloudflare Email Routing 的核心操作就是“创建地址(Create address)”。这里的“地址”就是你的别名。
在“Routing rules”页面点击“Create address”,输入你要创建的别名前缀,比如hello、admin、support、billing,或者任何你想要的组合。在“Destination address”下拉框里选择你已经验证过的目标邮箱。点击保存,一条转发规则就生效了。
这里讲解一下“一对一”和“一对多”的区别。默认情况是一条别名对应一个目标邮箱,比如hello@yourdomain.com→my@gmail.com。但 Cloudflare 允许你把一个别名同时转发到多个目标邮箱,比如team@yourdomain.com→a@gmail.com+b@gmail.com,适合团队公用邮箱场景。
免费套餐支持多少条这种规则?我在实际使用中没有遇到过明确的数量瓶颈。Cloudflare 官方的定位是“容量足够满足绝大多数个人及中小团队需求”,你在合理使用范围内可以放心创建。几十个、上百个只要你愿意维护,都没有问题。
操作提示:操作页面的“Custom addresses”列表会展示所有已创建的别名。建议在命名时就按照“用途 + 场景”的规律来,比如
service@、api@、security@,方便日后维护。
3.3 配置 Catch-All:一次性激活所有邮箱地址
Catch-All 是这个方案最惊艳的功能。你可以把它理解为“万能别名”:只要邮件是发到你域名的任意邮箱地址,而这条规则里没有明确匹配到对应别名,它就会自动转发到你指定的目标邮箱。
开启方式很简单:在“Routing rules”页面找到“Catch-all”区域,选择“Send to”并指定一个目标邮箱,保存即可。
有了 Catch-All 之后,“无限别名”才算真正落地。它的价值在于:任何你还没有预先创建的地址,例如randomstring@yourdomain.com,也能自动收信。这意味着你不需要为了某个新场景提前去创建别名,直接用就行。
Catch-All 的威力可以用一个真实案例说明:我在很多网站注册时,随手编了一个带网站名的别名,比如walmart@mydomain.com、github@mydomain.com。不需要提前在 Cloudflare 后台配置任何东西,因为这些邮件最终会被 Catch-All 捕获并转发到主收件箱。当某一天某个网站开始发送垃圾邮件,我一眼就能判断是哪一家网站泄露或贩卖了我的邮箱。这就是 Catch-All + 别名的“网络身份指纹”用途。
当然 Catch-All 也有副作用:任何发往你域名下不存在的地址的邮件都会进入主收件箱,包括各种乱发的垃圾邮件和钓鱼邮件。所以建议你不要把所有希望都寄托在 Catch-All 上,明确重要的别名还是要手动创建,并在主邮箱设置更强的过滤规则。
3.4 自动配置 DNS 记录:MX/SPF/DKIM 一站式搞定
当你启用 Email Routing 并创建第一条转发规则后,Cloudflare 会自动帮你配置三条核心 DNS 记录。
第一条是 MX 记录,指向route1.mx.cloudflare.net等地址,优先级设置为自动生成。这条记录确保外界的邮件服务器知道“发往 yourdomain.com 的邮件应该投递给 Cloudflare”。如果你之前有旧的 MX 记录,必须删除,否则邮件会在两条路之间随机投递,导致收信不稳定。
第二条是 SPF 记录,Cloudflare 会自动添加一条include:_spf.mx.cloudflare.net的 TXT 记录。SPF 的作用是告诉接收方邮件服务器“哪些 IP 有权利替你的域名发邮件”。Cloudflare 只负责转发你的收件,它本身不替你发信,但它需要保证“转发过程中不破坏原始 SPF 校验”,所以这条记录是必需品。
第三条是 DKIM 记录,Cloudflare 会生成一对 DKIM 密钥并配置在 TXT 记录里。DKIM 的作用是给邮件加数字签名,接收方验证签名确认邮件在传输过程中没有被篡改。有了 DKIM,邮件被 Gmail、Outlook 判定为垃圾邮件的概率会大大降低。
这三条记录全部由 Cloudflare 自动写入 DNS,你不需要手动编辑。这也是为什么我建议把 DNS 托管到 Cloudflare 而不是在第三方注册商手动配置——自动化和手动维护的体验差异是巨大的。
配置完成后,建议执行一次“发信测试”:用任意外部邮箱给test@yourdomain.com发一封邮件,检查是否能在一分钟内收到。这个测试能同时验证 MX 记录已生效、转发规则已创建、目标邮箱已验证三个关键环节。
4. 进阶玩法:收件之外的懒人技巧
4.1 用别名体系做身份追踪与防骚扰
这个技巧我从 2019 年开始用,至今受益。核心逻辑是:每注册一个网站,就用一个独立的别名。
比如注册某个购物网站,就用amazon@mydomain.com或者shop123@mydomain.com;注册某个论坛,就用forum@mydomain.com。反正 Catch-All 已经开着,任何别名都能收信,你根本不需要提前创建。
这样做的收益,一是身份追踪。哪一天你的某个别名收到了广告邮件,你直接锁定是哪个网站泄露了你的数据。二是快速封堵。如果某个网站开始持续骚扰,你可以回到 Cloudflare Email Routing 后台,点开那个转发规则,直接删除。三秒后,这个世界就再也没有通向那家网站的“门牌号”了。三是优雅迁移。如果哪天你想彻底停止使用某个别名,直接删除规则即可,不影响其他地址的使用。
注意,这套玩法的前提是你有 Catch-All 在兜底。如果没有 Catch-All,每注册一个网站前都要去后台手动添加别名,这种心智负担会让你坚持不下去。
4.2 解决发件问题:如何用自己的域名回信
Cloudflare Email Routing 只能收件,不能发件。这让很多人在测试完收信之后产生了“等下,我怎么回复对方”的疑问。
不能直接通过 Cloudflare 发信,但我们可以组合外部 SMTP 服务来实现“发件人显示为你的域名邮箱”。最简单的方案是用 Gmail 或 Outlook 的 SMTP 服务。
以 Gmail 为例:你需要在 Gmail 设置里找到“Accounts and Import”,选择“Add another email address”,填入你自己的域名邮箱地址(比如me@yourdomain.com),然后配置 SMTP 服务器为smtp.gmail.com,端口 587,账号密码用你的 Gmail 完整账号和“应用专用密码”(App Password)。Gmail 会向这个域名邮箱发一封验证邮件,因为 Cloudflare 已经把邮件转到了 Gmail,所以你直接在同一个 Gmail 收件箱里就能看到验证链接,点击确认即可。
完成之后,你在 Gmail 里写邮件时,发件人下拉框里就可以选择me@yourdomain.com,对方看到的发件地址就是你自己的域名。收件路径和发件路径就此完全闭环:所有发到你域名的邮件都收进 Gmail,所有你发出的邮件都以域名地址显示。
这套组合拳对于独立开发者尤其适用。项目对外公示的联系邮箱是support@yourdomain.com,但实际收发全在 Gmail 里面完成,无需管理第二个邮箱客户端。这里的唯一要求是 SPF 记录要包含include:_spf.google.com,否则用 Gmail SMTP 发出去的信可能被收件方判为伪造。Cloudflare 自动生成的 SPF 记录默认只包含 Cloudflare 的 include,你需要手动追加这个数值,再进行测试。
提示:如果收件方服务器对 SPF 和 DKIM 校验比较严格,建议把 DKIM 也加上。Gmail SMTP 发出的邮件自带 Gmail 域名的 DKIM 签名,而用自定义域名作为发件人时,最佳实践是自己域名也有对应的 DKIM 记录。Cloudflare 在 Email Routing 里生成的 DKIM 记录仅适用于经 Cloudflare 转发的邮件,对通过 Gmail SMTP 发出的邮件不生效。所以如果你长期要用 Gmail 代发,可以额外生成一条独立的 DKIM 记录或者使用第三方代发服务的 DKIM 配置。
4.3 用 Email Workers 做自动化处理
如果你是开发者,Cloudflare Email Routing 还隐藏了一个高级功能:Email Workers。
Email Workers 允许你把收到的邮件直接交给 Cloudflare Workers 脚本处理,而不是转发到某个邮箱。这意味着你可以对每一封入站邮件执行任意代码逻辑:解析内容、提取附件、写入数据库、触发 HTTP 回调、甚至调用 AI 接口做自动化分拣。
举个例子:你可以写一个 Worker 脚本,把发往order@yourdomain.com的邮件解析成结构化订单数据,然后通过 Webhook 推送到自己的业务系统。整个过程不需要收件箱中转,邮件内容直接从 Cloudflare 的邮件服务器进入你的代码环境。
Email Workers 的配置方式与普通 Workers 略有不同。你需要在 Cloudflare Dashboard 的 Workers 页面创建一个 Worker,然后在 Email Routing 的规则里把某个别名指向这个 Worker 而不是目标邮箱。代码入口接收的参数是一个 EmailMessage 对象,通过message.forward()或message.reply()等方法处理邮件。
这段内容对非开发者读者可能有点门槛,但知道有这条路即可。当你的邮件需求从“收信”进化到“用邮件触发自动化流程”时,Email Workers 是你留在 Cloudflare 生态里的一个隐藏王牌。
5. 管理规范与常见问题排查
5.1 别名规划的命名规范
用了两年多之后,我总结了一套自己的别名命名规范,分享出来供你参考。
- 角色型:
info@、service@、support@、sales@。用于对外公示,转发到负责人邮箱或团队公用邮箱。 - 业务型:
billing@、hr@、legal@。用于特定业务场景,便于归档和追踪。 - 个人型:
firstname@或firstname.lastname@。用于个人对外沟通,正式感强。 - 一次性型:基于网站名或服务名创建,用于身份追踪。
- 工具型:
noreply@、mailer@。专门用于接收系统通知或自动化消息。
这种分类的好处在于,当你需要删除某个别名时,可以快速判断它属于哪一类、影响面有多大。删除角色型和业务型别名的代价较高,需要谨慎;删除一次性型别名则完全无压力。
5.2 高频问题排查:收不到信、进垃圾箱、MX 冲突
不管配置多简单,总会有人踩坑。我把实际操作中遇到的最常见问题整理成了一张速查表。
| 问题现象 | 可能原因 | 排查方式 |
|---|---|---|
| 发送测试邮件后迟迟收不到 | 目标邮箱未验证 | 进入 Email Routing 页面,检查目标邮箱状态是否 Active;重新发送验证邮件 |
| 收到邮件全在垃圾箱 | 发件人域名或者内容被过滤 | 在 Gmail/Outlook 中把自定义域名添加进通讯录,创建过滤器“永不发送到垃圾邮件” |
| MX 记录冲突导致收信时好时坏 | 旧 MX 记录未删除 | 查看 DNS 记录页面,如果存在多个 MX,删除旧的,只保留 Cloudflare 生成的 |
| Cloudflare 自动创建的 SPF 与其他服务冲突 | 域名同时用了外部 SMTP 代发 | 合并 SPF 的 include 值,例如include:_spf.mx.cloudflare.net include:_spf.google.com,确保两者共存 |
| 改完 NS 后域名打开异常 | DNS 传播未完成或记录未同步 | 在 Cloudflare DNS 页面检查所有记录是否完整,使用内外网工具查询 NS 生效状态 |
| 收到大量垃圾邮件但没办法按来源封堵 | Catch-All 全盘接收 | 关闭 Catch-All,或者为所有已知合法地址创建显式规则,剩余落入 Catch-All 的自动丢弃 |
收不到信是最高频的问题。如果你出现了这个情况,我建议你按顺序排查:第一步确认 MX 记录是否只有 Cloudflare 的;第二步确认目标邮箱是否已验证;第三步确认测试邮件没有被垃圾箱吞掉;第四步确认域名本身没有被收件方邮件服务商列黑。九成问题都出在前两步。
5.3 免费套餐的边界:谁适合这个方案
最后说清楚这个方案的真实边界,避免你抱着不切实际的预期来使用。
Cloudflare Email Routing 免费套餐不提供邮件存储、不支持网页客户端、不提供隔离的垃圾邮件过滤机制、没有日历和联系人同步。它做的事情只有一个:接收邮件并转寄到你指定的真实邮箱。它是“邮箱系统的入口”,不是“完整的邮箱系统”。
所以这个方案最适合的人群是:有自己域名、想要体面的品牌邮箱地址、但不愿意为此承担额外费用和运维压力的个人开发者与微型团队。它不适合需要完整企业协作功能的公司和组织,也不适合需要把邮箱作为核心业务渠道的团队。
不过即便如此,它在“零成本域名邮箱”这个场景下的价值仍然无法被替代。你要做的只是决定:把哪些邮件交给它转发、转发到哪个目标邮箱、以及用哪种命名规范来管理这些别名。
我在实际使用中发现,这个方案真正改变的不是技术架构,而是使用心态。因为别名的成本趋近于零,你会开始习惯“一个场景一个邮箱地址”的用法。每当需要填写邮箱时,顺手输入一个带特定前缀的域名邮箱,从源头开始控制信息流。这种掌控感,是传统邮箱方案很难给的。如果你也需要一个自己的域名邮箱,又不想折腾服务器和付费账号,可以按这篇文章的步骤走一遍。十分钟之后,你就拥有了一套独属于自己的“无限别名”邮箱体系。