![]() |
IdPOP3 + SSL: Immer "Connection closed gracefully"
Hi,
In meinem Projekt benutze ich IdPOP3 mit IdSSLIOHandlerSocketOpenSSL. Nur aus irgendeinem Grund bricht die Verbindung sofort, egal bei welchem Server, mit "Connection closed gracefully" ab (Auch wenn Firewall/AV deaktiviert). Habe die Server von Yahoo, GMail und Freenet getestet. Überall das selbe. Die Meldung "Connection closed gracefully" wird instantan nach idpop31.Connect() ausgegeben. Ich habe mal per Wireshark mitgeschnüffelt und es findet überhaupt keine Kommunikation statt?! :gruebel: Hier mein Code: (Ich benutze Borland Delphi 7 mit Indy 10)
Delphi-Quellcode:
idssliohandlersocketopenssl1 := Tidssliohandlersocketopenssl.Create(nil);
idssliohandlersocketopenssl1.SSLOptions.Mode := sslmUnassigned; idssliohandlersocketopenssl1.SSLOptions.Method := sslvSSLv3; // Kein Erfolg mit sslvSSLv2 idpop31 := tidpop3.Create(nil); idpop31.IOHandler := idssliohandlersocketopenssl1; idpop31.UseTLS := utUseExplicitTLS; // Kein Erfolg mit utUseImplicitTLS etc. idpop31.Host := server; //Im Vorfeld deklariert, auf jeden Fall richtig idssliohandlersocketopenssl1.Host := server; idpop31.Username := user; //Im Vorfeld deklariert, auf jeden Fall richtig idpop31.Password := password; //Im Vorfeld deklariert, auf jeden Fall richtig idpop31.Port := 995; idpop31.ConnectTimeout := 5000; idpop31.ReadTimeout := 5000; try idpop31.Connect(); // Hierbei Exception EidConnectionClosedGracefully memo1.Lines.Add(IntToStr(idpop31.CheckMessages)+' E-Mails gefunden.'); idpop31.Disconnect(); except on E : Exception do begin Memo1.Lines.Add('ERROR: '+E.Message+' // '+E.ClassName); end; end; end; Der Fehler ist mir rätselhaft, zumal mein Programm ja nicht einmal mit dem Server Kontakt aufnimmt :? Vielleicht weiß hier einer besser Bescheid :) |
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
|
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Jo, thx.
![]() |
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Verdammt, die Einstellungen sind jetzt genau gleich, aber es kommt immer noch "Connection closed gracefully".
Irgendwas läuft hier falsch :( |
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Meist sind es nur Kleinigkeiten die zwischen Erfolg und Misserfolg liegen.
Bist Du Dir sicher das: a.) Der Code gem. #3 funktioniert (hat) b.) Deine Einstellungen wirklich korrekt sind ? und btw "Connection closed gracefully" ist kein Fehler sondern nur die "Nachricht" das der Server/die Gegenstelle die Verbindung beendet hat... |
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
a) Was meinst du mit #3?
b) Ja Das ist mir klar, was "Connection closed gracefully" bedeutet, aber sollte dazu nicht mit dem Server kommuniziert werden? (Wireshark zeigt nichts an :? ) |
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Zitat:
Zitat:
![]() Nutze doch mal das Statusinfo - Event von Deinem IOHandler, da müsste eigentlich die Kommunikation mit zu verfolgen sein... |
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Hab ich gemacht:
Delphi-Quellcode:
Aber es wird nichts angezeigt! Was läuft da wohl schief :- /
procedure TForm1.IdSSLIOHandlerSocketOpenSSL1Status(ASender: TObject;
const AStatus: TIdStatus; const AStatusText: String); begin Memo1.Lines.Add('idSSL: ' +AStatusText); end; procedure TForm1.IdSSLIOHandlerSocketOpenSSL1StatusInfo(Msg: String); begin Memo1.Lines.Add('idSSL: ' +Msg); end; procedure TForm1.IdPOP31Status(ASender: TObject; const AStatus: TIdStatus; const AStatusText: String); begin Memo1.Lines.Add('idSSL: ' +AStatusText); end; Aber Danke für die Hilfe |
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Ja was denn nu: Funktioniert der in #3 verlinkte Code oder nicht?
|
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Sry, ja, der funktioniert.
|
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Wo ist dann das Problem... :gruebel:
|
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Mein eigener Code in #1, der in meinem Programm eingebettet ist, funktioniert aus irgendeinem Grund nicht.
|
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Dann vergleiche noch mal gaaaaaanz genau...
... wie gesagt meist ist es nur eine Kleinigkeit (und die evtl. auch noch an ganz anderer Stelle als vermutet; z.B. wird in ![]() |
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Ich glaube ich konnte das Problem, aber nicht die Ursache finden.
In IdPOP3.Connect:
Delphi-Quellcode:
(IOHandler is TIdSSLIOHandlerSocketBase) Ist im funktionierenden Code wahr, in meinem falsch. Das kann ich mir nicht erklären, da in beiden Codes IdPOP3 der IOHandler IdSSLIOHandlerSocketOpenSSL zugewiesen wird.
if (IOHandler is TIdSSLIOHandlerSocketBase) then begin
case FUseTLS of utNoTLSSupport : begin (IOHandler as TIdSSLIOHandlerSocketBase).PassThrough := true; end; utUseImplicitTLS : begin (IOHandler as TIdSSLIOHandlerSocketBase).PassThrough := False; end else if FUseTLS<>utUseImplicitTLS then begin (IOHandler as TIdSSLIOHandlerSocketBase).PassThrough := true; end; end; end; |
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Erzeugst Du den Handler / Pop3 immer noch händisch oder liegen die Teile auf der Form?
Kann es evtl. sein das Du im Objektinspektor entweder für den die IOHandler- und/oder die POP3- Komponente etwas anderes als die defaultwerte eingetragen hast, die dann im Code von Dir nicht angepasst werden? Also zum Beispiel bei dem IOHandler die zuverwendende IPVersion oder die SSLOptions? Ist UseTLS auf utUseImplicitTLS ??? Zeig doch nochmal den aktuellen Code.... |
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Zitat:
Zitat:
Zitat:
Zitat:
In der unit1.pas:
Delphi-Quellcode:
In Unit1.dfm:
idssliohandlersocketopenssl1 := Tidssliohandlersocketopenssl.Create(nil);
idpop31 := tidpop3.Create(nil); idpop31.Host := server; idssliohandlersocketopenssl1.Host := server; idssliohandlersocketopenssl1.Destination := server +':995'; idpop31.Username := user; idpop31.Password := password; try idpop31.Connect; except on E : Exception do begin Memo1.Lines.Add('ERROR: '+E.Message+' // '+E.ClassName); end; end;
Delphi-Quellcode:
object IdPOP31: TIdPOP3
OnStatus = IdPOP31Status IOHandler = IdSSLIOHandlerSocketOpenSSL1 AutoLogin = True UseTLS = utUseImplicitTLS Port = 995 SASLMechanisms = <> Left = 432 Top = 16 end object IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL OnStatus = IdSSLIOHandlerSocketOpenSSL1Status MaxLineAction = maException Port = 995 DefaultPort = 0 SSLOptions.Method = sslvSSLv3 SSLOptions.Mode = sslmUnassigned SSLOptions.VerifyMode = [] SSLOptions.VerifyDepth = 0 OnStatusInfo = IdSSLIOHandlerSocketOpenSSL1StatusInfo Left = 440 Top = 48 end |
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Durch
Delphi-Quellcode:
und
idssliohandlersocketopenssl1 := Tidssliohandlersocketopenssl.Create(nil);
idpop31 := tidpop3.Create(nil);
Delphi-Quellcode:
erzeugst Du meiner Meinung nach zweimal das jeweilige Objekt:
object IdPOP31: TIdPOP3
... object IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL ... 1. Beim Initialisieren der Form werden die Objekte erzeugt / initialisiert (mit den Werten aus dem OI) 2. Irgendwann in Deinem Code (k.A. wann genau, da die aufrufende / beinhaltende Funktion nicht zu sehen ist, aber aufjedenfall nach 1.) werden diese quasi nochmals erzeugt / initialisiert (und zwar mit ihren Default :!: -Werten) Hast Du also im OI bestimmte Werte geändert, so sind diese durch die erneute Erzeugung/ Initialisierung verloren bzw. durch die Defaultwerte überschrieben. Dies erklärt warum z.B. die Routine
Delphi-Quellcode:
quasi nie aufgerufen wird (und damit natürlich auch kein Ergebnis liefern kann), da sie im Objekt:
procedure TForm1.IdSSLIOHandlerSocketOpenSSL1StatusInfo(Msg: String);
begin Memo1.Lines.Add('idSSL: ' +Msg); end;
Delphi-Quellcode:
nicht vorhanden / gesetzt ist.
idssliohandlersocketopenssl1 := Tidssliohandlersocketopenssl.Create(nil);
|
Re: IdPOP3 + SSL: Immer "Connection closed gracefully&a
Danke für die Hilfe. Bin mittlerweile auf Delphi 2009 umgestiegen. Funktioniert soweit.
Nur die üblichen paar Bugs :D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 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