2017-08-14 11 views
0

Ich habe einen POP3-Client, der Indy verwendet, dies verbindet sich gut, aber ich muss die Verbindung abbrechen, wenn das Zertifikat ungültig ist. Hat jemand Ideen?Indy POP3 mit ungültigem Zertifikat

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; 

Antwort

0

Im TIdSSLIOHandlerSocketOpenSSL Komponente, aktivieren Sie die sslvrfPeer Flag im SSLOptions.VerifyMode Eigenschaft und optional einen Handler zum OnVerifyPeer Ereignis zuordnen, wenn Sie die besonderen Details der das Zertifikat des Servers über OpenSSL-Standard Validierungen validieren möchten. Wenn die Validierung fehlschlägt, wird der SSL/TLS-Handshake mit einer Fehlerwarnung beendet, die Verbindung wird geschlossen und eine Ausnahme wird in Ihrem Code ausgelöst.