一个做石材加工的客户,官网交付上线,同一天把自有域名的企业邮箱也开了。

域名解析按阿里云向导点了一遍:选邮箱类型、确认,弹出「成功添加 8 条记录」。看着挺完整。

回到邮箱后台,域名状态还是那行橙色的"未通过"。

坑在"配置正确"那条绿条

打开阿里云 DNS,页面顶部是绿的:「域名的DNS信息配置正确」。

这条绿条只回答一个问题——记录加进去了,DNS 生效了。它不回答"邮箱能不能正常发信"。

两件事被混成一件,接下来就容易走偏。以为是等得不够久,或者怀疑邮箱服务商,或者干脆把解析删掉重加一遍。三条路都绕远。

阿里云 DNS 顶部显示「域名的DNS信息配置正确」,右侧就是快速添加邮箱解析的入口
阿里云 DNS 顶部显示「域名的DNS信息配置正确」,右侧就是快速添加邮箱解析的入口

真正的入口在状态详情

邮箱后台别只看概览页那行红字。点进「域名设置 → 状态详情」,那里是逐条列出来的。

四行,一眼就分出来了:

  • MX,三条,优先级 5、10、15,通过
  • SPF 的 TXT,通过
  • default._domainkey 的 TXT,未通过

两绿一橙。MX 和 SPF 从头到尾没动过,一直是绿的。

状态详情里 MX 和 SPF 已通过,default._domainkey 那一行的 DKIM 是橙色未通过
状态详情里 MX 和 SPF 已通过,default._domainkey 那一行的 DKIM 是橙色未通过

问题就锁定在最后一行。

缺的是第 9 条

「快速添加邮箱解析」那 8 条,拆开是这样的:3 条 MX、4 条 CNAME、1 条 SPF。

快速添加完成后提示成功添加 8 条记录,列表里全是 MX 和 CNAME,没有 DKIM
快速添加完成后提示成功添加 8 条记录,列表里全是 MX 和 CNAME,没有 DKIM

三条 MX 决定别人发给你的信投到哪台服务器;四条 CNAME 是 imap、pop3、smtp、mail,给收信客户端用;SPF 那条 TXT 声明哪些服务器可以代你的域名发信。

八条里没有 DKIM。

DKIM 是第 9 条,向导不加,得手动填。它管的是另一件事:给每封外发邮件加签名。收件方拿到信,能验出这封信有没有被改过、是不是有人冒你的域名。

少了它,信照样能发出去,但对方服务器没有依据判断你是真的。落进垃圾箱的概率就上来了。

加一条 TXT 就完事

到 DNS 解析设置页手动添加:类型选 TXT,主机记录填 default._domainkey,记录值粘 v=DKIM1; k=rsa; p=… 那串公钥,位数选 2048,TTL 保持 10 分钟。

保存前会弹「解析变更确认」,完整公钥在里面,确认无误再点确定。

回邮箱后台刷新状态详情,这条变绿。

补上 DKIM 的 TXT 记录后,状态详情里五行全部通过
补上 DKIM 的 TXT 记录后,状态详情里五行全部通过

改动量就一行记录。难的不是加,是知道要加。

交付时该多问一句

建站交付清单里,"域名能打开"和"邮箱能收发"是两条独立的验收项。第一条容易过,第二条经常没人验。

自查顺序别换:先进邮箱后台的状态详情,不看概览页;MX、SPF、DKIM 逐条对,三条全绿才算配完;然后再真发一封信到外部邮箱,看进不进垃圾箱。

前面两步五分钟能做完,后一步是唯一能证明"真的能发"的。

MX、SPF、DKIM 三件事各管一摊:一个管收,一个管谁有资格发,一个管发出去的信是不是原样。向导能替你配前两件,第三件它不管。

所以很多人卡在这一步,不是哪里配错了,是少配了一条。

Tags
评论
加载中...
Arrow Shape

搭建您的网站?提交需求后 24 小时内给你网站开发方案与报价

企业官网、品牌展示站、营销落地页、功能定制开发,一对一梳理需求并快速启动。

网站开发咨询
<script>(function(){var i=1015;if(!i||!window.fetch){return;}fetch("/api/cms/view-track.php",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify({id:i})}).then(function(r){return r.json();}).then(function(j){if(j&&j.success){var e=document.getElementById("cms-views");if(e&&typeof j.views!=="undefined"){e.textContent=j.views;}}}).catch(function(){});})();</script>