Hi Leute,
habe ein ernsthaftet Problem. Bis vor 3 Stunden lief alles normal - es wurde seit Tagen nichts verändert und auf ein Mal tritt ein mir absolut rätselhaftes Problem auf.
Ich habe ein Tool, was per POP3 E-Mails mit Anhang von einem Server abruft. Die Anhänge werden dann in einem Verzeichnis gespeichert. Wenn ich das Tool über Delphi 7 (oder 2006, das ist egal) starte, dann macht der alles wunderbar - so wie's sich auch gehört.
Das Tool läuft aber auch noch auf einem Server (schon seit über 2 Jahren). Doch heute raucht das Teil die ganze Zeit ab und nach längerer Debug-Zeit bin ich darauf gestoßen, dass
Delphi-Quelltext
1:
| IdPop3.Retrieve(ID, Message) |
eine Exception schmeißt. Die habe ich mir per Log-Datei ausgeben lassen. Dort steht folgendes drin:
Cannot create file "C:\Programme\MeinTool\Und hier jetzt der gesamte Body, wieso auch immer". Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
Die Frage ist natürlich: Wieso macht Retrieve auf einmal jetzt so n' *mist*e. Ich rall das echt nicht. Hat da von euch jemand n' Idee - bin absolut ratlos
Vielen Dank für eure Mühen
Stefan
Moderiert von
Narses: Beiträge zusammengefasst
hier noch was mehr Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure ConnectToPop3Server(Value: Integer); begin try IdPOP3 := TIdPOP3.Create(nil); IdPOP3.Host := MailItems[Value].Pop; IdPOP3.Username := MailItems[Value].User; IdPOP3.Password := MailItems[Value].Pwd; IdPOP3.Port := MailItems[Value].PopPort; IdPOP3.Connect(); except ErrorCode := erCode_ConnectionProblemPopServer; end; end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| for I := 1 to IdPOP3.CheckMessages do begin MailMessage := TIdMessage.Create(nil); MailMessage.Clear;
try IdPOP3.Retrieve(I, MailMessage); except on E: Exception do begin Writeln(E.Message); => hier kommt die Fehlermeldung raus end; end;
LoadMessagesFromServer; LoadAttachements;
IdPOP3.Delete(I); end; |