• Loading...
ComponentPro UltimateMail

Authenticating to an IMAP server using NTLM

Language Filter: AllSend comments on this topic to ComponentPro

To authenticate to an IMAP server using NTLM, you follow the steps below

  1. Add using directives to your code to create aliases for existing namespaces and avoid having to type the fully qualified type names. The code looks similar to the following:
    using System;
    using System.Text;
    using ComponentPro.Net.Mail;
    
  2. Create a new instance of the Imap class.
  3. Now you can connect to the IMAP server with Connect methods. The code looks similar to the following:
    // Create a new instance of the Imap class.
    Imap client = new Imap();
    
    // Connect to the server.
    client.Connect("myserver");
    
    // Or you can specify the IMAP port with 
    // client.Connect("myserver", 143);
    
  4. Use your user name and password to login with one of Authenticate methods.  The code looks similar to the following:
    // Login to the server using NTLM authentication method.
    client.Authenticate("user", "password", ImapAuthenticationMethod.Ntlm);
    
  5. Do your work like listing mailboxes, downloading/uploading mail messages ,etc.  The code looks similar to the following:
    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());
    
  6. After completing your work, call the Disconnect method to close the IMAP session. 

Final example code

using System;
using System.Text;
using ComponentPro.Net.Mail;

...

// Create a new instance of the Imap class.
Imap client = new Imap();

// Connect to the server.
client.Connect("myserver");

// Or you can specify the IMAP port with 
// client.Connect("myserver", 143); 
 
// Login to the server using NTLM authentication method.
client.Authenticate("user", "password", ImapAuthenticationMethod.Ntlm);

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());

// Close the connection.
client.Disconnect();