Dart.Mail Namespace > Imap Class : Authenticate Method |
Public Sub Authenticate()
Dim instance As Imap instance.Authenticate()
public void Authenticate()
public: void Authenticate();
public: void Authenticate();
Exception | Description |
---|---|
System.DllNotFoundException | "secur32.dll" - secur32.dll or one of its dependencies could not be loaded, which is required for GSSAPI and NTLM support. To resolve this exception, set Imap.Session.Authentication to a value other than Authentication.GssApi or Authentication.Ntlm. |
using System.Security.Cryptography.X509Certificates; using System.Security.Authentication; using System.Net.Security; /// <summary> /// Connects to an Imap server, optionally using encryption (Explicit/Implicit), and authenticates the user. /// </summary> /// <param name="myImap">The Imap instance to connect and authenticate</param> /// <param name="hostNameOrAddress">The server's hostname or IP address</param> /// <param name="auth">Authentication method to use. 'Auto' is suitable for most circumstances.</param> /// <param name="username">Username</param> /// <param name="password">Password</param> /// <param name="encryption">Controls whether SSL/TLS is used, and the implementation. None/Explicit/Implicit.</param> private void ConnectAndAuthenticate(Imap myImap, string hostNameOrAddress, Authentication auth, string username, string password, Encrypt encryption) { if (encryption != Encrypt.None) { //Set the method of encryption - Implicit/Explicit myImap.Session.Security.Encrypt = encryption; //Optionally set the protocols available for SSL/TLS negotiation (defaults to SslProtocols.Default) //TLS 1.1/1.2 requires .NET 4.5+. See the SslProtocols MSDN documentation for more information. myImap.Session.Security.Protocols = SslProtocols.Tls | SslProtocols.Ssl3; //Specify the server certificate validation callback myImap.Session.Security.ValidationCallback = remoteCertificateValidation; } //Set the server address and port. If the server uses a non-standard port, it should be substituted here. //GetDefaultPort() returns the common port used for the security configuration. myImap.Session.RemoteEndPoint = new IPEndPoint(hostNameOrAddress, Imap.GetDefaultPort(myImap.Session)); //Connect to the server. myImap.Connect(); //Authenticate the user. myImap.Session.Username = username; myImap.Session.Password = password; myImap.Session.Authentication = auth; myImap.Authenticate(); } private bool remoteCertificateValidation(Object sender, X509Certificate remoteCertificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { //For this simple snippet, accept all server certificates. Please see the 'Security' top-level help topics, or //the System.Net.Security.RemoteCertificateValidationCallback MSDN documentation, for more information. return true; }
Imports System.Security.Cryptography.X509Certificates Imports System.Security.Authentication Imports System.Net.Security ''' <summary> ''' Connects to an Imap server, optionally using encryption (Explicit/Implicit), and authenticates the user. ''' </summary> ''' <param name="myImap">The Imap instance to connect and authenticate</param> ''' <param name="hostNameOrAddress">The server's hostname or IP address</param> ''' <param name="auth">Authentication method to use. 'Auto' is suitable for most circumstances.</param> ''' <param name="username">Username</param> ''' <param name="password">Password</param> ''' <param name="encryption">Controls whether SSL/TLS is used, and the implementation. None/Explicit/Implicit.</param> Private Sub ConnectAndAuthenticate(ByVal myImap As Imap, ByVal hostNameOrAddress As String, ByVal auth As Authentication, ByVal username As String, ByVal password As String, ByVal encryption As Encrypt) If encryption <> Encrypt.None Then 'Set the method of encryption - Implicit/Explicit myImap.Session.Security.Encrypt = encryption 'Optionally set the protocols available for SSL/TLS negotiation (defaults to SslProtocols.Default) 'TLS 1.1/1.2 requires .NET 4.5+. See the SslProtocols MSDN documentation for more information. myImap.Session.Security.Protocols = SslProtocols.Tls Or SslProtocols.Ssl3 'Specify the server certificate validation callback myImap.Session.Security.ValidationCallback = AddressOf remoteCertificateValidation End If 'Set the server address and port. If the server uses a non-standard port, it should be substituted here. 'GetDefaultPort() returns the common port used for the security configuration. myImap.Session.RemoteEndPoint = New IPEndPoint(hostNameOrAddress, Imap.GetDefaultPort(myImap.Session)) 'Connect to the server. myImap.Connect() 'Authenticate the user. myImap.Session.Username = username myImap.Session.Password = password myImap.Session.Authentication = auth myImap.Authenticate() End Sub Private Function remoteCertificateValidation(ByVal sender As Object, ByVal remoteCertificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As SslPolicyErrors) As Boolean 'For this simple snippet, accept all server certificates. Please see the 'Security' top-level help topics, or 'the System.Net.Security.RemoteCertificateValidationCallback MSDN documentation, for more information. Return True End Function