Fastmail 自定义域名:SPF、DKIM 与 DMARC 配置

在 Fastmail 添加自定义域名并正确发布 MX、SPF、三条 DKIM CNAME 与 DMARC 记录,附常见 DNS 与 Cloudflare 错误的处理办法。
4 分钟阅读
更新于 2026-11-04
平台专区
fastmailspfdkimdmarc自定义域名

Fastmail 替你托管自有域名的邮箱,但它改不了你的 DNS。你在设置里添加域名,Fastmail 给出几条记录,你再到域名解析所在的地方发布。记录没配好之前,邮件要么收不到,要么收到了却没有通过认证。

整套操作大约十五分钟。本文按 Fastmail 目前文档给出的记录逐条说明,并告诉你怎么确认域名变为可用状态。

准备工作

  • 包含自定义域名功能的 Fastmail 付费套餐。
  • DNS 服务商或域名注册商控制台的登录权限。
  • 域名已完成注册。Fastmail 的向导会先检测注册状态,再给出配置说明。
  • 十五分钟时间,以及"不会立刻生效"的心理准备——多数改动几分钟可见,但完整传播要留几小时。

第一步:在 Fastmail 添加域名

登录 Fastmail,打开设置中的域名,点击添加域名,选择"使用我已拥有的域名"并填入。按向导创建邮箱地址,结束后 Fastmail 会生成与你场景匹配的配置说明。

如果这个域名还挂着网站,不要把 NS 迁到 Fastmail。选择保留现有 DNS、逐条添加记录的方式。迁移 NS 会连同网站的解析一起搬走。

第二步:把 MX 指向 Fastmail

两条 MX 负责收信,优先级数字越小越先尝试:

@   MX   10   in1-smtp.messagingengine.com
@   MX   20   in2-smtp.messagingengine.com

把上一家服务商留下的 MX 记录删掉。邮件只会按现存的 MX 投递,残留一条就会有一部分信件被送到你早已不看的邮箱。

第三步:发布 SPF

Fastmail 文档给出的记录使用中性限定符:

@   TXT   v=spf1 include:spf.messagingengine.com ?all

?all 的意思是"对其他来源不作断言",这是 Fastmail 偏保守的默认值。有些教程写成 ~all,两者都合法;~all 会把未授权来源标记为软失败,在你确认没有其他发信源之后收紧到这个值是合理的。唯一不能做的是再发一条 v=spf1 记录——已有记录时,把 include 并进去:

v=spf1 include:spf.messagingengine.com include:spf.example.com ~all

用 SPF 检测核对结果,它会统计 include 消耗的 DNS 查询次数——如果你还接了邮件列表或工单系统,这个数字很容易逼近 10 次上限。

第四步:添加三条 DKIM CNAME

Fastmail 用三个 selector 签名,这样轮换密钥时不需要你改 DNS。三条都要加,缺一条就会有一部分邮件没有签名。

fm1._domainkey   CNAME   fm1.yourdomain.com.dkim.fmhosted.com
fm2._domainkey   CNAME   fm2.yourdomain.com.dkim.fmhosted.com
fm3._domainkey   CNAME   fm3.yourdomain.com.dkim.fmhosted.com

目标值请从你自己的 Fastmail 页面复制:每个值中间都嵌着你的域名,照抄文章里的示例只会指向别人的公钥。早期托管在 Fastmail 的域名可能还有一条 mesmtp._domainkey,界面里列出来了就保留。

用 Cloudflare 的注意:这三条 CNAME 必须设为仅 DNS。橙色云朵会把 CNAME 代理到边缘节点,DKIM 查询拿不到真正的 TXT 值,验签必然失败。

第五步:自行发布 DMARC

Fastmail 不管理你的 DMARC 策略,需要自己在 _dmarc 下加一条 TXT:

_dmarc   TXT   v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com

即便配置很简单也从 p=none 起步——这条记录同时要求接收方回传报告,而报告正是你发现"网站表单还在用旧服务发信"的唯一途径。干净运行几周后,再升到 p=quarantine、最后 p=reject。想先校验语法,可以用 DMARC 生成器。

如果域名还有别的发信来源,比如客服系统或电商平台代发通知,先把它的 include 合并进同一条 SPF,再观察报告里该来源是否稳定通过。新增来源时最容易忘的就是这一步。

验证配置

回到设置 → 域名,点击重新检查 DNS。域名应显示为可用,并提示已找到 MX 记录。然后从 Fastmail 往自己的 Gmail 发一封信,打开显示原始邮件,目标是 spf=pass、dkim=pass、dmarc=pass。

外部核对用 DKIM 检测——fm1、fm2、fm3 各跑一次——加上 DMARC 查询与 MX 查询。想一次看全,直接跑 邮件健康检查。

常见错误

  1. 只加了一条 DKIM selector。用 fm2 或 fm3 签名的邮件,因为对应 CNAME 缺失而验签失败。
  2. CNAME 留在 Cloudflare 代理状态。DKIM 查询需要真实的 CNAME 目标,而不是 Cloudflare 的边缘节点。
  3. 保留旧服务商的 MX。部分投递比彻底中断更糟,因为它是静默的。
  4. 出现两条 SPF。把 Fastmail 的记录加在原有记录旁边会让两条同时失效,正确做法是合并 include。
  5. 一上来就 p=reject。任何被遗忘的发信源——打印机、网站表单——都会毫无预警地开始退信。

常见问题

Fastmail 到底该用 ?all 还是 ~all?

官方文档写的是 ?all。~all 更严格,确认所有发信源之后很多管理员会改成它。两者都不影响 DMARC 对齐,而真正保护域名的是对齐。

三个 DKIM selector 都必须加吗?

必须。Fastmail 可能用其中任意一个签名,三个并存的意义就在于轮换密钥时无需改 DNS。只加 fm1,会有一部分邮件无法验证。

网站托管在别处,还能用 Fastmail 吗?

可以。NS 保持不动,只添加邮件相关记录即可。把 NS 迁到 Fastmail 会连网站解析一起搬走。

为什么 Fastmail 一直显示域名未检查通过?

要么解析还没传播完,要么某个值差了一个字符。等一小时再点重新检查,并把每条记录与你自己域名页面上的值逐字比对,而不是对照教程。

这篇指南有帮助吗?