Guten Abend zusammen,
habe gerade Delphi 2006 Prof. installiert wo dann auch die
Indy 10.1.5 bei sind und habe daraufhin versucht eines meiner Projekte (ein Mail-Client) zu öffnen und zu compilieren. Das Compilieren klappt sogar auch, doch das Programm verhält sich vollkommen Abnormal, solange ich der "TIdPOP3"-Komponete eine Instanz von "TIdSSLIOHandlerSocketOpenSSL" als "IOHandler" zugewiesen haben!
Vorher hatte ich Delphi 2005 mit
Indy 10.0 und auch mal Delphi 7 mit
Indy 10.1.5, bei beiden lief das Programm ohne Probleme und jetzt hab ich da dieses Problem :-/
Ich habe nun schon einiges rumprobiert und mich in den Foren und per Google totgesucht (gibt scheinbar keinen der
POP3 mit SSL verwendet...) doch ich finde einfach keine Hilfe oder eine Lösung!
Eine Spur ist vielleicht, dass die SSL-Verbindung offensichtlich zustande kommt, dann ein 1.
POP3-Kommando kann abgesetzt werden und ich bekomme auch das korrekte Ergebnis zurück (hier: Anzahl der Mails).
Dann bricht die Verbindung beim 2.
POP3-Kommando scheinbar zusammen, jedenfalls bekomme ich nur einen leeren "EIdReplyPOP3Error" zurück.
Ohne SSL, sprich IdPOP3.IOHandler = nil, funktioniert der selbe Code problemlos! An einen TimeOut mag ich kaum denken, da die Zeilen im Code wirklich direkt aufeinander folgen und ich zudem die Timeout des "TIdPOP3" und des "TIdSSLIOHandlerSocketOpenSSL" auf Werte über 10.000 gesetzt habe...
EDIT:
Hier nochmal ein Beispielcode, mit dem sich der Fehler reproduzieren lässt:
Delphi-Quellcode:
IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create(
nil);
IdPOP3 := TIdPOP3.Create(
nil);
IdPOP3.AutoLogin := true;
IdPOP3.IOHandler := IdSSLIOHandlerSocketOpenSSL;
IdPOP3.Host := '
localhost';
IdPOP3.Port := 110;
IdPOP3.Username := '
mail@name.tld.';
IdPOP3.Password := '
password';
IdPOP3.UseTLS := utNoTLSSupport;
IdPOP3.Connect;
i := IdPOP3.CheckMessages;
i := IdPOP3.RetrieveMailBoxSize;
[color=#ff0000] i := IdPOP3.CheckMessages;[/color]
i := IdPOP3.RetrieveMailBoxSize;
i := IdPOP3.CheckMessages;
i := IdPOP3.RetrieveMailBoxSize;
IdPOP3.Disconnect;
Nach/Bei Ausführung der rot makierten Zeile kommt der leere "EIdReplyPOP3Error"!