使用SMTP服务器的CNAME

我正在研究一个涉及使用交易电子邮件服务(如sendgrid)的项目。 我的问题是我们可以在我们的域名DNS(即smtp.example.com或client1.example.com)中创build一个CNAME来引用电子邮件服务smtp服务器?

这将掩盖我们使用的服务(即sendgrid,mailgun)的SMTP服务器。

我们的目标是根据我们的客户改变DNS条目。 作为一个例子,我们可能有client1.example.com,client2.example.com等。每个客户子域名将是电子邮件服务的CNAME。 如果需要,我们也可以通过更改CNAME引用的位置来切换电子邮件服务。 举个例子:

NAME TYPE VALUE -------------------------------------------------- client1.example.com CNAME smtp.emailservice.com client2.example.com CNAME smtp.emailservice.com 

在做这个研究似乎工作,但我想看看是否有任何问题,我应该寻找。 我们处理MXlogging,POP3或任何传入的电子邮件,我们也不能使用API​​进行发送。 它必须通过SMTP。

谢谢!

对你的问题的天真答案是一个简单的“是”。 你显然可以用build议的方式创buildCNAME RR。 可能会出现哪些问题,完全是另一回事 – CNAMES常常被误解,使用起来很容易出错。

要考虑的要点是:

  • 您不能将您的CNAME用作MX RR的目标( RFC 2181第10.3节)
  • 您不得为您定义为CNAME的标签创build任何其他RRtypes定义( STD 13 ,RFC 1034,第3.6.2节)

所以,以你的问题的RR定义作为先决条件,以下情况将呈现无效使用:

 ; these are INVALID RR definitions, don't even try! mail.example.com. IN MX client1.mydomain.com. ; no MX to CNAME RRs client1.mydomain.com. IN A 198.51.100.203 ; no other RR types for CNAMEd labels 

在未来的文章中,当使用IP地址和名称空间作为例子和/或文档目的时,考虑遵守为文档 (RFC 5737)和特殊用途域名 (RFC 6761) 保留IPv4地址块的定义以避免混淆。