2017-08-14 4 views
0

J'ai un client POP3 qui utilise Indy, ce connecte bien, mais je dois interrompre la connexion lorsque le certificat est invalide. Quelqu'un a des idées?POP3 Indy avec cert invalide

procedure Tpop3client.connectPOP3; 
var 
status : Boolean; 
I, msgTotal : Integer; 
begin 
if edSSL then begin 
    POP3.IOHandler := SSL; 
    POP3.UseTLS := utUseExplicitTLS; 
end; 
status := False; 
try 
    POP3.Username := eduserName; 
    POP3.Password := edpassWord; 
    POP3.Connect(edtargetHost,edtargetPort); 
    if POP3.Connected then begin 
    msgTotal := POP3.CheckMessages; 
    if msgTotal >=1 then 
     for I := 1 to msgTotal do begin 
     if getMessage(I) then 
     begin 
      getHeaders; 
      delMessage(I) 
     end; 
    end 
end; 
finally 
    POP3.Disconnect 
end; 
end; 

Répondre

0

Dans le composant TIdSSLIOHandlerSocketOpenSSL, activez le drapeau sslvrfPeer dans la propriété SSLOptions.VerifyMode, et éventuellement attribuer un gestionnaire à l'événement OnVerifyPeer si vous voulez valider les détails particuliers du certificat du serveur au-delà des validations par défaut de OpenSSL. Si la validation échoue, l'établissement de liaison SSL/TLS se terminera par une alerte d'erreur, la connexion sera fermée et une exception sera générée dans votre code.