Ich habe mal etwas mit der idIMAP-Komponente herumgespielt und kann auch wunderbar per IMAP auf meine Mailbox zugreifen (Es wird mit dem IMap-Server verbunden, die Anzahl der EMails abgefragt und dann von jeder EMail der Betreff in eine Liste hinzugefügt):
Delphi-Quellcode:
IdIMAP41.Host := IMapServer;
IdIMAP41.Username := Benutzername;
IdIMAP41.Password := Kennwort;
IdIMAP41.Connect(True);
IdIMAP41.SelectMailBox('inbox');
lbl_Anzahl.Caption := IntToStr(IdIMAP41.MailBox.TotalMsgs);
for i := 1 to StrToInt(lbl_Anzahl.Caption) do begin
IdIMAP41.RetrieveHeader(i, idMessage1);
box_Mails.Items.Add(idMessage1.From.Text + ': ' + idMessage1.Subject + '[(id:' + IntToStr(i) + ')]');
end;
So, Problem ist jetzt aber, dass ich keine EMail löschen kann.
Meine Vorgehensweise: Ich benutze die id, welche ich in der Liste mitabgespeichert habe (dies funktioniert, da ich auf diese Weise auch den Body einer Nachricht anzeigen lassen kann):
Delphi-Quellcode:
var
LoeschID: array[0..0] of LongInt // Die Methode verlangt nach einem statischen Array
begin
LoeschID := {ID aus der Listbox}
IdIMAP41.DeleteMsgs(LoeschID);
end;
Was mache ich falsch?