纯域名邮箱转发实现收发地址一致:零成本方案
痛点:收发地址不一致
你有一个自己的域名,比如 yourdomain.com,想用 hello@yourdomain.com 收发邮件。
最直觉的做法是买企业邮箱(Google Workspace $6/月、腾讯企业邮箱、阿里企业邮箱等),但如果你只是个人博客、独立开发者或小项目,每月为几封邮件付费实在不划算。
于是你设置了邮件转发——别人发到 hello@yourdomain.com 的邮件会转到你的 Gmail。收没问题了,但回复时发件人变成了你的 Gmail 地址,对方看到的是 yourname@gmail.com 而不是 hello@yourdomain.com。
本文介绍一套完全免费的方案,让你用自己的域名邮箱地址同时收发邮件,且对方看到的始终是你的域名地址。文章包含两个方案:
- 基础方案:Cloudflare + Gmail SMTP,5 分钟搞定,但部分客户端会显示 "via gmail.com"
- 进阶方案:Cloudflare + 第三方免费 SMTP(如 Brevo),配置 DKIM 后彻底去掉 "via" 标签
方案概览
收件路径:
发件人 → hello@yourdomain.com → Cloudflare Email Routing → yourname@gmail.com
发件路径:
Gmail(Send Mail As: hello@yourdomain.com)→ smtp.gmail.com → 收件人
核心思路:
- 收件:Cloudflare Email Routing 免费接收域名邮件并转发到 Gmail
- 发件:Gmail 的 "Send Mail As" 功能,通过 Gmail 自己的 SMTP 服务器以域名地址身份发送邮件
整个过程不需要自建邮件服务器,不需要付费,只需要一个 Cloudflare 账号和一个 Gmail 账号。
前置条件
- 一个域名(任意注册商均可)
- 域名的 DNS 托管在 Cloudflare(免费计划即可)
- 一个 Gmail 账号
- Gmail 账号已开启两步验证(2FA)
第一步:配置 Cloudflare Email Routing(收件)
1.1 开启 Email Routing
- 登录 Cloudflare Dashboard,选择你的域名
- 左侧菜单点击 Email → Email Routing
- 点击 Get Started
Cloudflare 会自动提示你添加所需的 DNS 记录,通常包括:
| 类型 | 名称 | 值 | 优先级 |
|---|---|---|---|
| MX | @ | route1.mx.cloudflare.net |
10 |
| MX | @ | route2.mx.cloudflare.net |
84 |
| MX | @ | route3.mx.cloudflare.net |
12 |
| TXT | @ | v=spf1 include:_spf.mx.cloudflare.net ~all |
- |
点击 Add records and enable 让 Cloudflare 自动写入。
⚠️ 如果你的域名之前配置过其他邮箱服务的 MX 记录,需要先删除旧的 MX 记录,否则会冲突。
1.2 创建转发规则
- 进入 Routes 标签页
- 点击 Create address
- Custom address:填写你想要的前缀,比如
hello - Destination address:填写你的 Gmail 地址
Cloudflare 会向你的 Gmail 发送一封验证邮件,点击邮件中的链接完成验证。
验证完成后,试着从另一个邮箱发一封邮件到 hello@yourdomain.com,确认能在 Gmail 收到。
💡 你可以创建多个转发规则,比如
contact@、support@都转发到同一个 Gmail。也可以设置 Catch-all 规则,让所有未匹配的地址都转发过来。
第二步:生成 Google 应用专用密码
Gmail 的 "Send Mail As" 需要通过 SMTP 认证。Google 已经不再支持直接使用账号密码登录 SMTP,必须使用应用专用密码(App Password)。
2.1 前提条件(缺一不可)
2026 年很多账号在安全页面中已经不显示"应用专用密码"入口了,但实际上功能还在。先确认你满足以下 3 个条件:
- 个人 Gmail 账号——不是公司或学校的 Google Workspace 账号(Workspace 账号由管理员控制,可能被禁用)
- 两步验证已开启,且不是只绑定了「安全密钥」(仅使用安全密钥会导致入口被隐藏)
- 没有开启「高级保护计划(Advanced Protection Program)」——开启后会禁用应用专用密码
2.2 直接打开应用专用密码页面(最有效)
不要在安全设置里一层层找了,直接访问:
👉 https://myaccount.google.com/apppasswords
登录你的 Google 账号后,页面会直接显示应用专用密码的创建界面。
2.3 创建密码
- 输入一个名称(比如
Custom Domain SMTP),点击 创建 - Google 会显示一个 16 位密码,立即复制保存,这个密码只显示一次
⚠️ 如果直接访问链接仍然提示不可用,逐一排查上面的 3 个前提条件。最常见的原因是两步验证只绑定了安全密钥,需要额外添加一个手机验证或 Authenticator App 作为验证方式。
第三步:配置 Gmail "Send Mail As"(发件)
这是关键步骤——让 Gmail 能以你的域名地址发送邮件。
3.1 添加发送地址
- 打开 Gmail,点击右上角 齿轮图标 → 查看所有设置(See all settings)
- 切换到 账号和导入(Accounts and Import) 标签
- 找到 用这个地址发送邮件(Send mail as),点击 添加其他电子邮件地址(Add another email address)
3.2 填写信息
弹出窗口中填写:
- 名称:你希望收件人看到的发件人名称
- 电子邮件地址:
hello@yourdomain.com - 视为别名(Treat as an alias):✅ 勾选
点击 下一步。
3.3 配置 SMTP
这里是最容易出错的地方。不要填你自己域名的 SMTP 服务器(你根本没有),要填 Gmail 的:
| 字段 | 值 |
|---|---|
| SMTP 服务器 | smtp.gmail.com |
| 端口 | 587 |
| 用户名 | yourname@gmail.com(你的 Gmail 地址) |
| 密码 | 第二步生成的 16 位应用专用密码 |
| 安全连接 | TLS |
⚠️ 用户名必须填你的 Gmail 地址,不是域名邮箱地址。你是用 Google 的身份认证,通过 Google 的服务器发送邮件。
点击 添加账号(Add Account)。
3.4 验证确认
Gmail 会向 hello@yourdomain.com 发送一封确认邮件。因为第一步已经配好了 Cloudflare 转发,这封邮件会自动转到你的 Gmail 收件箱。
打开邮件,复制确认码,粘贴到弹窗中完成验证。
3.5 设为默认发送地址(可选)
回到 账号和导入 页面,在 "Send mail as" 区域,将 hello@yourdomain.com 设为默认(make default)。
同时建议勾选:回复邮件时,始终使用收到邮件的地址回复(Reply from the same address the message was sent to)。这样当别人发邮件到你的域名地址时,回复会自动使用域名地址。
第四步:优化 SPF 记录(提高送达率)
当你通过 smtp.gmail.com 以域名地址发送邮件时,收件方的邮件服务器会检查你的域名是否授权 Google 代发。如果 SPF 记录不完整,邮件可能进垃圾箱。
Cloudflare 默认添加的 SPF 记录只包含了 Cloudflare 自己的授权。你需要把 Google 也加进去。
在 Cloudflare DNS 中,编辑你的 TXT 记录:
# 修改前(Cloudflare 默认)
v=spf1 include:_spf.mx.cloudflare.net ~all
# 修改后(加入 Google 授权)
v=spf1 include:_spf.mx.cloudflare.net include:_spf.google.com ~all
这告诉全世界:Cloudflare(负责收件转发)和 Google(负责发件)都是你域名的合法邮件发送者。
第五步:验证测试
配置完成后,做以下测试确保一切正常:
收件测试
用另一个邮箱(比如 Outlook、QQ 邮箱)发一封邮件到 hello@yourdomain.com,确认能在 Gmail 收到。
发件测试
在 Gmail 中新建邮件,发件人选择 hello@yourdomain.com,发送到一个外部邮箱。确认:
- 对方收到的发件人显示为
hello@yourdomain.com - 邮件没有进入垃圾箱
SPF 检查
可以用 Mail Tester 发一封测试邮件,检查你的 SPF、DKIM 等配置是否正确。理想分数是 8/10 以上。
💡 基础方案使用 Gmail SMTP,DKIM 签名是 Google 的而非你的域名,部分客户端会显示 "via gmail.com"。如果你在意这一点,请继续阅读下面的「进阶方案」,使用第三方 SMTP + 自定义 DKIM 彻底解决。
完整架构图
┌─────────────────────────┐
│ Cloudflare DNS │
│ MX → Cloudflare Mail │
│ TXT → SPF (CF + Google) │
└────────────┬────────────┘
│
┌────────────────────────┼────────────────────────┐
│ │ │
收件路径 DNS 解析 发件路径
│ │ │
▼ │ ▼
外部发件人 │ Gmail 界面
→ hello@yourdomain.com │ 选择 hello@yourdomain.com
→ Cloudflare Email Routing │ → smtp.gmail.com:587
→ yourname@gmail.com │ → 收件人
│ │ │
▼ │ ▼
Gmail 收件箱 ◄─────────────────┘──────────────── 对方收件箱
(显示发到域名地址) (显示来自域名地址)
方案对比
| 方案 | 收件 | 发件 | "via" 标签 | 费用 | 复杂度 |
|---|---|---|---|---|---|
| 基础方案(Cloudflare + Gmail SMTP) | ✅ | ✅ | ⚠️ 有 | 免费 | 低 |
| 进阶方案(Cloudflare + Brevo SMTP) | ✅ | ✅ | ✅ 无 | 免费(300封/天) | 中 |
| Google Workspace | ✅ | ✅ | ✅ 无 | $6/月起 | 低 |
| 腾讯/阿里企业邮箱 | ✅ | ✅ | ✅ 无 | 免费/付费 | 低 |
| ImprovMX + Gmail | ✅ | ✅ | ⚠️ 有 | 免费(有限制) | 低 |
| 自建邮件服务器(Postfix) | ✅ | ✅ | ✅ 无 | 服务器费用 | 高 |
| Forward Email(开源) | ✅ | ✅ | ✅ 无 | 免费/付费 | 中 |
进阶:去掉 "via gmail.com" 标签(第三方免费 SMTP 方案)
问题根源
使用上面的基础方案(Gmail SMTP 发件),收件人在某些邮件客户端中会看到:
From: hello@yourdomain.com via gmail.com
或者在邮件头中暴露你的 Gmail 地址。这是因为:
- DKIM 签名不匹配:Gmail SMTP 用
google.com的 DKIM 签名,而不是你的域名 - Return-Path 暴露:邮件头中的
Return-Path是yourname@gmail.com,和From域名不一致 - Gmail 检测到 DKIM 签名域 ≠ From 域时,就会显示 "via" 标签
要彻底去掉 "via" 标签,需要用你自己域名的 DKIM 签名发送邮件。 这意味着不能用 smtp.gmail.com,而要用一个支持自定义域名 DKIM 的第三方 SMTP 服务。
方案:Brevo(原 Sendinblue)免费 SMTP
Brevo 提供免费 SMTP 服务,支持自定义域名 DKIM 签名,免费计划 300 封/天,无需信用卡,永久有效。
步骤 1:注册 Brevo 并获取 SMTP Key
- 注册 Brevo 账号
- 点击右上角账号名 → SMTP & API
- 在 SMTP 标签下,点击 Generate a new SMTP Key
- 复制生成的 SMTP Key(一长串字母数字)
步骤 2:验证发件人地址
- 进入 Senders & IP → Senders
- 添加
hello@yourdomain.com作为发件人地址 - Brevo 会发送验证邮件(通过 Cloudflare 转发到你的 Gmail),点击链接确认
步骤 3:配置域名 DKIM(关键步骤)
这是去掉 "via" 标签的核心——让 Brevo 用你的域名签名邮件:
- 进入 Senders & IP → Domains
- 点击 Add a domain,输入
yourdomain.com - Brevo 会给你几条 DNS 记录,回到 Cloudflare DNS 添加:
| 类型 | 名称 | 值 |
|---|---|---|
| TXT | mail._domainkey |
Brevo 提供的 DKIM 公钥 |
| TXT | @ | Brevo 验证码(用于验证域名所有权) |
- 回到 Brevo 点击 Verify,等待 DNS 生效(通常几分钟)
步骤 4:更新 SPF 记录
在 Cloudflare DNS 中,把 Brevo 也加入 SPF 授权:
v=spf1 include:_spf.mx.cloudflare.net include:spf.brevo.com ~all
注意:这里不再需要
include:_spf.google.com,因为发件不再走 Gmail SMTP。
步骤 5:在 Gmail "Send Mail As" 中使用 Brevo SMTP
回到 Gmail 设置 → 账号和导入 → Send mail as,编辑或重新添加你的域名地址,SMTP 配置改为:
| 字段 | 值 |
|---|---|
| SMTP 服务器 | smtp-relay.brevo.com |
| 端口 | 587 |
| 用户名 | 你的 Brevo 账号邮箱(注册时用的邮箱) |
| 密码 | 步骤 1 生成的 SMTP Key |
| 安全连接 | TLS |
完成后 Gmail 会发送确认码到你的域名邮箱(同样通过 Cloudflare 转发到 Gmail),输入确认码即可。
效果对比
| 基础方案(Gmail SMTP) | 进阶方案(Brevo SMTP) | |
|---|---|---|
| "via gmail.com" 标签 | ⚠️ 部分客户端显示 | ✅ 不显示 |
| DKIM 签名域 | google.com | yourdomain.com ✅ |
| Return-Path | yourname@gmail.com | Brevo 域名 |
| Gmail 地址暴露 | ⚠️ 邮件头中可见 | ✅ 不暴露 |
| 费用 | 免费 | 免费(300 封/天) |
| 配置复杂度 | 低 | 中(多了 DKIM 配置) |
其他可选的免费第三方 SMTP
| 服务 | 免费额度 | DKIM 支持 | 备注 |
|---|---|---|---|
| Brevo | 300 封/天,永久 | ✅ | 推荐,免费额度最大 |
| Resend | 100 封/天,3000 封/月 | ✅ | 开发者友好,API 优先 |
| SendGrid | 100 封/天 | ✅ | 老牌服务 |
| Mailgun | 1000 封/月(仅前 3 个月) | ✅ | 之后需付费 |
| Zoho Mail | 免费计划 5GB | ✅ | 完整邮箱服务,有隐藏的免费计划 |
💡 如果你每天发件量很少(个人博客、独立开发者),Brevo 的 300 封/天完全够用,且是目前免费额度最慷慨的选择。
常见问题
Q:收件人看到的发件人会不会显示 "由 Gmail 代发"?
使用基础方案(Gmail SMTP)时,部分邮件客户端可能会显示 "via gmail.com"。这是因为 DKIM 签名域和发件人域不一致。使用进阶方案(Brevo 等第三方 SMTP + 自定义 DKIM)可以彻底消除这个标签。
Q:可以配置多个域名地址吗?
可以。在 Cloudflare 中为每个地址创建转发规则,在 Gmail 中为每个地址添加 "Send Mail As" 配置即可。
Q:Cloudflare Email Routing 有数量限制吗?
免费计划没有明确的邮件数量限制,但不适合大量邮件场景(如营销邮件)。个人使用完全够用。
Q:为什么我发出的邮件进了对方垃圾箱?
最常见的原因是 SPF 记录没有包含 include:_spf.google.com。按第四步修改 SPF 记录后等待几分钟 DNS 生效再测试。
Q:能用 Outlook、QQ 邮箱代替 Gmail 吗?
原理相同,但具体配置步骤不同。Outlook.com 也支持 "Send Mail As" 功能,但配置方式略有差异。QQ 邮箱也支持类似功能,需要在设置中开启 SMTP 服务并获取授权码。
总结
通过 Cloudflare Email Routing + Gmail "Send Mail As",你可以零成本实现域名邮箱收发一致:
基础方案(Cloudflare + Gmail SMTP)——5 分钟搞定:
- ✅ 域名地址收发邮件,地址一致
- ✅ 不需要自建服务器,不需要付费
- ⚠️ 部分客户端显示 "via gmail.com"
进阶方案(Cloudflare + Brevo SMTP + DKIM)——多花 10 分钟:
- ✅ 彻底去掉 "via" 标签
- ✅ 自定义域名 DKIM 签名,更专业
- ✅ 不暴露 Gmail 地址
- ✅ 免费(300 封/天)
根据你的需求选择方案。对大多数独立开发者和个人博客来说,进阶方案的额外 10 分钟配置非常值得。