我有一个域名,该域名使用我的另一个域名来处理邮件。我无法配置它以使所有邮件客户端都能与我的域名很好地兼容。
就和而言foo
,bar
是foo.com
我的“主要”服务器:
foo.com
我的邮件服务器foo.com
:MX 记录 => IP 地址mail.foo.com
:MX 记录 => IP 地址mail.foo.com
:A记录=>IP地址
我的域名bar.com
使用foo.com
:
bar.com
:MX 记录 =>mail.foo.com
mail.bar.com
:MX 记录 =>mail.foo.com
我无法添加以下内容mail.bar.com
:
mail.bar.com
:CNAME 记录 =>mail.foo.com
当我尝试输入 CNAME 记录以便某些邮件客户端可以通过连接时mail.bar.com
,出现错误:
Duplicate subdomains are not allowed between these record types: MX; CNAME
本质上这个错误是说我不能拥有:
mail.bar.com
:MX 记录 =>mail.foo.com
mail.bar.com
:CNAME 记录 =>mail.foo.com
我不太理解错误消息,因为资源记录指定了不同的服务。尝试向域发送电子邮件的人将使用 MX 记录;而尝试检索其电子邮件的人将使用 CNAME 记录。
我在看RFC 1035,但我没有看到标准在哪里禁止这种组合。我也尝试遵循一些更新的 RFC,但其中许多并不适用于基础服务实现。
MX 和 CNAME 是否互斥?如果是,有参考吗?
以下是相关问题:无法使用 Thunderbird 配置帐户(邮件帐户设置损坏)。Thunderbird 拒绝让我创建帐户。我尝试通过添加 CNAME 来调整 DNS,看看是否有帮助。
答案1
答案2
这有点儿扭曲了。让我们来理清它。
首先,您的邮件服务器不应称为 foo.com,您几乎肯定会希望附加到该服务器的 A 记录指向您的 Web 服务器,而不是您的邮件服务器。这没问题,因为您[email protected]
使用 MX 记录设置电子邮件地址,这就是它们的用途。
我假设您将调用并配置您的邮件服务器,使其知道自己是mail.foo.com
,即,这将是它的完全合格主机名。然后,您可以将其配置为邮件的最终目的地,[email protected]
以及使用同一域的源电子邮件(发件人)。稍后,您还可以将其配置为[email protected]
邮件的最终目的地,但现在先不要管它。
因此,目前您在 DNS 中需要的内容是:
foo.com. IN MX 10 mail.foo.com.
mail.foo.com. IN A 12.12.12.12
(当然,将 12.12.12.12 替换为您的邮件服务器的真实 IP 地址)
您还需要安排您的托管服务提供商放入一个 PTR 记录(反向映射条目),将 12.12.12.12 反向映射到您的邮件服务器的名称(mail.foo.com)。
这就是在 DNS 中邮件运行所需要的全部内容。
如果您现在想让您的邮件服务器接受邮件[email protected]
。您需要做的就是添加另一个附加到 bar.com 域的 MX 记录以将邮件发送到您的邮件服务器,如下所示:
bar.com. IN MX 10 mail.foo.com.
然后,当然,将您的邮件程序配置为 bar.com 邮件的最终目的地。
就这么简单。这样,附加到 foo.com 和 bar.com 的 A 记录就可以指向 Web 服务器了。
最后一步是添加发件人策略 (SPF) 记录,以便您可以指示这两个域的授权发送邮件程序 (MTA) 是谁。您可以像这样添加 TXT 记录:
foo.com. IN TXT "v=spf1 mx -all"
bar.com. IN TXT "v=spf1 mx -all"
您还可以进一步设置/配置 DKIM,但这涉及密钥和签名,因此会更复杂一些。Google 是您的好朋友。
希望有所帮助。