共计 2792 个字符,预计需要花费 7 分钟才能阅读完成。
如果你手上有自己的域名,只是想把 hi@你的域名.com 用起来收发邮件,又不想每年给 Google Workspace 或 Microsoft 365 交钱,这套 Cloudflare Email Routing + Gmail 现在依然够用。
Cloudflare Email Routing 负责把别人发到你域名邮箱的邮件转进 Gmail。Gmail 负责从这个地址回信。
它不是完整企业邮箱,但拿来放在博客、作品集、简历、联系页、独立开发者官网上,已经很够用了。
主要边界
-
能做到:别人发到你的域名邮箱,你在 Gmail 里收到;你也能在 Gmail 里用这个域名地址发信和回信 -
做不到:Cloudflare 不给你真正的邮箱空间,也不提供发信服务器;多人协作、共享日历、管理员后台,这套都没有 -
要注意:Cloudflare 开启 Email Routing 时会接管你这个域名的邮件 MX记录。如果你这个域名已经在用腾讯企业邮、阿里企业邮、Google Workspace,不要直接点开通
如果你要一个看起来专业、能正常往来邮件的联系邮箱,这套很合适。你要的是团队邮箱系统,那就别省这点钱,直接上正式服务。
准备资料
-
一个已经接入 Cloudflare DNS 的域名 -
一个你能正常登录的 Gmail 账号 -
能开启 Google 两步验证 -
一个备用邮箱用来做测试, QQ、Outlook、另一个 Gmail 都行
部分参考文档:
-
Cloudflare Email Routing 入门:https://developers.cloudflare.com/email-routing/get-started/ -
Gmail 用其他地址发信:https://support.google.com/mail/answer/22370 -
Google 应用专用密码:https://support.google.com/mail/answer/185833
先把收件打通
先做最小可用版:让别人发到 hi@你的域名.com 的邮件,能够进你的 Gmail。
-
登录 Cloudflare,进入你的域名,打开 Email -> Email Routing -
第一次开通时,Cloudflare 会让你添加或替换邮件相关的 MX和TXT记录。这里要认真看一眼,如果面板提示要删除旧的MX,就代表旧邮箱服务会一起停掉 -
开通后,去 Routing rules里创建一个自定义地址。比如把hi@你的域名.com转发到yourname@gmail.com -
Cloudflare 会往你的 Gmail 发一封验证邮件。点掉验证之前,这条转发规则不算真的生效 -
验证完成后,用另一个邮箱发一封测试邮件到你的域名邮箱,不要直接用同一个 Gmail 自己给自己发,很多时候会把你绕晕
你看到的正确结果应该是这样的:
-
Gmail 收到了这封信 -
收件人还是你的域名邮箱,不是裸露的 Gmail -
Cloudflare 面板里的规则状态是已启用
小建议:有建明确地址,不要一上来开 Catch-all。Catch-all 很方便,但也很容易把拼错地址、垃圾邮件、爬虫乱发的邮件一起吞进来。大多数人先用 hi、contact、hello 这种固定地址就够了。
再把发件打通
收件只是前半段。那怎么用对应的这个域名发出去。
注意,Cloudflare 不负责发信。它只是把邮件转进来。真正往外发信的,还是 Gmail,或者你后面换掉的别家 SMTP 服务。
开 Google 两步验证,生成应用专用密码
Gmail 不会让你直接拿账号密码去配 SMTP。你要用的是应用专用密码。
-
打开 Google 账号的安全页,先把两步验证开起来 -
开完以后,再进入 应用专用密码 -
新建一个密码,名字随便写,比如“域名邮箱” -
Google 会给你一串 16 位密码,保存下来
如果找不到“应用密码”入口,可能的两个原因:
-
你的账号还没开两步验证 -
你开了 Advanced Protection,Google 官方说明里明确写了,这种模式下应用专用密码不可用
碰到第二种情况,就别死磕了。要么退出 Advanced Protection,要么直接跳到后面的“换第三方 SMTP”方案。
在 Gmail 里添加对应的发件域名
-
打开 Gmail,点右上角设置,进入“查看所有设置” -
打开 账号和导入 -
在“用这个地址发送邮件”里点“添加其他电子邮件地址” -
名字填你想展示给别人的名字,邮箱填你的域名地址,比如 hi@你的域名.com -
Treat as an alias这个选项,默认保留勾选就行。你本来就是在给同一个人加另一个发件地址 -
SMTP 配成下面这样
SMTP 服务器:smtp.gmail.com
端口:465
用户名:你的 Gmail 完整地址
密码:刚刚生成的 16 位应用专用密码
加密方式:SSL
如果 465 + SSL 连不上,再试一次 587 + TLS。这是 Google 官方文档里也支持的组合。
-
提交后,Gmail 会往你的域名邮箱发一封确认邮件 -
这封确认邮件会先到 Cloudflare,再转发进你的 Gmail -
点掉确认链接,或者把验证码填回去,这个发件地址就能用了
配置自动选择回复邮件
注意,如果你想要别人给你发了邮件,你想用对应的邮件回复,这一步设置是必须的。
设置下面这一项

测试整个流程
用其他邮箱,比如 QQ,163 邮箱测试一遍
-
用另一个邮箱发信到 hi@你的域名.com -
去 Gmail 收件箱里打开这封信,直接点回复 -
发出去之前,看一眼 From,确认显示的是你的域名邮箱 -
回到对方邮箱,确认能收到回复
到这一步,主流程就已经跑通了。
对方为什么还会看到 via gmail.com 或者 on behalf of
这不是你哪里配错了,很多时候是 Gmail 这条发信链路本来就有这个边界。
你现在这套方案里:
-
Cloudflare 负责收件转发 -
Gmail 负责真正把邮件发出去
所以在部分收件客户端里,对方可能会看到你的 Gmail 痕迹,比如 via gmail.com,或者 yourname@gmail.com on behalf of hi@你的域名.com。
这在个人沟通、博客联系邮箱、独立开发者业务往来里通常问题不大
最容易踩的几个坑
-
Cloudflare 规则建好了但一直收不到邮件。先看目标 Gmail 有没有点验证邮件,没验证就不会真正转发 -
一开通 Email Routing,原来的企业邮箱突然废了。因为 MX已经被 Cloudflare 接管了 -
Gmail 一直提示用户名或密码错误。这里填的不是你的 Google 登录密码,是 16 位应用专用密码 -
Google 账号里根本没有应用专用密码。先查两步验证,再查是不是开了 Advanced Protection -
你给自己发测试邮件,觉得没收到。先换一个别的邮箱测,自己给自己发最容易被 Gmail 的会话和去重逻辑干扰判断 -
对方看到 via gmail.com。这通常不是配置错,是 Gmail SMTP 的边界
真要说这套配置最难的地方,也就两个:一个是别把 MX 记录改糊涂,另一个是 Gmail 一定要用应用专用密码。