Imap |
public override Task ConnectAsync( string host, int port = 0, SecureSocketOptions options = SecureSocketOptions.Auto, CancellationToken cancellationToken = default )
Exception | Condition |
---|---|
ArgumentNullException | host is null. |
ArgumentOutOfRangeException | port is not between 0 and 65535. |
ArgumentException | The host is a zero-length string. |
ObjectDisposedException | The ImapClient has been disposed. |
InvalidOperationException | The ImapClient is already connected. |
NotSupportedException | options was set to StartTls and the IMAP server does not support the STARTTLS extension. |
OperationCanceledException | The operation was canceled via the cancellation token. |
SocketException | A socket error occurred trying to connect to the remote host. |
SslHandshakeException | An error occurred during the SSL/TLS negotiations. |
IOException | An I/O error occurred. |
ImapCommandException | An IMAP command failed. |
ImapProtocolException | An IMAP protocol error occurred. |
Establishes a connection to the specified IMAP or IMAP/S server.
If the port has a value of 0, then the options parameter is used to determine the default port to connect to. The default port used with SslOnConnect is 993. All other values will use a default port of 143.
If the options has a value of Auto, then the port is used to determine the default security options. If the port has a value of 993, then the default options used will be SslOnConnect. All other values will use StartTlsWhenAvailable.
Once a connection is established, properties such as AuthenticationMechanisms and Capabilities will be populated.
public static void DownloadMessages () { using (var client = new ImapClient ()) { client.Connect ("imap.gmail.com", 993, SecureSocketOptions.SslOnConnect); client.Authenticate ("username", "password"); client.Inbox.Open (FolderAccess.ReadOnly); var uids = client.Inbox.Search (SearchQuery.All); foreach (var uid in uids) { var message = client.Inbox.GetMessage (uid); // write the message to a file message.WriteTo (string.Format ("{0}.eml", uid)); } client.Disconnect (true); } }