AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi idIMAP: Mail auf dem Server löschen
Thema durchsuchen
Ansicht
Themen-Optionen

idIMAP: Mail auf dem Server löschen

Ein Thema von Nju · begonnen am 2. Nov 2007 · letzter Beitrag vom 2. Nov 2007
Antwort Antwort
Nju

Registriert seit: 16. Jun 2004
41 Beiträge
 
#1

idIMAP: Mail auf dem Server löschen

  Alt 2. Nov 2007, 07:49
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?
  Mit Zitat antworten Zitat
Thomas Horstmann

Registriert seit: 25. Apr 2007
86 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: idIMAP: Mail auf dem Server löschen

  Alt 2. Nov 2007, 09:10
Hallo,

1. Mit "DeleteMsgs" wird nur das IMAP-Löschkennzeichen gesetzt. Wurden die Mails mit "IdIMAP41.ExpungeMailBox" endgültig gelöscht?

2. Gibt "DeleteMsgs" TRUE zurück?

3. Grundsätzlich: Nach unserer Erfahrung sollte man besser mit der UID arbeiten, die ist immer eindeutig (UIDDeleteMsgs...).

Viele Grüsse
Thomas
  Mit Zitat antworten Zitat
Nju

Registriert seit: 16. Jun 2004
41 Beiträge
 
#3

Re: idIMAP: Mail auf dem Server löschen

  Alt 2. Nov 2007, 09:20
Zitat von Thomas Horstmann:
Hallo,

1. Mit "DeleteMsgs" wird nur das IMAP-Löschkennzeichen gesetzt. Wurden die Mails mit "IdIMAP41.ExpungeMailBox" endgültig gelöscht?

2. Gibt "DeleteMsgs" TRUE zurück?

3. Grundsätzlich: Nach unserer Erfahrung sollte man besser mit der UID arbeiten, die ist immer eindeutig (UIDDeleteMsgs...).

Viele Grüsse
Thomas
Vielen Dank für die Antwort, durch deine zwei ersten Punkte bin ich nun in der Lage zu löschen.

Zu 3. habe ich allerdings noch eine Frage:

Wie kann ich auf die UID zugreifen?

Wenn ich idMessage1.UID nehme erhalte ich einen leeren Sctring zurück, wenn ich allerdings idMessage1.MsgId nehme, erhalte ich einen String (eindeutig?) zurück. Sind diese beiden IDs identisch?
  Mit Zitat antworten Zitat
Thomas Horstmann

Registriert seit: 25. Apr 2007
86 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: idIMAP: Mail auf dem Server löschen

  Alt 2. Nov 2007, 11:20
Hallo,

1. Die ID ist ein fortlaufende Nummer, die nur für den aktuellen Aufruf gilt. So kann z.B. die ID=17 jetzt das Mail X und in einer Stunde das Mail Y sein (wegen Eingang, löschen, bearbeiten im Web-Interface usw.).

2. Die UID ist dagegen immer eindeutig und damit sicherer.

3. Mit der Funktion "GetUID" kann die UID aus der ID ermittelt werden. Ansonsten gibt es für fast alle ID-Funktionen ein Gegenstück mit UID (UIDDeleteMsgs, UIDRetrieveEnvelope usw.).

4. Allgemeine Anmerkung:
So schön und vielseitig Indy auch ist, es enthält leider viele Fehler, die man selber ausbügeln muss. Habe aber noch nichts besseres gefunden

Viele
Grüsse
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz