Imap Implementation Class
The details of an IMAP client or server implementation.
Definition
Namespace: MailKit.Net.Imap
Assembly: MailKit (in MailKit.dll) Version: 5.0.0
Assembly: MailKit (in MailKit.dll) Version: 5.0.0
C#
public class ImapImplementation- Inheritance
- Object ImapImplementation
Remarks
Allows an IMAP client and server to share their implementation details
with each other for the purposes of debugging.
Example
C#
public static void Capabilities ()
{
using (var client = new ImapClient ()) {
client.Connect ("imap.gmail.com", 993, SecureSocketOptions.SslOnConnect);
var mechanisms = string.Join (", ", client.AuthenticationMechanisms);
Console.WriteLine ("The IMAP server supports the following SASL authentication mechanisms: {0}", mechanisms);
client.Authenticate ("username", "password");
if (client.Capabilities.Contains (ImapCapability.Id)) {
var clientImplementation = new ImapImplementation { Name = "MailKit", Version = "1.0" };
var serverImplementation = client.Identify (clientImplementation);
Console.WriteLine ("Server implementation details:");
foreach (var property in serverImplementation.Properties)
Console.WriteLine (" {0} = {1}", property.Key, property.Value);
}
if (client.Capabilities.Contains (ImapCapability.Acl)) {
Console.WriteLine ("The IMAP server supports Access Control Lists.");
Console.WriteLine ("The IMAP server supports the following access rights: {0}", client.Rights);
Console.WriteLine ("The Inbox has the following access controls:");
var acl = client.Inbox.GetAccessControlList ();
foreach (var ac in acl)
Console.WriteLine (" {0} = {1}", ac.Name, ac.Rights);
var myRights = client.Inbox.GetMyAccessRights ();
Console.WriteLine ("Your current rights for the Inbox folder are: {0}", myRights);
}
if (client.Capabilities.Contains (ImapCapability.Quota)) {
Console.WriteLine ("The IMAP server supports quotas.");
Console.WriteLine ("The current quota for the Inbox is:");
var quota = client.Inbox.GetQuota ();
if (quota.StorageLimit.HasValue)
Console.WriteLine (" Limited by storage space. Using {0} out of {1} kilobytes.", quota.CurrentStorageSize.Value, quota.StorageLimit.Value);
if (quota.MessageLimit.HasValue)
Console.WriteLine (" Limited by the number of messages. Using {0} out of {1} messages.", quota.CurrentMessageCount.Value, quota.MessageLimit.Value);
Console.WriteLine ("The quota root is: {0}", quota.QuotaRoot);
}
if (client.Capabilities.Contains (ImapCapability.Thread)) {
if (client.ThreadingAlgorithms.Contains (ThreadingAlgorithm.OrderedSubject))
Console.WriteLine ("The IMAP server supports threading by subject.");
if (client.ThreadingAlgorithms.Contains (ThreadingAlgorithm.References))
Console.WriteLine ("The IMAP server supports threading by references.");
}
client.Disconnect (true);
}
}
Constructors
| ImapImplementation | Initializes a new instance of the ImapImplementation class. |
Properties
| Address | Get or set the postal address of the vendor. |
| Arguments | Get or set the command-line arguments used to start the program. |
| Command | Get or set the command used to start the program. |
| Environment | Get or set the environment variables available to the program. |
| Name | Get or set the name of the program. |
| OS | Get or set the name of the operating system. |
| OSVersion | Get or set the version of the operating system. |
| Properties | Get the identification properties. |
| ReleaseDate | Get or set the release date of the program. |
| SupportUrl | Get or set the support URL. |
| Vendor | Get or set the name of the vendor. |
| Version | Get or set the version of the program. |
Methods
| Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) |
| Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object) |
| GetHashCode | Serves as the default hash function. (Inherited from Object) |
| GetType | Gets the Type of the current instance. (Inherited from Object) |
| MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object) |
| ToString | Returns a string that represents the current object. (Inherited from Object) |