Frage: Ich möchte mir mit Delphi und den Indy-Komponenten ein einfaches Email-Programm basteln. Ich habe den folgenden Code geschrieben. idPOP31 ist die POP-Komponente, Verbinden mit dem Mailserver und Abrufen der Absenderadresse und Betreffzeile funktioniert. Nur die eigentliche Nachricht wird nicht angezeigt.
form1.idPOP31.Retrieveheader(i, form1.idMessage1);
form3.anzeige.lines.add('Absender: '+form1.IdMessage1.from.Text);
form3.anzeige.lines.add('Betreff: '+form1.IdMessage1.subject);
Dieser Wert ist immer null ! Er müsste doch eigentlich die Anzahl der Email-Teile enthalten.
form3.anzeige.lines.add('Nachricht: '+inttostr(form1.IdMessage1.messageParts.Count));
Antwort: Ich würde behaupten, dass man mit RETRIEVEHEADER nur die Headerinformationen der Email auslesen kann. Dort ist die eigentliche Nachricht, der Body, nicht enthalten. Ich würde folgende Zeile ersetzen:
form1.idPOP31.Retrieve(i, form1.idMessage1);
Dann sollte der Body der Email an den Clienten übertragen werden und IdMessage1.messageParts.Count wird > 0 sein.
Viel Erfolg.