public event AsyncCompletedEventHandler SelectCompleted
Connect to an IMAP server and select a mailbox asynchronously (Task-based asynchronous approach).
using System; 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. client.Authenticate("user", "password"); // ... // Select the 'INBOX' mailbox. await client.SelectAsync("INBOX", false); // ... // List messages in the current working mailbox. ImapMessageCollection listMessages = client.ListMessages(ImapEnvelopeParts.UniqueId | ImapEnvelopeParts.Size); foreach (ImapMessage m in listMessages) { Console.WriteLine(string.Format("UniqueId: {0}, Size: {1}", m.UniqueId, m.Size)); } // Disconnect. client.Disconnect();
Connect to an IMAP server and select a mailbox asynchronously (Event-based asynchronous approach).
using System; using System.ComponentModel; using ComponentPro; using ComponentPro.Net.Mail; ... public void DoSelectAsync() { // 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. client.Authenticate("user", "password"); // ... // Register an event handler. client.SelectCompleted += client_SelectCompleted; // Select the 'INBOX' mailbox. client.SelectAsync("INBOX", false); // ... // Disconnect. client.Disconnect(); } void client_SelectCompleted(object sender, AsyncCompletedEventArgs e) { Imap client = (Imap)sender; if (e.Error != null) { Console.WriteLine("Error: " + e.Error.ToString()); } else { // List messages in the current working mailbox. ImapMessageCollection listMessages = client.ListMessages(ImapEnvelopeParts.UniqueId | ImapEnvelopeParts.Size); foreach (ImapMessage m in listMessages) { Console.WriteLine(string.Format("UniqueId: {0}, Size: {1}", m.UniqueId, m.Size)); } } }