Question

Je fais juste pour le plaisir d'une application de vérification de messages non lus dans Delphi. J'utilise Indy 10. Je peux me connecter avec Gmail et peut récupérer tous les messages mais je suis face à un problème ici: Je ne peux pas dire si un message est déjà lu ou non. Il est une propriété de drapeau dans le composant TidMessage qui devrait me dire si le message a été lu. Le code ressemble à ceci:

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;

Dans la boîte aux lettres de test il y a un message non lu, mais tous les messages récupérés ont la propriété des drapeaux vide de sorte que le résultat est toujours 0. Ai-je fait quelque chose de mal? Est-ce un problème de compatibilité Indy / Gmail?

Merci.

EDIT:. Je fais vraiment quelque chose de mal que les tests avec des spectacles de compte Hotmail le même problème de la propriété vide-flags

Était-ce utile?

La solution

POP3 protocole ne prend pas en charge Message state information sur le serveur comme lecture, a répondu à ou supprimé. essayez d'utiliser IMAP for Gmail à la place.

Autres conseils

Le meilleur (et plus rapide) façon de trouver cette réponse serait de rechercher l'Indy sourcecode pour « mfSeen » Vous devriez trouver seulement utilisé dans idIMAP * unités. RRUZ est correcte - POP3 n'offre pas cette capacité inhérente. Dans POP3 vous devez suivre ce sur le côté client. Ce drapeau a été ajouté à IdMessage à des fins IMAP, et pas nécessairement pour POP3.

TIdMessageFlags devrait probablement été nommé TIdIMAPMessageFlags

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top