我们公司使用 Office 365,我们的电子邮件托管在 Exchange Online 上;但是,由于各种原因(主要是不支持经过身份验证的 SMTP 和 TLS),我们有几个应用程序无法直接向 Exchange Online 发送消息;因此,我们使用 IIS 的 SMTP 组件设置了几个内部邮件中继,如下所示;他们每个人都使用不同的发件人地址,并且需要使用不同的用户帐户对 Exchange Online 进行身份验证,因此我们需要为每个应用程序设置一个 SMTP 中继;这就是为什么我们有几个,每个都在服务器上运行,该服务器承载需要中继消息的应用程序。所有这些 SMTP 中继的配置方式完全相同,只是用户帐户不同。
大多数这些 SMTP 中继在 Windows Server 2008 R2 或 Windows Server 2012 系统上运行;但是,其中一个应用程序需要在 Windows Server 2003 系统上运行,因此托管在同一系统上的 SMTP 中继在 IIS 6 上运行。
直到几天前,一切都正常工作;然后,SMTP 中继仅在 Windows Server 2003 系统上停止工作,而在所有其他系统上都正常工作;SMTP 日志显示了一个非常奇怪的行为:在发出 AUTH 命令后,似乎有些东西卡住了,然后远程服务器由于超时而断开连接:
2015-03-07 17:44:27 157.56.251.50 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 220+AMXPR07CA0050.outlook.office365.com+Microsoft+ESMTP+MAIL+Service+ready+at+Sat,+7+Mar+2015+17:44:38++0000 0 0 108 0 16 SMTP - - - -
2015-03-07 17:44:27 157.56.251.50 OutboundConnectionCommand SMTPSVC1 <OurServerName> - 0 EHLO - <OurServerName> 0 0 4 0 32 SMTP - - - -
2015-03-07 17:44:27 157.56.251.50 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 250-AMXPR07CA0050.outlook.office365.com+Hello+[<OurPublicIPAddress>] 0 0 60 0 63 SMTP - - - -
2015-03-07 17:44:27 157.56.251.50 OutboundConnectionCommand SMTPSVC1 <OurServerName> - 0 STARTTLS - - 0 0 8 0 63 SMTP - - - -
2015-03-07 17:44:27 157.56.251.50 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 220+2.0.0+SMTP+server+ready 0 0 27 0 94 SMTP - - - -
2015-03-07 17:44:30 157.56.251.50 OutboundConnectionCommand SMTPSVC1 <OurServerName> - 0 EHLO - <OurServerName> 0 0 4 0 2829 SMTP - - - -
2015-03-07 17:44:30 157.56.251.50 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 250-AMXPR07CA0050.outlook.office365.com+Hello+[<OurPublicIPAddress>] 0 0 60 0 2860 SMTP - - - -
2015-03-07 17:44:30 157.56.251.50 OutboundConnectionCommand SMTPSVC1 <OurServerName> - 0 AUTH - - 0 0 4 0 2860 SMTP - - - -
2015-03-07 17:49:31 157.56.251.50 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 451+4.7.0+Timeout+waiting+for+client+input 0 0 42 0 303875 SMTP - - - -
2015-03-07 17:49:31 132.245.226.242 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 220+DB4PR06CA0004.outlook.office365.com+Microsoft+ESMTP+MAIL+Service+ready+at+Sat,+7+Mar+2015+17:49:43++0000 0 0 108 0 62 SMTP - - - -
2015-03-07 17:49:31 132.245.226.242 OutboundConnectionCommand SMTPSVC1 <OurServerName> - 0 EHLO - <OurServerName> 0 0 4 0 62 SMTP - - - -
2015-03-07 17:49:31 132.245.226.242 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 250-DB4PR06CA0004.outlook.office365.com+Hello+[<OurPublicIPAddress>] 0 0 60 0 109 SMTP - - - -
2015-03-07 17:49:31 132.245.226.242 OutboundConnectionCommand SMTPSVC1 <OurServerName> - 0 STARTTLS - - 0 0 8 0 109 SMTP - - - -
2015-03-07 17:49:31 132.245.226.242 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 220+2.0.0+SMTP+server+ready 0 0 27 0 156 SMTP - - - -
2015-03-07 17:49:34 132.245.226.242 OutboundConnectionCommand SMTPSVC1 <OurServerName> - 0 EHLO - <OurServerName> 0 0 4 0 2609 SMTP - - - -
2015-03-07 17:49:34 132.245.226.242 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 250-DB4PR06CA0004.outlook.office365.com+Hello+[<OurPublicIPAddress>] 0 0 60 0 2656 SMTP - - - -
2015-03-07 17:49:34 132.245.226.242 OutboundConnectionCommand SMTPSVC1 <OurServerName> - 0 AUTH - - 0 0 4 0 2656 SMTP - - - -
2015-03-07 17:54:34 132.245.226.242 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 451+4.7.0+Timeout+waiting+for+client+input 0 0 42 0 303015 SMTP - - - -
2015-03-07 17:54:34 157.56.254.178 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 220+DBXPR05CA0038.outlook.office365.com+Microsoft+ESMTP+MAIL+Service+ready+at+Sat,+7+Mar+2015+17:54:46++0000 0 0 108 0 47 SMTP - - - -
2015-03-07 17:54:34 157.56.254.178 OutboundConnectionCommand SMTPSVC1 <OurServerName> - 0 EHLO - <OurServerName> 0 0 4 0 47 SMTP - - - -
2015-03-07 17:54:34 157.56.254.178 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 250-DBXPR05CA0038.outlook.office365.com+Hello+[<OurPublicIPAddress>] 0 0 60 0 94 SMTP - - - -
2015-03-07 17:54:34 157.56.254.178 OutboundConnectionCommand SMTPSVC1 <OurServerName> - 0 STARTTLS - - 0 0 8 0 94 SMTP - - - -
2015-03-07 17:54:34 157.56.254.178 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 220+2.0.0+SMTP+server+ready 0 0 27 0 140 SMTP - - - -
2015-03-07 17:54:37 157.56.254.178 OutboundConnectionCommand SMTPSVC1 <OurServerName> - 0 EHLO - <OurServerName> 0 0 4 0 2640 SMTP - - - -
2015-03-07 17:54:37 157.56.254.178 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 250-DBXPR05CA0038.outlook.office365.com+Hello+[<OurPublicIPAddress>] 0 0 60 0 2672 SMTP - - - -
2015-03-07 17:54:37 157.56.254.178 OutboundConnectionCommand SMTPSVC1 <OurServerName> - 0 AUTH - - 0 0 4 0 2672 SMTP - - - -
2015-03-07 17:59:37 157.56.254.178 OutboundConnectionResponse SMTPSVC1 <OurServerName> - 0 - - 451+4.7.0+Timeout+waiting+for+client+input 0 0 42 0 303703 SMTP - - - -
这只发生在 Windows Server 2003 上的 IIS 6 上运行的 SMTP 中继上;在 Windows Server 2008 R2 或 Windows Server 2012 系统上运行的所有其他 SMTP 中继上一切正常。
怀疑该特定服务器中的某些问题(众所周知,它有多个问题),我们构建了一台新的 Windows Server 2003 机器,以便将应用程序移至它;但是,新服务器表现出完全相同的行为:发出 AUTH 命令后,出站 SMTP 对话停止并出现相同的错误。
出于好奇,我们尝试在服务器上的 Outlook Express 中配置相同的帐户;它工作正常,它可以使用经过身份验证的带有 TLS 的 SMTP 向 Exchange Online 发送电子邮件;该问题似乎只影响 IIS 的 SMTP 组件,并且似乎与网络、操作系统或其他任何东西无关。
什么可能导致这样的错误,我们该如何解决?
(我们知道我们不应该再使用 Windows Server 2003;但是,该应用程序只能在那里运行,并且它必须继续工作直到它可以被替换。我们还知道我们可以将 SMTP 中继移动到另一个正在运行的服务器更新的操作系统,但很高兴找到 SMTP 中继仅在 IIS 6 上失败的原因。)
确保用于连接到 Office 365 的帐户的密码仍然有效,并且其密码未重置或过期。
MS 订阅了多个黑名单,如果您的 IP 在这里,它将拒绝来自该 IP 的连接尝试。您也无法绕过这一点,您必须删除 IP,或者使用不同的 IP 发送邮件。
当然 - 确保不是本地防火墙、策略或 A/V 更新导致您的问题。您可以通过确保您可以从该服务器向您的其他工作中继盒之一发送消息来做到这一点。如果从来没有开箱即用,你知道问题是本地的。
尽管以前可以正常工作,但我们再也无法进行这项工作;我们最终将 SMTP 中继移动到另一个(虚拟)服务器,运行 Windows Server 2008 R2;完美无瑕。
我的猜测:Exchange Online 中的某些内容(不再)与 IIS 6 中的 SMTP 组件一起无法正常工作。由于 Windows Server 2003 完全失去支持,唯一的选择是替换它。