我有一个连接到MS Exchange服务器的IMAP客户端(Perl,Mail :: IMAPClient),该服务器在登录时收到错误“在无效状态下收到1个BAD命令”。这个相同的IMAP客户端可以在许多其他环境中运行,没有错误,当然也不会在登录时立即出现错误!
我在确定错误来源方面遇到了麻烦,此时我倾向于认为客户的Exchange服务器配置错误,或者有一些防火墙或数据包操作恶作剧。
除了错误之外,我能够进行真正看起来正常的数据包捕获。在TCP握手之后,这是整个IMAP对话,然后是TCP挂断。
No. Time Source Destination
4 0.010228000 (server) (client)
Internet Message Access Protocol
Line: * OK The Microsoft Exchange IMAP4 service is ready.\r\n
No. Time Source Destination
5 0.012680000 (client) (server)
Internet Message Access Protocol
Line: 1 LOGIN (username) (password)\r\n
Request Tag: 1
Request Command: LOGIN
Request: LOGIN (username) (password)
No. Time Source Destination
6 0.017559000 (server) (client)
Internet Message Access Protocol
Line: 1 BAD Command received in Invalid state.\r\n
Response Tag: 1
Response Status: BAD
Response: BAD Command received in Invalid state.
我是否正确地假设问题出在IMAP服务器端?
答案 0 :(得分:5)
您需要先发送CAPABILITY
命令,以便检查服务器是否有LOGINDISABLED
(它可能会执行此操作,因此您的错误)。