Voss Wang

给自己的域名配一个只收信邮箱

2026-11-02 · 域名 / 邮件

需求很具体:一个能收验证码、又不把主邮箱暴露给每个注册过的网站的地址。不需要发信,不需要日历和通讯录,也不想为此付月费。

结论:域名 + Cloudflare Email Routing。域名年费是唯一成本,转发本身免费。

为什么不选另外两条路

方案问题
买企业邮箱按账号按月计费,一个收信地址用不上这些功能
自建 SMTP25 端口普遍被封、IP 信誉要从零养、发出去容易被判垃圾邮件;而且我只需要收
临时邮箱服务域名在公开黑名单里,注册正经账号会被直接拒

前提

域名的 NS 必须指向 Cloudflare。这一步和「转移注册商」是两件事——域名继续留在原注册商,只把解析托管换过去,不产生费用。

# 确认 NS 已经生效
nslookup -type=ns example.com 1.1.1.1

配置过程

1. 添加目标地址。Cloudflare 后台 → Email → Email Routing → Destination addresses,填入现有邮箱。Cloudflare 会往该邮箱发一封验证信,点里面的链接完成验证。

2. 启用 Email Routing。点 Enable 后,Cloudflare 会自动写入 MX 记录和 SPF 记录。如果域名已有旧 MX,会提示冲突,选择替换。

3. 建规则。两种方式:

  • Custom address:指定 contact@、signup@ 这类固定地址;
  • Catch-all:任意前缀全部接收,适合「每个平台用一个前缀」的用法。

最终的 DNS 记录

类型名称值来源
MX@route1.mx.cloudflare.net (10)
route2.mx.cloudflare.net (20)
route3.mx.cloudflare.net (30)
自动
TXT@v=spf1 include:_spf.mx.cloudflare.net ~all自动
TXT_dmarcv=DMARC1; p=none; rua=mailto:[email protected]; fo=1手动
CAA@0 issue "letsencrypt.org"手动

_dmarc 不是收信必需,但它是一条「这个域名有人在维护」的明确信号,而且 rua 能收到各家的汇总报告。新域名先用 p=none,只观察不拦截。

验证

nslookup -type=mx  example.com 1.1.1.1
nslookup -type=txt example.com 1.1.1.1
nslookup -type=txt _dmarc.example.com 1.1.1.1
nslookup -type=caa example.com 1.1.1.1

然后从另一个邮箱发一封测试信,确认能在目标邮箱里看到。Cloudflare 的 Email Routing → Activity log 会记录每一封的投递结果,排查时先看这里。

三个坑

1. DNSSEC 不要开

如果域名是通过某些促销渠道注册的,首年可能不支持 DNSSEC(注册商侧没有 DS 记录)。这种情况下在 Cloudflare 打开 DNSSEC,会让整个域名解析失败——邮件和网站一起挂。确认注册商支持后再开。

2. 只收不发

Email Routing 是单向的。在 Gmail 里点「回复」,发件人是你的 Gmail 地址,不是域名地址。收验证码、点验证链接完全够用;需要「回信确认」的场景不行。

3. 转发信容易进垃圾箱

转发会改变信封发件人,部分邮件系统会因此加分。在目标邮箱里给这个地址建一条过滤器(永不判为垃圾邮件),比事后翻垃圾箱省事。

成本

域名年费 + 0。没有按量计费,没有账号数限制,转发量对个人使用来说远达不到任何阈值。


相关:NS 改了但站点不生效