使用Indy检查未读消息

Ave*_*oes 3 delphi gmail pop3 indy indy10

我正在为Delphi中的未读消息检查器应用程序做一些有趣的事情.我正在使用Indy 10.我可以连接Gmail并可以检索所有消息,但我在这里遇到问题:我无法判断消息是否已被读取.TidMessage组件中有一个标志属性,它应该告诉我消息是否已被读取.代码如下所示:

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;
Run Code Online (Sandbox Code Playgroud)

在测试邮箱中有一条未读消息,但所有检索到的消息都将标志枚举属性设置为空,因此结果始终为0.我做错了什么?这是Indy/Gmail兼容性的问题吗?

谢谢.

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

RRU*_*RUZ 13

POP3协议不支持Message state information像读取服务器上,回复或删除.尝试使用IMAP for Gmail.