Einzelnen Beitrag anzeigen

RalfOne

Registriert seit: 23. Jul 2004
31 Beiträge
 
Delphi 7 Professional
 
#1

IMAP Flags setzen aber wie?

  Alt 31. Aug 2005, 17:10
Hallo liebe DP User,

ich habe ein kleines Problem.
Ich habe einen IMAP Ordner welche ich auf neue Emails prüfe.
Leider denkt er das immer alle Neu sind was ja leider Falsch ist.
Und zwar würde ich gerne alle Emails welche noch nicht gelesen wurden verarbeiten und diese dann als gelesen markieren.
Und damit müsste es auch OK sein das alle die einen Flag "gelesen" haben nicht mehr verarbeitet werden, oder?
Hier mal mein Quellcode welchen ich für die IMAP Geschichte verwende:
Delphi-Quellcode:
//Zur Erklärung aImap : TIdIMAP4;
//mcount : Integer
if aImap.SelectMailBox('INBOX') then begin
  mcount := aImap.MailBox.TotalMsgs;
  for z := 0 to mcount -1 do begin
    IdMessage := TIdMessage.Create(nil);
    try
      aImap.GetUID(z+1, aUID);
      aImap.UIDRetrieveFlags(aUID, Flags);
      aImap.UIDRetrieve(aUID, idMessage);
      if not (mfSeen in Flags) then begin
        //Verarbeitung was geschehen soll..........
        //Hier muss die Flag gesetzt werden, dass die Email gelesen wurde.........
        //Meine Ansätze mit aImap.StoreFlags() und aImap.UIDStoreFlags() hat leider nicht funktioniert!
        //bei folgendem Versuch aImap.UIDStoreFlags(aUID, sdreplace, Flags); werden alle Emails als nicht gelesen markiert!!!
      end;
    finally
      FreeAndNil(idMessage);
    end;
  end;
end;
Danke im Voraus für Vorschläge.

Grüße

Ralf
  Mit Zitat antworten Zitat