By default most systems allow SSL 3.0, TLS 1.0, 1.2 and 1.2 to be used, when connecting using POP3 client.
TLS 1.2 is the most secure version of SSL/TLS protocols. It is easy to force the connection to use it. All you need to do is to set Pop3.SSLConfiguration.EnabledSslProtocols property to SslProtocols.Tls12:
// C# using (Pop3 pop3 = new Pop3()) { pop3.SSLConfiguration.EnabledSslProtocols = SslProtocols.Tls12; pop3.ConnectSSL("pop.example.com"); pop3.UseBestLogin("user","password"); // ... pop3.Close(); }
' VB.NET Using pop3As New Pop3() pop3.SSLConfiguration.EnabledSslProtocols = SslProtocols.Tls12 pop3.ConnectSSL("pop.example.com") pop3.UseBestLogin("user@example.com", "password") '... pop3.Close() End Using
For explicit SSL/TLS, code is almost the same. You first connect to non-secure port and secure the connection using Pop3.StartTLS command:
// C# using (Pop3 pop3 = new Pop3()) { pop3.SSLConfiguration.EnabledSslProtocols = SslProtocols.Tls12; pop3.Connect("pop.example.com"); pop3.StartTLS(); pop3.UseBestLogin("user@example.com","password"); // ... pop3.Close(); }
' VB.NET Using pop3 As New Pop3() pop3.SSLConfiguration.EnabledSslProtocols = SslProtocols.Tls12 pop3.Connect("pop.example.com") pop3.StartTLS() pop3.UseBestLogin("user@example.com", "password") '... pop3.Close() End Using
To use TLS 1.2 at least .NET Framework 4.5+ must be installed on your machine and you application should target .NET 4.5+.
It is possible to use TLS 1.2 in applications targeting earlier .NET framework versions, but 4.5 must be installed on the machine. After you have .NET 4.5 installed, your 2.0-4.0 apps will use the 4.5 System.dll and you can enable TLS 1.2 using this code:
// C# pop3.SSLConfiguration.EnabledSslProtocols = (SecurityProtocolType)3072;