网站换了国内的备案域名,想要用自己的域名做个邮件服务。量比较小,就没自己搭 SMTP 服务,直接用的腾讯企业邮箱。看了下免费账号有 1G 空间,功能也都能满足要求,网站使用完全够了。
DNS 冲突
注册完以后就要添加 MX 记录,域名在阿里云买的,到控制台添加 MX 记录时出问题了,提示 “MX”记录与“CNAME”记录冲突。

阿里云帮助里正好有相关文档,查看解析记录冲突规则,第一条示例就是说 MX 和 CNAME 会发生问题 😅。

文档还拿出了 RFC 1034 和 RFC 2181 标准,感觉确实没办法共存了。
因为个人习惯在浏览器输入域名上网,现在主流网站都可以用主域名直接访问了,所以自己的网站就直接使用了主域名。
而网站又使用了 CDN,主域名的 DNS 解析用到了 CDN 的 CNAME 上,就和要用的邮箱 MX 记录冲突了。
主流邮件服务商的邮箱地址都是用主域名做的,比如 @gmail.com
和 @qq.com
。本人还有强迫症,所以对 @mail.sekiro.top
这样的邮件地址没法接受。
寻找解决方案
现代网站用主域名做首页,那这种和邮件冲突的问题是不是还挺常见,会不会有人已经解决了呢?抱着这个期望,直接搜索引擎走起。主要得到以下几个解决方案:
用NS记录接入CDN服务商
使用 NS 接入替换 CNAME 接入,国内的 360 网站卫士和百度云加速、国外的 Cloudflare 等 CDN 服务商支持这种接入方式。
因为现在用的这家 CDN 流量还剩挺多,暂时没打算换,只能 Pass。
使用ALIAS (CNAME Flattening) 记录代替CNAME记录
ALIAS 记录,又称 CNAME Flattening
记录,是一种 CNAME 记录的替代型记录。它能够起到和 CNAME 记录完全一样的效果,即将一个域名设置为另一个域名的别名,而唯一的差别就是 ALIAS 记录不会与其他记录发生冲突。
看了下国内主流 DNS 服务商不支持这种,要用的话 DNS 要转到 Cloudflare(怎么又是你),暂时做个备选方案吧。
使用www域名接入CDN
这个最简单,直接把网站换成 www,主域名用于邮箱,皆大欢喜。
但是强迫症又犯了,域名不喜欢用多余的 www,因为这本就是互联网早期的产物,Chrome甚至在地址栏不会显示 www。
于是去了解了下 www,网上的主流讨论,除了主域名绑 CNAME 兼容性(为啥主流 DNS 没有禁止)和 Cookie 作用范围这些技术原因,其他的都是些小问题,倒是有篇情怀文章看着还有点意思。
为此还测试了国内外主流网站的域名使用情况,结果外国网站除了网飞和推特,全都是是用传统的 www 域名;国内更惨,只有微博用的主域名。
网站 | 是否使用www |
---|---|
是 | |
Baidu | 是 |
Taobao | 是 |
Youtube | 是 |
Bilibili | 是 |
是 | |
是 | |
JD | 是 |
Amazon | 是 |
否 | |
否 | |
Netflix | 否 |
iQiyi | 是 |
Twitch | 是 |
Douyu | 是 |
Wikipedia | 是 |
是 | |
是 | |
Microsoft | 是 |
不过也有意外,程序员常用的网站都是直接用主域名访问的,看来都是同道中人。
网站 | 是否使用www |
---|---|
Github | 否 |
Stack Overflow | 否 |
以上所有域名点击后都是到不带 www 的主域名,但是绝大多数都会 301 跳转到带 www 的域名。
正如前文所说,Chrome 把 www 隐藏了,只有在地址栏复制出域名,才知道是不是做了跳转,所以最好用 Edge 来观察,比较节省时间。另外没列出的 V2EX 是两种域名都支持,没有做 301 跳转,也是比较个性。
峰回路转
没办法准备切换到 www 域名,配好新域名的 CDN 配置后,等待 CDN 启动。翻了翻前面搜索结果,看到有篇 V2EX 的帖子,提到了 DNSPod 曾经可以共存,好像还有官方工作人员回复要恢复这个功能,就还想再试试看。
域名换到腾讯云的 DNS 后,立马开始添加,结果尴尬了,右上角出现了错误提示,也是一样的问题。

难道白忙活一场,不过来都来了,看到这边还有新的控制台,就再试了下。

结果神奇的事情发生了,到了 DNSPod 这边,居然成功了,DNSPod 的官方文档都显示这两种记录不能共存。

然后看了下,发现腾讯云和 DNSPod 添加解析记录调的接口都不一样,看来 DNSPod 并没有关掉这个口子,但是这个能不能稳定长期使用,还要打个问号。

加好以后,试了下邮箱功能,收发邮件都正常,没想到以这种方式解决了问题。
如果想用主域名和邮箱共存,可以试试 DNSPod 的解析,要是经常出问题的话, DNSPod 也不会保留这个共存。
有机会以后再试试 Cloudflare,看起来还挺多黑科技的。
发表回复