gpt4 book ai didi

delphi - Imap4 客户端命令 LSUB

转载 作者:行者123 更新时间:2023-12-03 18:35:50 25 4
gpt4 key购买 nike

我对 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 stringlist 为空,但 LastCmdResult.FormattedReply stringlist 包含我的电子邮件服务器上的所有文件夹(收件箱、已发送、垃圾箱……)。当我尝试使用 LastCmdResult.FormattedReply count 或 text,它立即丢失了数据并给出了 LastCmdResult.FormattedReply.Count=0LastCmdResult.FormattedReply.Text='' .所以我想知道有没有办法在 LastCmdResult.FormattedReply里面输入数据并获取我的电子邮件服务器文件夹或有另一种方法来解决我的问题?

最佳答案

I have a problem with function TIdIMAP4.ListSubscribedMailBoxes(AMailBoxList: TStrings): Boolean; with this implementation :



当我使用最新的 SVN 版本的 Indy 进行尝试时,对我来说效果很好。

When I debug I see that the LastCmdResult.Text stringlist is empty, but the LastCmdResult.FormattedReply stringlist has all folders on my email server (Inbox, Sent, Trash, ...).



当我运行它时,会发生相反的情况。 LastCmdResult.Text包含预期的文本和 LastCmdResult.FFormattedReply是空的(注意我直接提到了 FFormattedReply 数据成员,见下文)。

When I tried to use LastCmdResult.FormattedReply count or text, it had immediately lost its data and gave LastCmdResult.FormattedReply.Count=0 and LastCmdResult.FormattedReply.Text=''.



这是设计使然。 FormattedReply属性旨在被客户端用来解析服务器回复,以便它可以填充 TIdReply的属性值,并被服务器用来使用 TIdReply 的属性值生成新的回复。因此,您无法读取 FormattedReply客户端的属性。

So I'd like to know if there is a way to enter the data inside LastCmdResult.FormattedReply and get my email server folders or there is another way to solve my problem ?


ListSubscribedMailBoxes()的全部目的|是返回 AMailBoxList 中的文件夹名称范围。如果这对你不起作用,那么要么
  • 您使用的是旧版/错误版本的 Indy。
  • 您的服务器正在以 TIdIMAP4 无法解析的格式发送数据。

  • 如果不知道您实际使用的是哪个版本的 Indy,或者服务器的回复数据实际上是什么样的,则无法以一种或另一种方式诊断您的问题。

    关于delphi - Imap4 客户端命令 LSUB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31113810/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com