我们有一个在Microsoft Azure上运行的应用程序,并设置了一个CNAME记录来覆盖该域,因此我们可以使用http://example.com这个漂亮的URL(请注意,在整个过程中,我用example.com替换了真实的域)。
CNAME
mydomain.com -> mydomainapp.cloudapp.net
我们已经正确设置了MX和A记录,因此MX包含mailserver.example.com和一个A记录,该记录将mailserver指向正确的IP地址。
MX
mailserver.example.com
A
mailserver -> 198.168.111.111 (note this IP is fictitious)
很好,对于某些邮件服务器的大多数电子邮件BUT(尚不确定采用哪种技术),他们现在正在使用CNAME而不是MX和A记录。
因此,发送到[email protected]的电子邮件实际上已发送到[email protected],其中example.cloudapp.net是我们已与CNAME映射的Azure域。
EMAIL TO: [email protected]
BECOMES: [email protected]
我能找到的唯一建议只是简单地说没有域级别的CNAME或根本不使用CNAME,但是Azure IP地址当然可以更改,因此我们必须使用CNAME。我们可以在所有网址前加上www.example.com,但肯定必须有一个更好的解决方案。
任何想法表示赞赏。
最佳答案
无法在域级别使用CNAME记录,因为CNAME是所有RR类型的别名,因此总是也会导致MX,SOA,NS等查询的重定向。
RFC1912第2.4节的以下摘录非常清楚地说明了这一点:
因此,您一定不能对mydomain.com
使用CNAME记录!
因此,您必须为mydomain.com
设置A记录(在MX:s和其他记录中根据需要),因为这是DNS唯一可行的解决方案。
关于email - 适用于Azure应用程序的CNAME导致MX和A记录被忽略的电子邮件问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15886288/