有 2 个网站在 2 个不同的服务器上运行。两个网站都向内部和外部地址发送电子邮件。当网站使用 Exchange 2003 时,它们都运行良好。然后客户端从 Exchange 2003 迁移到 Exchange 2010。现在只有一个网站仍能发送电子邮件。另一个网站一直出现错误
SMTP 服务器需要安全连接,否则客户端未通过身份验证。服务器响应为:5.7.1 客户端未通过身份验证
失败的网站可以正常传递凭证,并且它使用的代码与正常运行的网站相同。即使我将失败的网站切换为使用正常运行的网站电子邮件登录,它也会失败并出现相同的错误。正常运行的网站不使用 SSL,但它仍然有效。SMTP 服务器不应该需要安全连接。
我有一个用于测试电子邮件发送的 Windows 应用程序。从发生故障的 Web 服务器,该应用程序能够使用两组登录信息正常发送电子邮件。它似乎只有在通过网站发送时才会出现此错误。
我不太熟悉 Exchange 服务器,也无法直接访问 Exchange 服务器,因此是否应该检查什么,导致第二个 Web 服务器无法通过网站发送电子邮件,但可以通过 Windows 应用程序发送?
答案1
(我以 Exchange 2007 为依据,因此如果它有很大变化,请原谅,我没有研究过 2010)。
- 在 Exchange 系统管理器中,拉出服务器配置 -> 集线器传输 -> 接收连接器选项卡。
- 检查“身份验证”选项卡。那里有一些设置,用于处理服务器所需的身份验证类型。
为了进行测试,请在不同的端口上设置一个新的接收连接器,以试验设置。让发生故障的服务器改用该连接器。
并向 Evan 致以 +1 的敬意,因为他开发了 Wireshark。如果您不使用 SSL,则可以查看 Web 应用程序和接收连接器之间的整个 SMTP 对话。这是发现它们的行为差异的最佳方式。
答案2
就我个人而言,我会嗅探“正常工作”的 Web 服务器和 Exchange Server 之间的流量,并将其与不正常工作的 Web 服务器的对话进行比较。您可以随意更改设置,但没有什么比直接查看网络上的内容更有效。
答案3
我愿意赔偿由于接收连接器配置错误造成的损失。
Exchange 内部部署 -> 服务器配置 -> 集线器传输
在相关服务器的“接收连接器”区域下,查看“网络”选项卡下正常运行的服务器的每个“属性”页面。它可能在“身份验证”选项卡下设置为“外部安全”,这使其正常工作。您应该只需在“从具有这些 IP 地址的远程服务器接收邮件:”区域下添加故障服务器的 IP 即可。