使用远程 telnet 在 EHLO 上断开 Exchange

使用远程 telnet 在 EHLO 上断开 Exchange

当我转到我的 Exchange 箱(SBS 2008)上的本地终端时,我可以执行以下操作:

telnet 127.0.0.1 25
220 Exchange banner here
EHLO example.com
250 Server name

然而,当我从另一个盒子或从服务器的实际 IP 进入时,我得到了这个:

telnet 192.168.21.20 25
220 Exchange banner here
EHLO example.com
421 4.4.1 Connection timed out

与主机的连接丢失。

奇怪的是,该服务器目前投入生产并且运行良好(接收我们整个域的邮件)。但我的 C# 程序无法向其发送邮件(它们会收到相同的错误)。

有任何想法吗?

答案1

Exchange 服务器似乎正在尝试重新连接您(类似 ident?),因此您应该尝试使用数据包嗅探器(如 Wireshark)来查看在哪里它正在尝试连接。


解释该消息的另一种方式。SMTP 与大多数互联网协议一样,使用CR/LFpair 作为行终止符。telnet 协议也是如此。但是,在您的第二个示例中,客户端(是“telnet”还是其他名称?)可能会不是发送正确的行结尾 - 可能发送的只是LF或完全不同的东西。再次使用 Wireshark 来找出答案。


与上面的 #2 相关:也许您的第二台机器有一个防病毒程序,它会试图变得聪明并拦截 SMTP 连接?我见过很多次它们破坏 POP3 的情况。

答案2

在您的应用程序中,您使用的是标准 smtp 库还是通过原始套接字发送命令?如果您通过原始套接字发送命令,请检查是否在命令后发送了 \r\n。

J

相关内容