什么会导致TIdIMAP4.Retrieve(Header)
返回False,但LastCmdResult
会返回OK?
使用Indy 10
和Delphi 2010
答案 0 :(得分:0)
检索标题(甚至是完整的电子邮件)分为三个步骤:
发送FETCH
命令并收到初始回复。
如果正常,则解析响应后面的请求数据。
阅读最终回复。如果确定,则返回true。
由于RetreiveHeader()
返回false,因此必须表示最终响应不正常。但是LastCmdResult
说好,这只能说初始反应没问题,但最后的回答根本没有读。如果初始响应为空,或者解析失败,则会发生这种情况。
如果没有看到完整的响应,就无法确切地告诉您解析失败的原因。请使用数据包嗅探器或TIdLog...
组件捕获与IMAP服务器的对话,然后edit您的问题以包含服务器的实际响应。