Exchange 2013队列滞留邮件的重新路由解决方案求助
应急处理Exchange 2013滞留邮件的方案
针对你遇到的新Exchange服务器IP未加入智能主机白名单导致邮件滞留的问题,这里有几个可以立刻实施的应急方案,帮你把业务关键邮件重新路由出去:
方案一:临时调整现有发送连接器的源服务器列表
如果你的环境里还有已经在白名单中的旧Exchange服务器,可以先把新服务器从发送连接器的源服务器中移除,让所有待发邮件通过已授权的旧服务器转发:
- 打开Exchange管理Shell(EMS),先查看目标发送连接器的当前源服务器:
Get-SendConnector "你的发送连接器名称" | Select-Object Name, SourceTransportServers - 修改源服务器列表,只保留已在白名单中的服务器:
Set-SendConnector "你的发送连接器名称" -SourceTransportServers @{Remove="新服务器名称1","新服务器名称2"; Add="已授权旧服务器名称"} - 最后重启新服务器上的
Microsoft Exchange Transport服务,触发队列重新尝试发送。
方案二:手动导出并重新提交滞留邮件到已授权服务器
如果不想修改全局发送连接器配置,可以单独处理滞留的邮件:
- 先定位所有滞留的目标队列:
Get-Queue | Where-Object {$_.Status -in ("Retry", "Failed") -and $_.NextHopDomain -eq "你的智能主机地址"} - 导出这些队列里的邮件到本地文件夹(先手动创建好
C:\Temp\StuckEmails文件夹):$queues = Get-Queue | Where-Object {$_.Status -in ("Retry", "Failed") -and $_.NextHopDomain -eq "你的智能主机地址"} foreach ($queue in $queues) { Export-Message -Identity $queue.Identity | AssembleMessage -Path "C:\Temp\StuckEmails" } - 把导出的EML文件提交到已在白名单的服务器的传输服务:
这样这些邮件会通过已授权的服务器重新发送,绕过新服务器的IP限制。Get-TransportService -Identity "已授权旧服务器名称" | Submit-Message -Path "C:\Temp\StuckEmails\*.eml"
方案三:创建临时应急发送连接器
如果没有旧服务器可用,或者想单独为滞留邮件开辟路由,可以创建一个临时发送连接器:
- 在EMS中执行命令创建临时连接器,指定已授权的源服务器(如果有的话),复用现有智能主机配置:
New-SendConnector -Name "Emergency Temp Connector" -AddressSpaces "*" -SourceTransportServers "已授权服务器名称" -SmartHosts "现有智能主机地址" -SmartHostAuthMechanism None - 把这个临时连接器的优先级设为比现有连接器更高(数值越小优先级越高),让待发邮件优先走这个连接器:
Set-SendConnector "Emergency Temp Connector" -Priority 1 - 等网络团队完成IP白名单添加后,记得禁用或删除这个临时连接器,恢复原有配置。
注意事项
- 操作前最好先备份连接器配置,比如:
Get-SendConnector "你的发送连接器名称" | Export-Clixml -Path "C:\Temp\SendConnectorBackup.xml" - 导出邮件时要确保目标文件夹有足够磁盘空间,且Exchange服务账户具备读写权限
- 重新提交邮件后,要持续监控队列状态,确认邮件成功发送
内容的提问来源于stack exchange,提问作者Tar Heel
相关产品推荐
相关产品推荐

