Bei der Methode habe ich alle probiert, immer das gleiche Ergebnis.
Der eigentlich Prüf-Code:
Delphi-Quellcode:
function POP3MailCheck(aServer, aUser, aPasswort:
String; aPort: Integer; aSSL: Boolean): TPopCheckInfo;
begin
with MCForm.POPInterface
do
begin
if (Connected)
then
Disconnect;
Host := aServer;
Port := aPort;
Username := aUser;
Password := aPasswort;
If aSSL
then
begin
IOHandler := MCForm.POP_SSL;
UseTLS := utUseExplicitTLS;
end
else
begin
IOHandler :=
nil;
UseTLS := utNoTLSSupport ;
end;
try
Connect;
except
on E:
Exception do
begin
result.PMails := 0;
result.PError := true;
result.PErrorMsg := TranslateError(E.
Message);
// Eigene Funktion (Error-Nummer --> Text)
exit;
end;
end;
result.PMails := CheckMessages;
result.PError := false;
result.PErrorMsg := '
';
Disconnect;
end;
end;
wobei POPInterface TIdPop3 und POP_SSL der SS-IOHandler sind.
Mit T-Online funktioniert das wie gesagt, aber bei GoogleMail friert das Programm bei Connect ein. Keine Fehlermeldung. Er versucht jedenfalls, sich zu verbinden, weil die Firewall nachfragt (was ich selbstverständlich erlaube). Aber schon die nächste Zeile wird nicht erreicht.
Für das Einfrieren ist es völlig gleich, ob ich einen IOHandler verwende oder nicht und wenn ja ob die DLLs da sind oder nicht.
Edit: Da ich ja nun auch die
pas-Dateien habe, habe ich mal einen Breakpoint gesetzt und geschaut, wie weit er kommt. Bei der Funktion Stub_connect in der IdWinsock2.pas passiert nichts mehr.
Edit2: Ups, die Daten. pop.googlemail.com:995.