ComponentPro UltimateMail

      AuthenticateAsync(String, ImapAuthenticationMethod, Object) Method

      See AlsoMembers Options: Show AllLanguage Filter: AllSend comments on this topic to ComponentPro
      Asynchronously authenticates the user to the IMAP server using an OAuth token.

      Syntax

      public Task AuthenticateAsync(
         string token, 
         ImapAuthenticationMethod authenticationMethod, 
         object userState = null
      )

      Parameters

      token
      The authentication token.
      authenticationMethod
      The IMAP authentication method.
      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