Do you own SSL validation example
When you use the Pop3Client to connect to a server using SSL, the certificate of the server is validated.
Sometimes you want to do the validation yourself, since you might be using a self-signed certificate or the like. Here is how you do that:
/// <summary>
/// Example showing:
///  - how to set timeouts
///  - how to override the SSL certificate checks with your own implementation
/// </summary>
/// <param name="hostname">Hostname of the server. For example:</param>
/// <param name="port">Host port to connect to. Normally: 110 for plain POP3, 995 for SSL POP3</param>
/// <param name="timeouts">Read and write timeouts used by the Pop3Client</param>
public static void BypassSslCertificateCheck(string hostname, int port, int timeouts)
    // The client disconnects from the server when being disposed
    using (Pop3Client client = new Pop3Client())
        // Connect to the server using SSL with specified settings
        // true here denotes that we connect using SSL
        // The certificateValidator can validate the SSL certificate of the server.
        // This might be needed if the server is using a custom normally untrusted certificate
        client.Connect(hostname, port, true, timeouts, timeouts, certificateValidator);

        // Do something extra now that we are connected to the server

private static bool certificateValidator(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslpolicyerrors)
    // We should check if there are some SSLPolicyErrors, but here we simply say that
    // the certificate is okay - we trust it.
    return true;
As you can see, you pass a validation method to the Connect method of the Pop3Client.
When the certificate needs to be validated, your supplied method will be called.