当我到我的交换箱(SBS 2008)上的本地terminal时,我可以这样做:
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#程序不能发送邮件给它(他们得到这个相同的错误)。
有任何想法吗?
Exchange服务器似乎试图连接回你(类似ident?),所以你应该尝试一个数据包嗅探器(如Wireshark),看看它试图连接。
解释这个信息的另一种方法。 与大多数互联网协议一样,SMTP使用CR/LF对作为行终止符。 telnet协议也是如此。 然而,在第二个例子中,可能发生的情况是,客户端(是“telnet”还是其他的东西?)不会发送正确的行结束 – 也许它只发送LF或完全不同的东西。 再次使用Wireshark找出。
相关的#2上面:也许你的第二台机器有一个防病毒程序,试图变得聪明,拦截SMTP连接? 我已经看到他们打破了POP3的许多时光。
在你的应用程序中,你使用的是标准的smtp库还是你发送命令下的原始套接字? 如果您正在下发原始命令,请检查命令后是否发送\ r \ n。
Ĵ