gpt4 book ai didi

delphi - 使用 Indy 检查未读消息

转载 作者:行者123 更新时间:2023-12-03 15:16:50 24 4
gpt4 key购买 nike

我只是为了好玩而在 Delphi 中做一个未读消息检查器应用程序。我正在使用 Indy 10。我可以连接 Gmail 并检索所有邮件,但我在这里遇到一个问题:我无法判断邮件是否已读。 TidMessage 组件中有一个 flag 属性,可以告诉我消息是否已被读取。代码如下所示:

procedure TForm1.btTestConnectionClick(Sender: TObject);
var
i: Integer;
count: Integer;
flag: TIdMessageFlags;
begin
if (pop3Test.Connected) then begin
pop3Test.Disconnect;
end;

pop3Test.Username := edAccount.Text;
pop3Test.Password := edPassword.Text;
pop3Test.Host := HOST;
pop3Test.AuthType := patUserPass;
pop3Test.Port := PORT;
pop3Test.Connect;
Count := 0;
for i := pop3Test.CheckMessages downto 1 do begin
pop3Test.Retrieve(i, IdMessage1);
if (mfSeen in IdMessage1.Flags) then begin
Count := Count + 1;
end;
end;


ShowMessage(IntToStr(Count));
pop3Test.Disconnect;
end;

在测试邮箱中,有一封未读邮件,但所有检索到的邮件的 flags 枚举属性均为空,因此结果始终为 0。我是否做错了什么?是 Indy/Gmail 兼容性问题吗?

谢谢。

编辑:我肯定做错了什么,因为使用 Hotmail 帐户进行测试显示了相同的空标志属性问题。

最佳答案

POP3协议(protocol)不支持服务器上的消息状态信息,例如已读、已答复或已删除。尝试使用IMAP for Gmail相反。

关于delphi - 使用 Indy 检查未读消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4558348/

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