我的公司使用 SBS 2003 服务器并使用 Exchange 托管我们自己的电子邮件。我们还有一个 Linux 服务器,为我们的某些客户托管域。为了能够将邮件发送给这些客户,我们设置了内部 DNS 来隐藏客户域,以便在我们的网络内提供“正确的”MX 记录。例如,域 abc.com 的公共 DNS 可能指向 1.2.3.4,但在内部,我们设置了 MX 记录以将 abc.com 的邮件路由到 172.16.0.4,即 Linux 电子邮件服务器。这个设置完全可以发挥作用;这只是背景故事。
我们最近将我们的一个客户域从内部 Linux 服务器移至外部电子邮件提供商。当我们这样做时,我们自然会删除内部影子 DNS 记录,以便我们的 Exchange 服务器能够获取正确的(公共)DNS 记录并将邮件路由到新的外部主机。但这对 Exchange 没有任何影响。即使在重新启动 Exchange 服务器并完全刷新 DNS 缓存后(Exchange 机器本身上的 nslookups 正确解析为新的外部地址),Exchange仍然尝试将域的邮件发送到我们的内部服务器!Exchange 正确地路由到所有其他发送电子邮件时的内部和外部域。
Exchange 正试图以某种方式向一台机器投递邮件,而从各方面来看,这台机器都不应该被使用仅限此一个域名。Exchange 内部是否使用 DNS 缓存?是否有办法刷新该内部缓存?我还可能遗漏了什么?
答案1
要修复(或者解决)此问题,请为您的 SMTP 配置一个外部 DNS 服务器。
在 Exchange 系统管理器中:
扩张服务器-> [你的服务器] ->协议->邮件传输协议
选择 SMTP 虚拟服务器的“属性”,然后转到送货选项卡。点击先进的进而配置。现在您可以添加外部 DNS 服务器以用于出站邮件路由。
我已使用此方法成功解决了 Exchange 2003 和 2007 上的相同情况