Bonjour
J'essaie de me connecter à une boîte pop3 en utilisant les composants TIdPop3 et TIdSSLIOHandlerSocketOpenSSL et Delphi XE2 32 bits (c'est pareil avec XE10.2.2), sous Windows 10.
Le code ressemble à :
Le problème est que sur certains postes ça marche très bien, et sur d'autres on a toujours une erreur 10060, Délai de connexion dépassé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 with IdPOP3 do begin Name := 'POP3'; AutoLogin := False; Host := 'monhost'; Username := 'monuser'; Password := 'monpassword'; Port := 995; IOHandler := IdSSLIOHandlerSocketOpenSSL; UseTLS := utUseImplicitTLS; end; with IdSSLIOHandlerSocketOpenSSL do begin Destination := 'monhost:995'; Host := 'monhost'; Port := 995; DefaultPort := 0; end; try IdPOP3.Connect; except on e : Exception do begin stb.SimpleText := e.Message; abort; end; end;
Sur les postes en erreur, on relève sans problème la même boîte POP3 avec Outlook, donc on se connecte bien et ça ne devrait pas être un problème de firewall ou autre blocage réseau.
J'ai pris les DLL libeay32.dll et ssleay32.dll livrées avec Delphi et je les ai mises dans SYSWOW64 (mais c'est pareil si elles sont dans le même dossier que l'exécutable, ou si j'en prends d'autres).
J'ai rendu ces DLL uniques, au cas où d'autres versions présentes sur le système seraient chargées automatiquement, et j'ai rebooté...
En regardant le code de Indy, ce qui m'étonne est qu'on ne charge apparemment jamais ces DLL bien qu'il y ait une méthode pour le faire dans l'unité IdSSLOpenSSLHeaders.
Et si j'appelle explicitement cette fonction IdSSLOpenSSLHeaders.Load, les handlers sont retournés à 0, sans que cela provoque d'erreur (alors que ça devrait il me semble), et laisse tous les points d'entrée des procédures des DLL à nil.
Auriez-vous une suggestion ? Est-ce que ça fonctionne chez-vous ?
Merci
Partager