You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Exchange 2016至Exchange 2019 On-Prem迁移中Receive Connector故障处理咨询

Exchange 2016至Exchange 2019 On-Prem迁移中Receive Connector故障处理咨询

老兄,你这情况我碰到过好几次——迁移完Exchange 2019后,外部邮件还死磕旧的2016服务器,导致本地用户收不到信。别慌,咱们一步步来排查解决:

1. 先查外部DNS(最容易踩坑的点)

外部邮件系统完全是靠MX记录找投递目标的,所以先确认:

  • 你的域名MX记录已经指向Exchange 2019服务器的公网IP/域名,而不是旧的2016服务器。可以用nslookup -type=mx yourdomain.com命令在本地验证,或者用在线DNS查询工具查。
  • 如果你的公网IP配置了反向DNS(PTR)记录,也要确保它指向2019服务器的公网域名,不然很多外部邮件系统会把你的邮件当成垃圾拦截。

2. 检查Exchange 2019的接收连接器配置

打开Exchange管理中心(EAC)或者用PowerShell,确认2019上的前端接收连接器没问题:

  • EAC操作:转到「邮件流」>「接收连接器」,找到2019服务器上的默认前端连接器(一般叫EXCH2019\Frontend EXCH2019):
    • 权限组:必须勾选「匿名用户」(允许外部邮件投递)、「Exchange服务器」这些必要选项;
    • 远程IP范围:默认应该是0.0.0.0-255.255.255.255,允许所有外部IP连接。
  • PowerShell验证:运行命令
    Get-ReceiveConnector -Server EXCH2019 | Select-Object Name, RemoteIpRanges, PermissionGroups
    
    替换EXCH2019为你的2019服务器名,检查输出的配置是否符合要求。

3. 确认组织内的路由指向

确保Exchange组织已经把2019当成了主要的收件人服务器:

  • 运行PowerShell命令查看传输服务状态:
    Get-TransportService | Select-Object ServerName, IsHubTransport
    
    2019服务器的IsHubTransport应该显示True,如果2016还在运行,它也会显示True,但关键是外部邮件的入口要切到2019。
  • 如果你有边缘传输服务器,记得把边缘同步配置更新到2019服务器,避免路由还是指向旧节点。

4. 临时禁用2016的前端接收连接器(谨慎操作)

如果已经确认MX记录和2019的连接器都没问题,可以临时禁用2016上的前端接收连接器,强制外部邮件走2019:

  • 运行PowerShell命令:
    Set-ReceiveConnector -Identity "EXCH2016\Frontend EXCH2016" -Enabled $false
    
    替换EXCH2016\Frontend EXCH2016为你2016服务器上的前端连接器名称。测试外部邮件能正常投递到2019后,再考虑后续卸载2016的步骤。

5. 查日志和队列定位问题

如果还是不行,就看日志找线索:

  • 在2019服务器上查看接收日志,路径一般是C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceive,看看有没有外部邮件的连接记录——如果没有,说明邮件根本没过来,大概率是DNS或防火墙的问题;如果有连接但被拒绝,那就是连接器权限或配置的问题。
  • Get-Queue命令查看2019的队列,确认是否有外部邮件在队列里待处理。

6. 测试防火墙端口转发

最后检查防火墙配置:确保公网IP的25端口(SMTP)已经转发到Exchange 2019服务器,而不是旧的2016服务器。很多时候迁移完忘了改防火墙规则,导致外部邮件还是打到旧服务器上。

备注:内容来源于stack exchange,提问作者IamBayMax

火山引擎 最新活动