Click or drag to resize
MimeKit

Pop3ClientCapabilities Property

Gets the capabilities supported by the POP3 server.

Namespace: MailKit.Net.Pop3
Assembly: MailKit (in MailKit.dll) Version: 4.3.0
Syntax
C#
public Pop3Capabilities Capabilities { get; set; }

Property Value

Pop3Capabilities
The capabilities.

Implements

IPop3ClientCapabilities
Exceptions
ExceptionCondition
ArgumentException Capabilities cannot be enabled, they may only be disabled.
Remarks
The capabilities will not be known until a successful connection has been made and may change once the client is authenticated.
Example
C#
public static void PrintCapabilities ()
{
    using (var client = new Pop3Client ()) {
        client.Connect ("pop.gmail.com", 995, SecureSocketOptions.SslOnConnect);

        if (client.Capabilities.HasFlag (Pop3Capabilities.SASL)) {
            var mechanisms = string.Join (", ", client.AuthenticationMechanisms);
            Console.WriteLine ("The POP3 server supports the following SASL mechanisms: {0}", mechanisms);
        }

        client.Authenticate ("username", "password");

        if (client.Capabilities.HasFlag (Pop3Capabilities.Apop))
            Console.WriteLine ("The server supports APOP authentication.");

        if (client.Capabilities.HasFlag (Pop3Capabilities.Expire)) {
            if (client.ExpirePolicy > 0)
                Console.WriteLine ("The POP3 server automatically expires messages after {0} days", client.ExpirePolicy);
            else
                Console.WriteLine ("The POP3 server will never expire messages.");
        }

        if (client.Capabilities.HasFlag (Pop3Capabilities.LoginDelay))
            Console.WriteLine ("The minimum number of seconds between login attempts is {0}.", client.LoginDelay);

        if (client.Capabilities.HasFlag (Pop3Capabilities.Pipelining))
            Console.WriteLine ("The POP3 server can pipeline commands, so using client.GetMessages() will be faster.");

        if (client.Capabilities.HasFlag (Pop3Capabilities.Top))
            Console.WriteLine ("The POP3 server supports the TOP command, so it's possible to download message headers.");

        if (client.Capabilities.HasFlag (Pop3Capabilities.UIDL))
            Console.WriteLine ("The POP3 server supports the UIDL command which means we can track messages by UID.");

        client.Disconnect (true);
    }
}
See Also