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