Jez*_*ers 7 email dns cname mx-record azure
我们有一个在Microsoft Azure上运行的应用程序,并设置了一个CNAME记录来覆盖域名,因此我们可以拥有http://example.com的优秀网址(注意我在整个过程中用example.com替换我们的真实域名).
CNAME
mydomain.com -> mydomainapp.cloudapp.net
Run Code Online (Sandbox Code Playgroud)
我们正确设置了MX和A记录,因此MX包含mailserver.example.com和将邮件服务器指向正确IP地址的A记录.
MX
mailserver.example.com
A
mailserver -> 198.168.111.111 (note this IP is fictitious)
Run Code Online (Sandbox Code Playgroud)
一切都很好,对于大多数电子邮件但是对于一些邮件服务器(不知道还有什么技术)他们现在使用的是CNAME而不是MX和A记录.
因此,发送到jerry@example.com的电子邮件实际上发送到jerry@exampleapp.cloudapp.net,其中example.cloudapp.net是Azure上我们使用CNAME映射的域.
EMAIL TO: jerry@example.com
BECOMES: jerry@exampleapp.cloudapp.net
Run Code Online (Sandbox Code Playgroud)
我能找到的唯一建议只是说没有域级CNAME或根本不使用CNAME,但当然Azure IP地址可以更改,所以我们必须使用CNAME.我们可以为www.example.com的所有内容添加前缀,但肯定必须有更好的解决方案.
任何想法都非常感激.
好的,经过大量研究,似乎最好的(至少在我看来)解决方案是使用 A 记录而不是 CNAME 作为域级别记录。
您可能会尖叫“什么!IP 地址是动态分配的!”。是的,但前提是您拆除部署并替换它。只要您发布到暂存并使用“交换生产和暂存”选项,Windows Azure 就会保留您的 VIP 地址。这样做可以保留您的 VIP 地址,以便您可以在 DNS 中使用 A 记录而不是 CNAME。
请参阅http://www.windowsazure.com/en-us/develop/net/common-tasks/custom-dns/了解一些背景信息。
注意MS官方路线是推荐CNAME而不是A记录,因为可能会交换IP地址,但我猜他们并没有考虑到人们想要在Azure平台上运行http://mydomain.com 。
我还找到了其他可能的解决方案,包括在您的应用程序中构建一个 SMTP 侦听器,该侦听器读取端口 25 上的邮件并将其转发回来。技术上很好,但我脑海中浮现出大锤和坚果,而且这又是一件容易出错的事情,当然还要付出更多的资源。