Domanda

che sto facendo solo per divertimento un letto nell'applicazione Messaggi checker in Delphi. Sto usando Indy 10. Sono in grado di connettersi con Gmail e può recuperare tutti i messaggi, ma sto affrontando un problema qui: non posso dire se un messaggio è già stato letto o meno. V'è una proprietà di bandiera nel componente TidMessage che mi dovrebbe dire se il messaggio è stato letto. Gli sguardi codice come questo:

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;

Nella cassetta postale di prova v'è un messaggio non letto, ma tutti i messaggi recuperati sono le bandiere enum proprietà vuota in modo che il risultato è sempre 0. sto facendo qualcosa di sbagliato? È un problema di compatibilità Indy / Gmail?

Grazie.

EDIT:. che sto sicuramente facendo qualcosa di sbagliato, come il test con un account Hotmail mostra la stessa empty-bandiere problema proprietà

È stato utile?

Soluzione

POP3 protocollo non supporta Message state information sul server, come lettura, ha risposto a, o cancellato. provare a utilizzare IMAP for Gmail .

Altri suggerimenti

Il modo migliore (e più veloce) per trovare questa risposta potrebbe essere quella di cercare il codice sorgente Indy per "mfSeen" si dovrebbe trovare utilizzata solo in idIMAP * unità. RRUZ è corretta - POP3 non offre questa capacità intrinseca. In POP3 è necessario tenere traccia presente sul lato client. Questa bandiera è stato aggiunto al IdMessage per scopi IMAP, e non necessariamente per POP3.

TIdMessageFlags dovrebbe probabilmente sono stati nominati TIdIMAPMessageFlags

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top