【发布时间】:2015-09-15 19:20:39
【问题描述】:
我对 function TIdIMAP4.ListSubscribedMailBoxes(AMailBoxList: TStrings): Boolean; 的这个实现有疑问:
function TIdIMAP4.ListSubscribedMailBoxes(AMailBoxList: TStrings): Boolean;
begin
{CC2: This is one of the few cases where the server can return only "OK completed"
meaning that the user has no subscribed mailboxes.}
Result := False;
CheckConnectionState([csAuthenticated, csSelected]);
SendCmd(NewCmdCounter, IMAP4Commands[cmdLSub] + ' "" *',
[IMAP4Commands[cmdList], IMAP4Commands[cmdLSub]]); {Do not Localize}
if LastCmdResult.Code = IMAP_OK then begin
// ds - fixed bug # 506026
ParseLSubResult(AMailBoxList, LastCmdResult.Text);
Result := True;
end;
end;
当我调试时,我看到LastCmdResult.Text 字符串列表为空,但LastCmdResult.FormattedReply 字符串列表包含我的电子邮件服务器上的所有文件夹(收件箱、已发送、垃圾箱……)。当我尝试使用LastCmdResult.FormattedReply 计数或文本时,它立即丢失了数据并给出了LastCmdResult.FormattedReply.Count=0 和LastCmdResult.FormattedReply.Text=''。所以我想知道是否有办法在LastCmdResult.FormattedReply 中输入数据并获取我的电子邮件服务器文件夹,或者还有其他方法可以解决我的问题吗?
【问题讨论】: