使用双WAN时在Exchange中切换smarthost

我想知道是否可以根据当前使用的WAN连接来设置Exchange 2003/2007在智能主机之间进行切换。

示例场景:我有两个不同ISP的WAN连接。 Exchange运行在双WAN路由器后面。 当主要WAN发生故障时,路由器设置为回退到辅助WAN。 在Exchange中设置的智能主机是主要ISP的SMTP服务器。 由于在Exchange中设置的智能主机只允许从主要广域网的IP中继,所以当路由器回退到辅助广域网时,发送邮件将不起作用。

通过DNS MX查找直接发送邮件是一个选项,但ISP的dynamicIP被列入黑名单很多。

提前致谢!

Exchange 2003或2007没有内置任何内容来为您执行此操作。 但是,Exchange 2007可以通过Powershell进行pipe理,而控制smarthost的组件是Exchange 2007中的发送连接器,您可以编写一个Powershell脚本来更改该属性,而不需要太多的工作。 不pipe你是否希望这个以某种方式自动运行,都将决定这需要多复杂。

#Adding Exchange Snap In to execute Exchange CmdLets in this script Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin #Enter an IP to use as the monitor, you may need to put a static entry on your router $Srvname = "4.2.2.2" $ping = new-object System.Net.NetworkInformation.Ping #enter your primary smarthost IP $primary = "1.1.1.1" #enter your failover smarthost IP $failover = "2.2.2.2" $test = $ping.send($Srvname) if (!$test) { Set-SendConnector "INDENTITY OF SEND-CONNECTOR" -SmartHosts $failover Write-host "Changed outbound send connector to $failover" } elseif ($test.status -eq "Request timed out.") { Set-SendConnector "INDENTITY OF SEND-CONNECTOR" -SmartHosts $failover Write-host "Changed outbound send connector to $failover" } elseif ($test.status -eq "Success") { Set-SendConnector "INDENTITY OF SEND-CONNECTOR" -SmartHosts $primary Write-host "$primary is up, no changes were made" } Else { Write-Host "Failed with status..." $test.status } 

我假设你指的是你的ISP分配给你的dynamicIP地址。 如果是这样,那么Exchange服务器无法使用DNS来执行传出电子邮件的MX查找。 来自ISP的恶意ip可能会导致您被列入黑名单,但不会导致您的Exchange服务器在查找MXlogging或发出SMTP连接时遇到问题。

不,这里有一个技巧 – 你应该可以在路由器上这样做。 在这样的设置。 交换将转发到路由器的内部IP。 从那里路由器将取决于万向连接的条件。

至less在可能的configuration中使用RouterOS。