2017-08-14 101 views
0

我有一个使用Indy的POP3客户端,这很好连接,但我需要在证书无效时中止连接。任何人有想法?Indy POP3与无效的证书

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; 

回答

0

TIdSSLIOHandlerSocketOpenSSL组件,能够在SSLOptions.VerifyMode财产sslvrfPeer标志,如果你想验证超越OpenSSL的默认验证服务器证书的具体细节的处理程序可选择分配到OnVerifyPeer事件。如果验证失败,SSL/TLS握手将以错误警报终止,连接将被关闭,并且会在您的代码中引发异常。