ComponentPro UltimateMail

      AuthenticateAsync(String, String, Object) Method

      See AlsoMembers Options: Show AllLanguage Filter: AllSend comments on this topic to ComponentPro
      Asynchronously authenticates the specified user to the remote IMAP server with the specified credentials.

      Syntax

      public Task AuthenticateAsync(
         string userName, 
         string password, 
         object userState = null
      )

      Parameters

      userName
      The username.
      password
      Password for the given username.
      userState
      A user-provided object that identifies this particular asynchronous operation.

      Return Value

      An object that references the asynchronous operation.

      Examples

      Asynchronously connect to an IMAP server and list existing mailboxes (Task-based asynchronous approach).

      using System;
      using System.ComponentModel;
      using System.Text;
      using ComponentPro.Net.Mail;
      using ComponentPro;
      
      ...
      
      // Create a new instance.
      Imap client = new Imap();
      
      try
      {
          // Connect to the IMAP server asynchronously. 
          await client.ConnectAsync("myserver");
      
          // Or you can specify the IMAP port with 
          // await client.ConnectAsync("myserver", 143); 
       
          // Authenticate the user asynchronously. 
          await client.AuthenticateAsync("userName", "password");
      
          // Do something here... 
          StringBuilder sb = new StringBuilder();
      
          FolderCollection list = client.ListFolders();
          for (int i = 0; i < list.Count; i++)
          {
              sb.AppendFormat("{0} - {1}\r\n", i + 1, list[i].Name);
          }
      
          Console.WriteLine(sb.ToString());
      
          // ... 
       
          // Disconnect asynchronously. 
          await client.DisconnectAsync();
      }
      catch (Exception ex)
      {
          Console.WriteLine("Error: " + ex.ToString());
      }

      Asynchronously connect to an IMAP server and list existing mailboxes (Event-based asynchronous approach).

      using System;
      using System.ComponentModel;
      using System.Text;
      using ComponentPro.Net.Mail;
      using ComponentPro;
      
      ...
      
      public void DoAsyncConnect()
      {
          // Create a new instance. 
          Imap client = new Imap();
      
          client.ConnectCompleted += client_ConnectCompleted;
          client.AuthenticateCompleted += client_AuthenticateCompleted;
          client.DisconnectCompleted += client_DisconnectCompleted;
      
          // Connect to the IMAP server asynchronously. 
          client.ConnectAsync("myserver");
      
          // Or you can specify the IMAP port with 
          // client.ConnectAsync("myserver", 143); 
       
          // Your code here 
          // ...
      }
      
      void client_ConnectCompleted(object sender, ExtendedAsyncCompletedEventArgs<string> e)
      {
          Imap client = (Imap)sender;
          if (e.Error != null)
          {
              Console.WriteLine("Error: " + e.Error.ToString());
              return;
          }
      
          // Authenticate the user asynchronously. 
          client.AuthenticateAsync("userName", "password");
      }
      
      void client_AuthenticateCompleted(object sender, AsyncCompletedEventArgs e)
      {
          Imap client = (Imap)sender;
          if (e.Error != null)
          {
              Console.WriteLine("Error: " + e.Error.ToString());
              return;
          }
      
          // Do something here... 
          StringBuilder sb = new StringBuilder();
      
          FolderCollection list = client.ListFolders();
          for (int i = 0; i < list.Count; i++)
          {
              sb.AppendFormat("{0} - {1}\r\n", i + 1, list[i].Name);
          }
      
          Console.WriteLine(sb.ToString());
      
          // ... 
       
          // Disconnect asynchronously. 
          client.DisconnectAsync();
      }
      
      void client_DisconnectCompleted(object sender, ExtendedAsyncCompletedEventArgs<string> e)
      {
          Imap client = (Imap)sender;
          if (e.Error != null)
          {
              Console.WriteLine("Error: " + e.Error.ToString());
          }
      }

      Framework

      .NET Compact Framework.NET Compact Framework

      Supported version: 2.0, 3.5, and 3.9
      Assembly: ComponentPro.Mail.CF (in ComponentPro.Mail.CF.dll)

      .NET Framework.NET Framework

      Supported version: 2.0, 3.0, 3.5, 4.0, 4.5.x, 4.6.x and later
      Assembly: ComponentPro.Mail (in ComponentPro.Mail.dll)

      Xamarin AndroidXamarin Android

      Supported version: 2.3 and later
      Assembly: ComponentPro.Mail.Android (in ComponentPro.Mail.Android.dll)

      Xamarin MacXamarin Mac

      Supported version: 2.0.x and later
      Assembly: ComponentPro.Mail.Mac (in ComponentPro.Mail.Mac.dll)

      Xamarin iOSXamarin iOS

      Supported version: 5.1.x and later
      Assembly: ComponentPro.Mail.iOS (in ComponentPro.Mail.iOS.dll)

      See Also