在域名服务器上正确存放邮件的本质,是配置一套完整的邮件解析与验证记录(MX、A、SPF、DKIM、DMARC),让域名告诉全世界的邮件服务器“该把信送到哪里”以及“怎么验证我的身份”,而不是把邮件正文存进DNS里。
很多站长第一次搞邮箱时,直接把域名解析指向服务器IP,然后发现信发出去被扔进垃圾箱,或者根本收不到,原因很简单:域名服务器不是邮箱仓库,它只负责指路,真正存放邮件的是邮件服务器(如cPanel、宝塔、Mailcow、腾讯企业邮),而域名服务器要做的,是把路标立准确,下面这套流程和坑点,是多年运维老手会直接甩给你看的东西。
域名服务器与邮件服务器的职责边界
先厘清一个大问题:域名服务器根本不存邮件内容,邮件正文、附件、收件箱数据,全在邮件服务器硬盘上,域名服务器(DNS)只存“邮件路由信息”,也就是各种DNS记录。
- MX记录:告诉全世界“收这个域名的信的服务器是哪个”。
- A记录:把邮件服务器主机名解析成IP地址。
- TXT记录(SPF、DKIM、DMARC):声明“谁有权用这个域名发信”“怎么验签”“信验不过该怎么处理”。
行业共识认为,大约相当一部分自建邮箱发信被拒收,问题就出在这三类记录配置不全或互相冲突上,而不是邮件服务器软件本身有问题。
为什么不能把邮箱直接放在域名服务器上
有人图省事,想把邮箱功能挂在DNS服务器上,但DNS服务器的主要任务是把域名解析成IP,它既没有存储大量邮件的能力,也没有SMTP/POP3/IMAP服务程序,就算强行塞进去,也扛不住邮件读写的高并发,专业的事交给专业的服务,邮件进域名服务器,只会把解析速度拖垮,还会让邮件全丢。
域名邮箱怎么设置解析:核心配置步骤详解
以一个真实场景为例:你在简米云买了个域名,租了一台CentOS服务器,装了邮局系统,下面这几步是域名解析邮件记录的标准操作。
第一步:先建A记录,再建MX记录
顺序不能乱,因为MX记录最终要指向一个主机名,而主机名需要A记录来解析。
- 登录域名注册商控制台,找到“解析设置”或“DNS管理”。
- 添加一条主机记录为
mail的A记录,记录值为邮件服务器公网IP,TTL设为600秒(10分钟)。 - 等待几分钟,让这条A记录生效,可以用
ping mail.你的域名.com验证解析结果。 - 接着添加MX记录,主机记录填 (代表根域名),记录值填
mail.你的域名.com,优先级填 10。 - 如果有备用服务器,再加一条MX记录,优先级填 20,值指向备用服务器地址。
数字越小优先级越高,只有一条MX记录时,优先级填什么都没关系,但习惯上写10,给将来留余地。
第二步:SPF记录,防止被当成垃圾邮件
SPF是一段TXT记录,声明哪些IP或主机名有权用你的域名发信。没有SPF,你的邮件很容易被对方服务器拒收或丢进垃圾箱。
在DNS管理里添加一条TXT记录:
- 主机记录:
- 记录值:
v=spf1 mx a:mail.你的域名.com -all
拆解一下这段值:
mx:允许MX记录指向的服务器发信。a:mail.你的域名.com:允许这个A记录地址发信。-all:其他任何服务器都禁止用本域名发信(这是最严格策略)。
如果你用了第三方邮件代发服务(比如SendCloud、简米云邮件推送),需要在 a:mail.你的域名.com 后面追加 include:spf.第三方.com,才能保证代发服务不被拒,多套SPF规则会报错,只能合并成一条TXT记录。
第三步:DKIM签名记录,给邮件盖数字戳
DKIM是一种数字签名机制,邮件服务器给发出的每封信加一段签名,接收方从DNS里取公钥验证签名真实性,这是目前对抗伪造邮件的最有效手段之一。
不同邮件系统生成DKIM密钥的方式不同:
- 宝塔/Postfix:在邮局管理界面生成密钥,会得到一条TXT记录,主机记录类似
default._domainkey,记录值是v=DKIM1; k=rsa; p=一大串密钥。 - 腾讯企业邮/阿里企业邮:后台会有“开启DKIM”按钮,直接复制生成好的记录值粘贴到DNS即可。
第四步:DMARC记录,告诉对方“验不过怎么处理”
DMARC记录定义了收件方在SPF或DKIM验证失败时的处理策略。
添加一条TXT记录:
- 主机记录:
_dmarc - 记录值:
v=DMARC1; p=quarantine; rua=mailto:postmaster@你的域名.com
参数说明让不少新手头疼,但常用就这么几个:
p=none:只监控不拦截,适合初期调试。p=quarantine:怀疑邮件进垃圾箱。p=reject:直接拒收。
建议刚开始从 none 跑几天,观察到监控报表(rua地址会收到XML摘要)确认SPF和DKIM都正常后,再改成 quarantine 或 reject。
邮件服务器域名解析配置的常见坑
下面这些坑,多数情况下是管理员自己踩进去又很难发现的。
TTL设置太短导致解析风暴
有的教程让你把TTL改成60秒,方便测试,但如果你有多个DNS记录,每条都60秒,你的DNS服务器会累死,甚至被云厂商限流,日常运行建议TTL设在3600秒(1小时),要变更IP时,提前一天把TTL调到300秒,等切换完成后再调回来。
MX记录值末尾的句点问题
在专业DNS编辑界面(如Cloudflare、Bind),MX记录值 mail.你的域名.com 必须写成 mail.你的域名.com. 末尾带点,不带点,DNS会把它拼成 mail.你的域名.com.你的域名.com,直接失效。这是最隐蔽的配置错误之一。
多个SPF记录互相覆盖
刚才提到SPF只能有一条,如果你从网上复制一段教程贴了一条,又去邮件服务商后台点了一键添加SPF,DNS里就会存在两条SPF TXT记录,接收方会按fail处理,你的邮件几乎全部进垃圾箱,检查方法:
nslookup -q=TXT 你的域名.com
看到两条以上以 v=spf1 开头的记录,立刻删到只剩一条。
A记录与MX记录指向不同IP
假设你的MX记录指向 mail.你的域名.com,但你的 mail 这个A记录却指向了另一个IP,邮件全被投递到错误地址,多数情况下,打开邮件日志会发现 connection timed out 或 host not found,排查命令:
dig mx 你的域名.com dig a mail.你的域名.com
对比两条结果的IP和主机名,是否与邮件服务器实际配置一致,不一致时,优先改MX记录,因为它决定投递方向,A记录决定最终落点,两者必须闭环。
如何验证邮件DNS配置是否全部正确
配置完别急着发信,先用工具检查一遍,业内专家指出,新建邮箱域名时,配置验证至少占去整体搭建时间的三成,这是保证后续稳定发信的必要成本。
本机命令行验证
nslookup -q=MX 你的域名.com:看MX记录是否返回正确的服务器主机名。nslookup -q=TXT 你的域名.com:查看SPF记录。nslookup -q=TXT default._domainkey.你的域名.com:查看DKIM公钥。nslookup -q=TXT _dmarc.你的域名.com:查看DMARC策略。
邮件服务商后台验证
腾讯企业邮、阿里企业邮、Zoho Mail等都有“域名验证”向导,你只需把要求的记录都添加好,点“验证”,它会逐条检测,哪条没生效会直接高亮提示,这种方法对新手最友好,但注意它只能验证记录是否存在,不能验证记录的值是否语义正确。
真实发信测试
最可靠的一步,用你的邮箱给Gmail或Outlook发一封测试邮件,然后查看邮件原始源码(Gmail里点“显示原始内容”),检查:
spf=pass是否出现。dkim=pass是否出现。dmarc=pass是否出现。
看到三个 pass,说明你的域名解析邮件记录全部正确,可以放心使用,任一 fail 或 neutral,回看对应记录,大概率是记录值里多了空格或分号。
Q&A:域名服务器邮件配置常见疑问
域名怎么添加邮件解析可以最快生效?
最快的方式是使用云解析服务商的API接口或批量导入功能,比如在简米云解析控制台,一次添加MX、A、TXT四条记录,提交后系统通常在一分钟到十分钟内完成全球生效,普通DNS修改一般不会超过24小时,耐心等待的同时,用海外DNS工具网站查询实时解析结果可以判断生效范围。
自建邮件服务器和第三方企业邮箱怎么选?
自建邮件服务器适合有固定公网IP、懂运维、需要完全掌控数据的团队,缺点是反垃圾策略维护成本高,出问题要自己负责全部环节,第三方企业邮箱(如腾讯企业邮、Zoho)适合绝大多数中小公司,因为对方已经帮你在各大邮箱厂商那里做好了信誉白名单,发信送达率远高于自建新域名,从成本看,第三方轻量版一年几百元,自建则还要算上服务器费用和运维人力,国内环境下,自建邮箱发往QQ或163邮箱容易碰壁,具体取决于服务器IP信誉和备案情况。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/772265.html


