![]() |
Delphi 8.0 , Indy und POP.retrieve PROBLEM
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe folgendes Problem... ich möchte gern im Delphi 8.0 NET ein kleines Programm schreiben, welches EMails abholt und den Anhang in ein bestimmtes Verzeichnis packt und die EMails vom Server entfernt. :lol:
Delphi-Quellcode:
Die Fehlermeldung ist im Anhang... :cry: Was mache ich denn falsch?
procedure Thauptform.Button1Click(Sender: TObject);
var i,a,x:integer; nachricht:TIdMessage; begin TRY screen.Cursor:=crHourglass; nachricht:=TIdMessage.Create(nil); POPi.Host := 'xxxxxxxxxxxxx'; POPi.Username := 'xxxxxxxxxxxxxxxxxx'; POPi.Password := 'xxxxxxxxxxxx'; try POPi.Connect; x:=POPi.CheckMessages; for i := 1 to x do begin POPi.Retrieve(i, Nachricht); for a:= 0 to Nachricht.MessageParts.Count do begin IF (Nachricht.MessageParts.Items[a] is TIdAttachment) then TIdAttachment(Nachricht.MessageParts.Items[a]).SaveToFile (TIdAttachment(Nachricht.MessageParts.Items[a]).filename); end; Nachricht.Clear; end; finally POPi.Disconnect; nachricht.free; end; screen.Cursor:=crDefault; except on E: Exception do begin screen.Cursor:=crDefault; showmessage(E.Message) end end Romy |
Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
Vielleicht so:
Delphi-Quellcode:
...
for i := 0 to pred(x) do begin POPi.Retrieve(i, Nachricht); for a:= 0 to pred(Nachricht.MessageParts.Count) do |
Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
Danke für Deine Hilfe, aber leider kommt der Fehler :cry: beim
Delphi-Quellcode:
Habe ich beim Deklarieren der TIdMessage Komponente was falsch gemacht? :wall:
POPi.Retrieve(i, Nachricht);
|
Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
Hallo,
was ist denn wenn POPi.CheckMessages eine "0" liefert? Liegen denn im Postfach irgendwelche Mails? Ich würde in die for-Schleife nur dann gehen, wenn x>0 ist. Gruß |
Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
eine for-to-schleife wird nicht ausgeführt, wenn der 2te wert kleiner als der erste ist. (für sowas ist ja eine for-downto-schleife da)
mfG mirage228 |
Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
stimmt. Da habe ich nicht mal wieder nicht zu Ende gedacht.
Also ich habe schon mit Indy gearbeitet, kenne das Fehlerbild so nicht. Was aber immer hilft, mit Telnet (oder Outlook) auf den POP3-Server zu gehen, und mal schauen, ob die Mails da tatsächlich liegen. Zweiter Vorschlag, beim constructor von TIdMessage nen Component zu übergeben. Wir machen das so. |
Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
Die Email liegt da. Benutzt man popi.retrieveHeaders, zeigt er sie mir an! Ich habe die Messagekomponente auch schon mal einfach auf die Form gelegt. Gleiches Problem.
:cry: Romy |
Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
also ich hatte schon öfter mit Indy Probleme,
machmal waren das einfach Bugs in Indy selbst, ich musste schon mal die Sources von Indy anpacken. Versuch mal mit dem Debugger in Indy-Units zu gehen. hast Du auf der Indy-Seite mal geschaut? |
Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
Wäre ja echt kraß, wenn Retrieve... eigentlich die wichtigste Methode einen Bug hätte! :|
|
Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
Es kann daran liegen, dass Du einen "exotischen" POP3-Server einsetzt,
dann kann schon mal der Parser auf die Schnauze fallen. Auf was für einen Server connectest Du denn? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz