Вопрос

Я делаю просто для развлечения приложение для проверки непрочитанных сообщений в 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;

В тестовом почтовом ящике есть одно непрочитанное сообщение, но все полученные сообщения имеют свойство Flags Enum пустые, поэтому результат всегда 0. Я делаю что -то не так? Это проблема совместимости Indy/Gmail?

Спасибо.

РЕДАКТИРОВАТЬ: Я определенно делаю что-то не так, так как тестирование с учетной записью Hotmail показывает ту же проблему свойства пустых флагов.

Это было полезно?

Решение

а POP3 Протокол не поддерживает Message state information На сервере, как чтение, ответил или удалил. Попробуйте использовать IMAP for Gmail вместо.

Другие советы

Лучший (и самый быстрый) способ найти этот ответ - это поиск в Sourcecode Indy для "mfseen", вы должны найти его только в единицах Idimap*. RRUZ верен - POP3 не предлагает эту неотъемлемая способность. В POP3 вам нужно отслеживать это на стороне клиента. Этот флаг был добавлен в Idmessage для IMAP, и не обязательно для POP3.

Tidmessageflags, вероятно, должны были быть названы Tidimapmessageflags

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top