MS Exchange IMAP登录返回"在无效状态下收到的BAD命令"

wes*_*wes 2 email imap exchange-server

我有一个连接到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.
Run Code Online (Sandbox Code Playgroud)

我是否正确地假设问题出在IMAP服务器端?

jst*_*ast 5

您需要先发送一个CAPABILITY命令,以便检查服务器是否有LOGINDISABLED(它可能会执行,因此您的错误).

  • 除非您确保STARTTLS或SSL/TLS安全,否则许多服务器都不允许您登录. (3认同)