Hallo,
zuerst einmal wäre es gut zu wissen, warum die Verbindung hakt. Vermutlich hast du keinen Zugriff auf den Mail-Server, oder?
Ich würde als erstes ein Logging einbauen, ich mache das so:
Code:
IdLogFile:=TIdLogFile.Create(nil);
IdLogFile.Filename:=IncludeTrailingPathDelimiter(AppDataDir) +
IncludeTrailingPathDelimiter(moduleKey)+'IdLogFile.txt';
IdLogFile.Active:=true;
SSB_SSLHandler.Intercept:=IdLogFile;
IdPop3.Intercept:=IdLogFile;
Da wird dann alles gekloggt, auch Passwörter, etc.
AppDataDir uns moduleKey kommt aus meiner Anwendung ist nur ein Beispiel. SSB_SSLHandler ist ein Ersatz für TIdSSLIOHandlerSocketOpenSSL von Secureblackbox, das wirst du auch anpassen müssen.
Weiterhin würde ich die Funktionen
Code:
POP.Connect;
POP.CheckMessages;
POP.Retrieve;
in try..except Blöcke mit entsprechendem Logging setzen.
Zum Beispiel:
Code:
try
idPop3.Connect;
except
on E :
Exception do begin
// Fehlermeldung protokollieren
New(InfoMessageRecord);
InfoMessageRecord^.ThreadID := GetCurrentThreadID;
InfoMessageRecord^.Content := '
Exception: class name = '+E.ClassName+' / message: '+E.Message;
PostThreadMessage(ThreadIDMessaging, TH_MESSAGING, TH_INFOMESSAGE, Integer(InfoMessageRecord));
exit;
end;
end;
Auch hier: Kommt aus meiner Anwendung, insbesondere den Except Block musst du anpassen.
Also - als nächstes schauen, warum das passiert, dann kann man entsprechend in der Anwendung reagieren.
lg
Sebastian