Frage

Ich mache nur zum Spaß eine ungelesene Nachrichtenprüfungsanwendung in Delphi. Ich verwende Indy 10. Ich kann eine Verbindung mit Google Mail herstellen und alle Nachrichten abrufen, aber ich habe hier ein Problem: Ich kann nicht sagen, ob eine Nachricht bereits gelesen wird oder nicht. In der TidMessage -Komponente befindet sich eine Flag -Eigenschaft, die mir mitteilen sollte, ob die Nachricht gelesen wurde. Der Code sieht so aus:

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;

In der Testpostfach gibt es eine ungelesene Nachricht, aber alle abgerufenen Nachrichten haben die Flags -Enum -Eigenschaft leer, sodass das Ergebnis immer 0 ist. Bin ich etwas falsch? Ist es ein Problem der Kompatibilität von Indy/Google Mail?

Vielen Dank.

BEARBEITEN: Ich mache definitiv etwas falsch, da das Testen mit einem Hotmail-Konto das gleiche Problem mit leeren Flaggen zeigt.

War es hilfreich?

Lösung

das POP3 Protokoll unterstützt nicht Message state information Auf dem Server wie Read, Antwort auf oder gelöscht. Versuchen Sie es zu verwenden IMAP for Gmail stattdessen.

Andere Tipps

Der beste (und schnellste) Weg, um diese Antwort zu finden, besteht darin, den Indy -Sourcecode nach "mfseen" zu durchsuchen. Rruz ist richtig - POP3 bietet diese inhärente Fähigkeit nicht. In POP3 müssen Sie dies auf der Clientseite verfolgen. Diese Flagge wurde zu IDMessage für IMAP -Zwecke hinzugefügt und nicht unbedingt für POP3.

TidmessageFlags sollten wahrscheinlich TidimapmessageFlags genannt werden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top