<?xml version="1.0"?>
<doc>
    <assembly>
        <name>S22.Imap</name>
    </assembly>
    <members>
        <member name="T:S22.Imap.AuthMethod">
            <summary>
            Defines supported means of authenticating with an IMAP server.
            </summary>
        </member>
        <member name="F:S22.Imap.AuthMethod.Auto">
            <summary>
            Automatically selects the most-secure authentication mechanism supported by the server.
            </summary>
        </member>
        <member name="F:S22.Imap.AuthMethod.Login">
            <summary>
            Login using plaintext password authentication; This is supported by most servers.
            </summary>
        </member>
        <member name="F:S22.Imap.AuthMethod.Plain">
            <summary>
            Login using the SASL PLAIN authentication mechanism.
            </summary>
        </member>
        <member name="F:S22.Imap.AuthMethod.CramMd5">
            <summary>
            Login using the CRAM-MD5 authentication mechanism.
            </summary>
        </member>
        <member name="F:S22.Imap.AuthMethod.DigestMd5">
            <summary>
            Login using the DIGEST-MD5 authentication mechanism.
            </summary>
        </member>
        <member name="F:S22.Imap.AuthMethod.OAuth">
            <summary>
            Login using OAuth via the SASL XOAuth mechanism.
            </summary>
        </member>
        <member name="F:S22.Imap.AuthMethod.OAuth2">
            <summary>
            Login using OAuth 2.0 via the SASL XOAUTH2 mechanism.
            </summary>
        </member>
        <member name="F:S22.Imap.AuthMethod.Ntlm">
            <summary>
            Login using the NTLM authentication mechanism.
            </summary>
        </member>
        <member name="F:S22.Imap.AuthMethod.Ntlmv2">
            <summary>
            Login using the NTLMv2 authentication mechanism.
            </summary>
        </member>
        <member name="F:S22.Imap.AuthMethod.NtlmOverSspi">
            <summary>
            Login using the NTLM/NTLMv2 authentication mechanism via Microsoft's Security Support
            Provider Interface (SSPI).
            </summary>
        </member>
        <member name="F:S22.Imap.AuthMethod.Gssapi">
            <summary>
            Login using Kerberos authentication via the SASL GSSAPI mechanism.
            </summary>
        </member>
        <member name="F:S22.Imap.AuthMethod.ScramSha1">
            <summary>
            Login using the SCRAM-SHA-1 authentication mechanism.
            </summary>
        </member>
        <member name="F:S22.Imap.AuthMethod.Srp">
            <summary>
            Login using the Secure Remote Password (SRP) authentication mechanism.
            </summary>
            <remarks>The SRP mechanism is only available when targeting .NET 4.0 or newer.</remarks>
        </member>
        <member name="T:S22.Imap.Auth.ByteBuilder">
            <summary>
            A utility class modeled after the BCL StringBuilder to simplify
            building binary-data messages.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.ByteBuilder.buffer">
            <summary>
            The actual byte buffer.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.ByteBuilder.position">
            <summary>
            The current position in the buffer.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.ByteBuilder.Resize(System.Int32)">
            <summary>
            Resizes the internal byte buffer.
            </summary>
            <param name="amount">Amount in bytes by which to increase the
            size of the buffer.</param>
        </member>
        <member name="M:S22.Imap.Auth.ByteBuilder.Append(System.Byte[])">
            <summary>
            Appends one or several byte values to this instance.
            </summary>
            <param name="values">Byte values to append.</param>
            <returns>A reference to the calling instance.</returns>
        </member>
        <member name="M:S22.Imap.Auth.ByteBuilder.Append(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Appends the specified number of bytes from the specified buffer
            starting at the specified offset to this instance.
            </summary>
            <param name="buffer">The buffer to append bytes from.</param>
            <param name="offset">The offset into the buffert at which to start
            reading bytes from.</param>
            <param name="count">The number of bytes to read from the buffer.</param>
            <returns>A reference to the calling instance.</returns>
        </member>
        <member name="M:S22.Imap.Auth.ByteBuilder.Append(System.Int32,System.Boolean)">
            <summary>
            Appends the specified 32-bit integer value to this instance.
            </summary>
            <param name="value">A 32-bit integer value to append.</param>
            <param name="bigEndian">Set this to true, to append the value as
            big-endian.</param>
            <returns>A reference to the calling instance.</returns>
        </member>
        <member name="M:S22.Imap.Auth.ByteBuilder.Append(System.Int16,System.Boolean)">
            <summary>
            Appends the specified 16-bit short value to this instance.
            </summary>
            <param name="value">A 16-bit short value to append.</param>
            <param name="bigEndian">Set this to true, to append the value as
            big-endian.</param>
            <returns>A reference to the calling instance.</returns>
        </member>
        <member name="M:S22.Imap.Auth.ByteBuilder.Append(System.UInt16,System.Boolean)">
            <summary>
            Appends the specified 16-bit unsigend short value to this instance.
            </summary>
            <param name="value">A 16-bit unsigend short value to append.</param>
            <param name="bigEndian">Set this to true, to append the value as
            big-endian.</param>
            <returns>A reference to the calling instance.</returns>
        </member>
        <member name="M:S22.Imap.Auth.ByteBuilder.Append(System.UInt32,System.Boolean)">
            <summary>
            Appends the specified 32-bit unsigned integer value to this instance.
            </summary>
            <param name="value">A 32-bit unsigned integer value to append.</param>
            <param name="bigEndian">Set this to true, to append the value as
            big-endian.</param>
            <returns>A reference to the calling instance.</returns>
        </member>
        <member name="M:S22.Imap.Auth.ByteBuilder.Append(System.Int64,System.Boolean)">
            <summary>
            Appends the specified 64-bit integer value to this instance.
            </summary>
            <param name="value">A 64-bit integer value to append.</param>
            <param name="bigEndian">Set this to true, to append the value as
            big-endian.</param>
            <returns>A reference to the calling instance.</returns>
        </member>
        <member name="M:S22.Imap.Auth.ByteBuilder.Append(System.String,System.Text.Encoding)">
            <summary>
            Appends the specified string using the specified encoding to this
            instance.
            </summary>
            <param name="value">The string vale to append.</param>
            <param name="encoding">The encoding to use for decoding the string value
            into a sequence of bytes. If this is null, ASCII encoding is used as a
            default.</param>
            <returns>A reference to the calling instance.</returns>
        </member>
        <member name="M:S22.Imap.Auth.ByteBuilder.ToArray">
            <summary>
            Returns the ByteBuilder's content as an array of bytes.
            </summary>
            <returns>An array of bytes.</returns>
        </member>
        <member name="M:S22.Imap.Auth.ByteBuilder.Clear">
            <summary>
            Removes all bytes from the current ByteBuilder instance.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.ByteBuilder.Length">
            <summary>
            The length of the underlying data buffer.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.FilterStream">
            <summary>
            A filter stream sitting between Negotiate- and NetworkStream to
            enable managed NTLM/GSSAPI authentication.
            </summary>
            <remarks>
            We use a filter for hooking into the NegotiateStream protocol rather
            than p/invoking SSPI directly as that would require unmanaged
            code privileges (internally NegotiateStream uses an SSPI wrapper).
            
            NegotiateStream - FilterStream - NetworkStream.
            </remarks>
        </member>
        <member name="F:S22.Imap.Auth.FilterStream.handshakeData">
            <summary>
            A buffer for accumulating handshake data until an entire handshake
            has been read.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.FilterStream.payloadData">
            <summary>
            A buffer for accumulating the payload data following the handshake
            data.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.FilterStream.handshake">
            <summary>
            The latest handshake header sent by the client.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.FilterStream.receivedData">
            <summary>
            The buffer from which client reads will be satisfied.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.FilterStream.receivedConsumed">
            <summary>
            The number of bytes the client has already consumed/read
            from the receivedData buffer.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.FilterStream.state">
            <summary>
            The current state of the filter stream.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.FilterStream.leaveOpen">
            <summary>
            Determines whether this instance should close the inner stream
            when disposed.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.FilterStream.errorCode">
            <summary>
            An error code as specified by the NegotiateStream protocol which is
            handed to the NegotiateStream instance in case authentication
            unexpectedly fails.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.FilterStream.innerStream">
            <summary>
            Gets the stream used by this FilterStream for sending and
            receiving data. 
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.FilterStream.#ctor(System.IO.Stream,System.Boolean)">
            <summary>
            Initializes a new instance of the FilterStream class using the
            specified Stream.
            </summary>
            <param name="s">A Stream object used by the FilterStream for sending
            and receiving data.</param>
            <param name="leaveOpen">Set to true to indicate that closing this
            FilterStream has no effect on innerstream, or set to false to
            indicate that closing this FilterStream also closes innerStream.</param>
        </member>
        <member name="M:S22.Imap.Auth.FilterStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads data from this stream and stores it in the specified array.
            </summary>
            <param name="buffer">A byte array that receives the bytes read from
            the stream.</param>
            <param name="offset">The zero-based index into the buffer at which to
            begin storing the data read from this stream.</param>
            <param name="count">The the maximum number of bytes to read from the
            stream.</param>
            <returns>The the number of bytes read from the underlying stream. When
            there is no more data to be read, returns 0.</returns>
            <exception cref="T:System.IO.IOException">The read operation failed.</exception>
        </member>
        <member name="M:S22.Imap.Auth.FilterStream.ReadServerResponse">
            <summary>
            Reads the server response from the underlying inner stream.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.FilterStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Write the specified number of bytes to the underlying stream using the
            specified buffer and offset.
            </summary>
            <param name="buffer">A byte array that supplies the bytes written to
            the stream.</param>
            <param name="offset">The zero-based index in the buffer at which to
            begin reading bytes to be written to the stream.</param>
            <param name="count">The number of bytes to read from buffer.</param>
            <exception cref="T:System.IO.IOException">The write operation failed.</exception>
        </member>
        <member name="M:S22.Imap.Auth.FilterStream.ReadHandshake(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads the client's handshake from the specified buffer.
            </summary>
            <param name="buffer">A byte array from which the handshake data
            will be read.</param>
            <param name="offset">The zero-based index in the buffer at which to
            begin reading bytes.</param>
            <param name="count">The number of bytes to read from buffer.</param>
            <returns>True if the handshake has been read completely, otherwise
            false.</returns>
        </member>
        <member name="M:S22.Imap.Auth.FilterStream.ReadPayload(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads the payload from the specified buffer.
            </summary>
            <param name="buffer">A byte array from which the payload data
            will be read.</param>
            <param name="offset">The zero-based index in the buffer at which to
            begin reading bytes.</param>
            <param name="count">The number of bytes to read from buffer.</param>
            <returns>True if all of the payload data has been read, otherwise
            false.</returns>
        </member>
        <member name="M:S22.Imap.Auth.FilterStream.SendPayload">
            <summary>
            Sends the accumulated payload data to the server.
            </summary>
            <returns>true if the client is done sending data, otherwise
            false.</returns>
        </member>
        <member name="M:S22.Imap.Auth.FilterStream.ReadLine(System.IO.Stream,System.Boolean)">
            <summary>
            Reads a line of ASCII-encoded text terminated by a CRLF from the
            specified stream.
            </summary>
            <param name="stream">The stream to read the line of text from.</param>
            <param name="resolveLiterals">Set this to true, to resolve automatically
            resolve possible literals.</param>
            <returns>A line of ASII-encoded text read from the specified
            stream.</returns>
            <remarks>"Literals" are a special feature of IMAP, employed by some
            server implementations. Please refer to RFC 3501 Section 4.3 for
            details.</remarks>
        </member>
        <member name="M:S22.Imap.Auth.FilterStream.ReadLiteral(System.IO.Stream,System.Int32)">
            <summary>
            Reads the specified number of bytes from the specified stream and
            returns them as an ASCII-encoded string.
            </summary>
            <param name="stream">The stream to read from.</param>
            <param name="byteCount">The number of bytes to read.</param>
            <returns>The read bytes encoded as an ASCII string.</returns>
        </member>
        <member name="M:S22.Imap.Auth.FilterStream.Flush">
            <summary>
            Causes any buffered data to be written to the underlying device.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.FilterStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            Throws NotSupportedException.
            </summary>
            <param name="offset">This value is ignored.</param>
            <param name="origin">This value is ignored.</param>
            <returns>Always throws a NotSupportedException.</returns>
        </member>
        <member name="M:S22.Imap.Auth.FilterStream.SetLength(System.Int64)">
            <summary>
            Sets the length of the underlying stream.
            </summary>
            <param name="value">A value that specifies the length of the
            stream.</param>
        </member>
        <member name="M:S22.Imap.Auth.FilterStream.Dispose(System.Boolean)">
            <summary>
            Releases all resources used by the stream.
            </summary>
            <param name="disposing">True to release both managed and unmanaged
            resources, false to release only unmanaged resources.</param>
        </member>
        <member name="P:S22.Imap.Auth.FilterStream.CanRead">
            <summary>
            Gets a boolean value that indicates whether the underlying stream is
            readable.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.FilterStream.CanSeek">
            <summary>
            Gets a boolean value that indicates whether the underlying stream is
            seekable.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.FilterStream.CanTimeout">
            <summary>
            Gets a boolean value that indicates whether the underlying stream
            supports time-outs.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.FilterStream.CanWrite">
            <summary>
            Gets a boolean value that indicates whether the underlying stream is
            writable.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.FilterStream.Length">
            <summary>
            Gets the length of the underlying stream.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.FilterStream.Position">
            <summary>
            Gets or sets the current position in the underlying stream.
            </summary>
            <exception cref="T:System.NotSupportedException">Setting this property
            is not supported.</exception>
        </member>
        <member name="T:S22.Imap.Auth.FilterStreamState">
            <summary>
            The different states the FilterStream can be in.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.FilterStreamState.ReadingHandshake">
            <summary>
            The stream is reading the client's handshake message.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.FilterStreamState.ReadingPayload">
            <summary>
            The stream is reading the client's payload data.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.FilterStreamState.WaitingForServerResponse">
            <summary>
            The stream is waiting for the server's response.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.FilterStreamState.SatisfyRead">
            <summary>
            The stream has buffered the server's response and is satisfying
            client reads from its buffer.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Handshake">
            <summary>
            Represents a NegotiateStream handshake message.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Handshake.majorVersion">
            <summary>
            This is the only permissible value according to specification.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Handshake.minorVersion">
            <summary>
            This is the only permissible value according to specification.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Handshake.#ctor(S22.Imap.Auth.HandshakeType,System.UInt16)">
            <summary>
            Creates a new instance of the Handshake class using the specified type
            and payload size.
            </summary>
            <param name="type">The type of handshake.</param>
            <param name="payloadSize">The size, in bytes, of the payload following
            the handshake header.</param>
        </member>
        <member name="M:S22.Imap.Auth.Handshake.#ctor">
            <summary>
            Private default constructor for deserializing.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Handshake.Deserialize(System.Byte[])">
            <summary>
            Deserializes a handshake instance from the specified byte array.
            </summary>
            <param name="data">An array of bytes containing handshake data.</param>
            <returns>An initialized instance of the Handshake class deserialized
            from the specified byte array.</returns>
            <exception cref="T:System.Runtime.Serialization.SerializationException">Thrown if the specified byte
            array does not contain valid handshake data.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Handshake.Serialize">
            <summary>
            Serializes an instance of the Handshake class to a sequence of bytes.
            </summary>
            <returns>A sequence of bytes representing this Handshake instance.</returns>
        </member>
        <member name="P:S22.Imap.Auth.Handshake.MessageId">
            <summary>
            The type of the handshake message.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Handshake.MajorVersion">
            <summary>
            Specifies the major version of the NegotiateStream protocol
            being used.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Handshake.MinorVersion">
            <summary>
            Specifies the minor version of the NegotiateStream protocol
            being used.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Handshake.PayloadSize">
            <summary>
            Defines the size, in bytes, of the AuthPayload field, which immediately
            follows the handshake.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.HandshakeType">
            <summary>
            Describes the different types of handshake messages.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.HandshakeType.HandshakeDone">
            <summary>
            The handshake has completed successfully.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.HandshakeType.HandshakeError">
            <summary>
            An error occurred during the handshake. The AuthPayload field contains
            an HRESULT.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.HandshakeType.HandshakeInProgress">
            <summary>
            The message is part of the handshake phase and is not the final message
            from the host. The final Handshake message from a host is always
            transferred in a HandshakeDone message.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1">
            <summary>
            Implements the Sasl SCRAM-SHA-1 authentication method as described in
            RFC 5802.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.SaslMechanism">
            <summary>
            The abstract base class from which all classes implementing a Sasl
            authentication mechanism must derive.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.SaslMechanism.ComputeResponse(System.Byte[])">
            <summary>
            Computes the client response to a challenge sent by the server.
            </summary>
            <param name="challenge"></param>
            <returns>The client response to the specified challenge.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.SaslMechanism.#ctor">
            <summary>
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.SaslMechanism.GetResponse(System.String)">
            <summary>
            Retrieves the base64-encoded client response for the specified
            base64-encoded challenge sent by the server.
            </summary>
            <param name="challenge">A base64-encoded string representing a challenge
            sent by the server.</param>
            <returns>A base64-encoded string representing the client response to the
            server challenge.</returns>
            <remarks>The IMAP, POP3 and SMTP authentication commands expect challenges
            and responses to be base64-encoded. This method automatically decodes the
            server challenge before passing it to the Sasl implementation and
            encodes the client response to a base64-string before returning it to the
            caller.</remarks>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the client response could
            not be retrieved. Refer to the inner exception for error details.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.SaslMechanism.GetResponse(System.Byte[])">
            <summary>
            Retrieves the client response for the specified server challenge.
            </summary>
            <param name="challenge">A byte array containing the challenge sent by
            the server.</param>
            <returns>An array of bytes representing the client response to the
            server challenge.</returns>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.SaslMechanism.Name">
            <summary>
            IANA name of the authentication mechanism.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.SaslMechanism.IsCompleted">
            <summary>
            True if the authentication exchange between client and server
            has been completed.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.SaslMechanism.Properties">
            <summary>
            A map of mechanism-specific properties which are needed by the
            authentication mechanism to compute it's challenge-responses.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.Cnonce">
            <summary>
            The client nonce value used during authentication.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.Step">
            <summary>
            Scram-Sha-1 involves several steps.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.SaltedPassword">
            <summary>
            The salted password. This is needed for client authentication and later
            on again for verifying the server signature.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.AuthMessage">
            <summary>
            The auth message is part of the authentication exchange and is needed for
            authentication as well as for verifying the server signature.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.#ctor">
            <summary>
            Private constructor for use with Sasl.SaslFactory.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.#ctor(System.String,System.String,System.String)">
            <summary>
            Internal constructor used for unit testing.
            </summary>
            <param name="username">The username to authenticate with.</param>
            <param name="password">The plaintext password to authenticate
            with.</param>
            <param name="cnonce">The client nonce value to use.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if the username
            or the password parameter is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the username
            parameter is empty.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.#ctor(System.String,System.String)">
            <summary>
            Creates and initializes a new instance of the SaslScramSha1
            class using the specified username and password.
            </summary>
            <param name="username">The username to authenticate with.</param>
            <param name="password">The plaintext password to authenticate
            with.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if the username
            or the password parameter is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the username
            parameter is empty.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.ComputeResponse(System.Byte[])">
            <summary>
            Computes the client response to the specified SCRAM-SHA-1 challenge.
            </summary>
            <param name="challenge">The challenge sent by the server</param>
            <returns>The response to the SCRAM-SHA-1 challenge.</returns>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the response could not
            be computed.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.ComputeInitialResponse">
            <summary>
            Computes the initial response sent by the client to the server.
            </summary>
            <returns>An array of bytes containing the initial client
            response.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.ComputeFinalResponse(System.Byte[])">
            <summary>
            Computes the "client-final-message" which completes the authentication
            process.
            </summary>
            <param name="challenge">The "server-first-message" challenge received
            from the server in response to the initial client response.</param>
            <returns>An array of bytes containing the client's challenge
            response.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.VerifyServerNonce(System.String)">
            <summary>
            Verifies the nonce value sent by the server.
            </summary>
            <param name="nonce">The nonce value sent by the server as part of the
            server-first-message.</param>
            <returns>True if the nonce value is valid, otherwise false.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.VerifyServerSignature(System.Byte[])">
            <summary>
            Verifies the server signature which is sent by the server as the final
            step of the authentication process.
            </summary>
            <param name="challenge">The server signature as a base64-encoded
            string.</param>
            <returns>The client's response to the server. This will be an empty
            byte array if verification was successful, or the '*' SASL cancellation
            token.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.ParseServerFirstMessage(System.Byte[])">
            <summary>
            Parses the "server-first-message" received from the server.
            </summary>
            <param name="challenge">The challenge received from the server.</param>
            <returns>A collection of key/value pairs contained extracted from
            the server message.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if the message parameter
            is null.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.Hi(System.String,System.String,System.Int32)">
            <summary>
            Computes the "Hi()"-formula which is part of the client's response
            to the server challenge.
            </summary>
            <param name="password">The supplied password to use.</param>
            <param name="salt">The salt received from the server.</param>
            <param name="count">The iteration count.</param>
            <returns>An array of bytes containing the result of the computation of the
            "Hi()"-formula.</returns>
            <remarks>
            Hi is, essentially, PBKDF2 with HMAC as the pseudorandom function (PRF) and with
            dkLen == output length of HMAC() == output length of H(). (Refer to RFC 5802, p.6)
            </remarks>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.HMAC(System.Byte[],System.Byte[])">
            <summary>
            Applies the HMAC keyed hash algorithm using the specified key to
            the specified input data.
            </summary>
            <param name="key">The key to use for initializing the HMAC
            provider.</param>
            <param name="data">The input to compute the hashcode for.</param>
            <returns>The hashcode of the specified data input.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.HMAC(System.Byte[],System.String)">
            <summary>
            Applies the HMAC keyed hash algorithm using the specified key to
            the specified input string.
            </summary>
            <param name="key">The key to use for initializing the HMAC
            provider.</param>
            <param name="data">The input string to compute the hashcode for.</param>
            <returns>The hashcode of the specified string.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.H(System.Byte[])">
            <summary>
            Applies the cryptographic hash function SHA-1 to the specified data
            array.
            </summary>
            <param name="data">The data array to apply the hash function to.</param>
            <returns>The hash value for the specified byte array.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.Xor(System.Byte[],System.Byte[])">
            <summary>
            Applies the exclusive-or operation to combine the specified byte array
            a with the specified byte array b.
            </summary>
            <param name="a">The first byte array.</param>
            <param name="b">The second byte array.</param>
            <returns>An array of bytes of the same length as the input arrays
            containing the result of the exclusive-or operation.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if either argument is
            null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if the input arrays
            are not of the same length.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.GenerateCnonce">
            <summary>
            Generates a random cnonce-value which is a "client-specified data string
            which must be different each time a digest-response is sent".
            </summary>
            <returns>A random "cnonce-value" string.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.SaslPrep(System.String)">
            <summary>
            Prepares the specified string as is described in RFC 5802.
            </summary>
            <param name="s">A string value.</param>
            <returns>A "Saslprepped" string.</returns>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.IsCompleted">
            <summary>
            True if the authentication exchange between client and server
            has been completed.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.Name">
            <summary>
            The IANA name for the Scram-Sha-1 authentication mechanism as described
            in RFC 5802.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.Username">
            <summary>
            The username to authenticate with.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslScramSha1.Password">
            <summary>
            The password to authenticate with.
            </summary>
        </member>
        <member name="T:S22.Imap.Bodypart">
            <summary>
            Represents a MIME body part of a mail message that has multiple
            parts.
            </summary>
        </member>
        <member name="M:S22.Imap.Bodypart.#ctor(System.String)">
            <summary>
            Initializes a new instance of the Bodypart class with default
            values.
            </summary>
            <param name="partNumber">The part number as is expected by the
            IMAP FETCH command.</param>
        </member>
        <member name="M:S22.Imap.Bodypart.ToString">
            <summary>
            Returns a detailed description listing all properties of this
            Bodypart instance.
            </summary>
            <returns>A string describing this instance of the Bodypart class</returns>
        </member>
        <member name="P:S22.Imap.Bodypart.PartNumber">
            <summary>
            The body part number which acts as part specifier for
            the FETCH BODY command.
            </summary>
        </member>
        <member name="P:S22.Imap.Bodypart.Type">
            <summary>
            The MIME content-type of this body part. The content-type is
            used to declare the general type of data.
            </summary>
        </member>
        <member name="P:S22.Imap.Bodypart.Subtype">
            <summary>
            The MIME content-subtype of this body part. The subtype
            specifies a specific format for the type of data.
            </summary>
        </member>
        <member name="P:S22.Imap.Bodypart.Parameters">
            <summary>
            Parameter values present in the MIME content-type header
            of this body part (for instance, 'charset').
            </summary>
        </member>
        <member name="P:S22.Imap.Bodypart.Id">
            <summary>
            The MIME content-id of this body part, if any. This value
            may be used for uniquely identifying MIME entities in
            several contexts.
            </summary>
        </member>
        <member name="P:S22.Imap.Bodypart.Description">
            <summary>
            The MIME content-description of this body part. This value
            may contain some descriptive information on the body part.
            </summary>
        </member>
        <member name="P:S22.Imap.Bodypart.Encoding">
            <summary>
            The MIME content-transfer-encoding mechanism used for
            encoding this body part's data.
            </summary>
        </member>
        <member name="P:S22.Imap.Bodypart.Size">
            <summary>
            The size of this body part in bytes. Note that this size
            is the size in its transfer encoding and not the resulting
            size after any decoding.
            </summary>
        </member>
        <member name="P:S22.Imap.Bodypart.Lines">
            <summary>
            The size of the body in text lines. This field is only
            present in body parts with a content-type of text.
            </summary>
        </member>
        <member name="P:S22.Imap.Bodypart.Md5">
            <summary>
            The computed MD5-Hash of the body part. This field is not
            mandatory and may be empty.
            </summary>
        </member>
        <member name="P:S22.Imap.Bodypart.Disposition">
            <summary>
            The MIME content-disposition for this body part. This field
            is not mandatory and may be empty.
            </summary>
        </member>
        <member name="P:S22.Imap.Bodypart.Language">
            <summary>
            A string giving the body language. This field is not mandatory
            and may be empty.
            </summary>
        </member>
        <member name="P:S22.Imap.Bodypart.Location">
            <summary>
            A string list giving the body content URI. This field is not
            mandatory and may be empty.
            </summary>
        </member>
        <member name="T:S22.Imap.Bodystructure">
            <summary>
            Provides a means for parsing the textual description of the body structure of a mail
            message as is returned by an IMAP server for a "FETCH BODYSTRUCTURE" command.
            </summary>
            <remarks>
            They couldn't have made the BODYSTRUCTURE any more complicated and unnecessarily
            hard to parse. I wonder what they were thinking when they came up with this.
            </remarks>
        </member>
        <member name="M:S22.Imap.Bodystructure.Parse(System.String)">
            <summary>
            Parses the body structure of a mail message as is returned by the IMAP server
            in response to a FETCH BODYSTRUCTURE command.
            </summary>
            <param name="text">The body structure server response</param>
            <returns>An array of initialized Bodypart objects representing the body
            structure of the mail message</returns>
            <exception cref="T:System.FormatException">Thrown if the passed string does not
            contain a valid body structure and parsing failed.</exception>
        </member>
        <member name="F:S22.Imap.Bodystructure.reader">
            <summary>
            A Reader object initialized with the string containing the bodystructure
            response.
            </summary>
        </member>
        <member name="M:S22.Imap.Bodystructure.#ctor(System.String)">
            <summary>
            Initializes a new instance of the Bodystructure class.
            </summary>
            <param name="text"></param>
        </member>
        <member name="M:S22.Imap.Bodystructure.ParseBodypart(System.String,System.Boolean)">
            <summary>
            Parses a bodypart entry from the body structure and advances the
            read pointer.
            </summary>
            <param name="partNumber">The designated part specifier by which the body
            part is refered to by the server.</param>
            <param name="parenthesis">Set to true if the bodypart is enclosed
            in parenthesis.</param>
            <returns></returns>
        </member>
        <member name="M:S22.Imap.Bodystructure.ParseMessage822Fields(S22.Imap.Bodypart)">
            <summary>
            Parses the mandatory extra fields that are present if the bodypart is
            of type message/rfc822 (see RFC 3501, p. 75).
            </summary>
            <param name="part">The bodypart instance the parsed fields will be
            added to.</param>
        </member>
        <member name="M:S22.Imap.Bodystructure.ParseOptionalFields(S22.Imap.Bodypart,System.Boolean)">
            <summary>
            Parses the optional fields of a bodypart entry from the body structure
            and advances the read pointer.
            </summary>
            <param name="part">The bodypart instance the parsed fields will be
            added to.</param>
            <param name="parenthesis">Set to true if the bodypart entry is enclosed
            in parenthesis.</param>
        </member>
        <member name="M:S22.Imap.Bodystructure.ParseList(System.String)">
            <summary>
            Parses a list of bodypart entries as is outlined in the description of the
            BODYPART response in RFC 3501.
            </summary>
            <param name="nestPrefix">The nesting prefix that will be prefixed to the
            bodyparts partNumber.</param>
            <returns>An array of initialized Bodypart objects parsed from the
            list.</returns>
        </member>
        <member name="M:S22.Imap.Bodystructure.SkipMultipart">
            <summary>
            Advances the read pointer to skip over a multipart entry.
            </summary>
        </member>
        <member name="M:S22.Imap.Bodystructure.SkipParenthesizedExpression">
            <summary>
            Advances the read pointer to skip over an arbitrary
            expression enclosed in parentheses.
            </summary>
        </member>
        <member name="T:S22.Imap.ContentDisposition">
            <summary>
            Represents the content disposition as is presented in the BODYSTRUCTURE
            response by the IMAP server.
            </summary>
        </member>
        <member name="M:S22.Imap.ContentDisposition.#ctor">
            <summary>
            Initializes a new instance of the ContentDisposition class with
            default values.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentDisposition.Map">
            <summary>
            Maps MIME content disposition string values to their corresponding
            counter-parts of the ContentDispositionType enumeration.
            </summary>
        </member>
        <member name="P:S22.Imap.ContentDisposition.Type">
            <summary>
            The content disposition specifies the presentation style.
            </summary>
        </member>
        <member name="P:S22.Imap.ContentDisposition.Attributes">
            <summary>
            Additional attribute fields for specifying the name of a file, the creation
            date and modification date, which can be used by the reader's mail user agent
            to store the attachment.
            </summary>
        </member>
        <member name="P:S22.Imap.ContentDisposition.Filename">
            <summary>
            Contains the name of the transmitted file if the content-disposition is of type
            "Attachment" and if the name value was provided as part of the header information.
            This field may be empty.
            </summary>
        </member>
        <member name="T:S22.Imap.ContentDispositionType">
            <summary>
            Possible values for the content disposition type which determines the presentation
            style
            </summary>
        </member>
        <member name="F:S22.Imap.ContentDispositionType.Unknown">
            <summary>
            The content disposition could not be determined.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentDispositionType.Inline">
            <summary>
            An inline content disposition means that the content should be automatically
            displayed when the message is displayed.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentDispositionType.Attachment">
            <summary>
            An attachment content disposition means that the content should not be displayed
            automatically and requires some form of action from the user to open it.
            </summary>
        </member>
        <member name="T:S22.Imap.ContentTransferEncoding">
            <summary>
            Possible values for the "Encoding" property of the Bodypart class. The content
            transfer encoding indicates whether or not a binary-to-text encoding
            scheme has been used on top of the original encoding as specified within the
            Content-Type header.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentTransferEncoding.Unknown">
            <summary>
            The content tranfer encoding could not be determined or is unknown.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentTransferEncoding.Bit7">
            <summary>
            Up to 998 bytes per line of the code range 1 - 127 with CR and LF only
            allowed to appear as part of a CRLF line ending.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentTransferEncoding.Bit8">
            <summary>
            Up to 998 bytes per line with CR and LF only allowed to appear as part
            of a CRLF line ending.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentTransferEncoding.Binary">
            <summary>
            Any sequence of bytes.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentTransferEncoding.QuotedPrintable">
            <summary>
            Byte sequence is encoded using the quoted-printable encoding.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentTransferEncoding.Base64">
            <summary>
            Byte sequence is encoded using Base64 encoding.
            </summary>
        </member>
        <member name="T:S22.Imap.ContentType">
            <summary>
            Possible values for the "Type" property of the Bodypart class.
            For a detailed description of MIME Media Types refer to
            RFC 2046.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentType.Text">
            <summary>
            The "text" media type is intended for sending material which
            is principally textual in form.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentType.Image">
            <summary>
            A media type of "image" indicates that the body contains an image.
            The subtype names the specific image format. 
            </summary>
        </member>
        <member name="F:S22.Imap.ContentType.Audio">
            <summary>
            A media type of "audio" indicates that the body contains audio
            data.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentType.Video">
            <summary>
            A media type of "video" indicates that the body contains a
            time-varying-picture image, possibly with color and coordinated sound.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentType.Application">
            <summary>
            The "application" media type is to be used for discrete data which do
            not fit in any of the other categories, and particularly for data to
            be processed by some type of application program.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentType.Message">
            <summary>
            The "message" content type allows messages to contain other messages
            or pointers to other messages.
            </summary>
        </member>
        <member name="F:S22.Imap.ContentType.Other">
            <summary>
            The media type value is unknown or could not be determined.
            </summary>
        </member>
        <member name="T:S22.Imap.Reader">
            <summary>
            A helper class for parsing the BODYSTRUCTURE response of an
            IMAP FETCH command more conveniently.
            </summary>
        </member>
        <member name="M:S22.Imap.Reader.#ctor(System.String)">
            <summary>
            Initializes a new instance of the Reader class that reads from the
            specified string.
            </summary>
            <param name="s">The string to which the Reader instance should be
            initialized.</param>
        </member>
        <member name="M:S22.Imap.Reader.Read">
            <summary>
            Reads the next character from the input string and advances the
            character position by one character.
            </summary>
            <returns>The next character from the underlying string.</returns>
            <exception cref="T:S22.Imap.EndOfStringException">Thrown when reading is
            attempted past the end of the underlying string.</exception>
        </member>
        <member name="M:S22.Imap.Reader.Peek(System.Boolean)">
            <summary>
            Returns the next available character but does not consume it.
            </summary>
            <param name="skipSpaces">Set to true to skip any preceding
            whitespace characters.</param>
            <returns>An integer representing the next character to be read,
            or -1 if no more characters are available.</returns>
        </member>
        <member name="M:S22.Imap.Reader.SkipUntil(System.Char)">
            <summary>
            Advances the character position until the specified character
            is encountered.
            </summary>
            <param name="character">The character to skip to.</param>
            <exception cref="T:S22.Imap.EndOfStringException">Thrown when reading is
            attempted past the end of the underlying string.</exception>
        </member>
        <member name="M:S22.Imap.Reader.SkipSpaces">
            <summary>
            Advances the character position over any whitespace characters
            and subsequently ensures the next read will not return a
            whitespace character.
            </summary>
            <exception cref="T:S22.Imap.EndOfStringException">Thrown when reading is
            attempted past the end of the underlying string.</exception>
        </member>
        <member name="M:S22.Imap.Reader.ReadUntil(System.Char)">
            <summary>
            Reads characters until the specified character is encountered.
            </summary>
            <param name="character">The character to read up to.</param>
            <returns>The read characters as a string value.</returns>
            <exception cref="T:S22.Imap.EndOfStringException">Thrown when reading is
            attempted past the end of the underlying string.</exception>
        </member>
        <member name="M:S22.Imap.Reader.ReadWord">
            <summary>
            Reads a word from the underlying string. A word in this context
            is a literal enclosed in double-quotes.
            </summary>
            <returns>The read word.</returns>
            <exception cref="T:S22.Imap.EndOfStringException">Thrown when reading is
            attempted past the end of the underlying string.</exception>
        </member>
        <member name="M:S22.Imap.Reader.ReadInteger">
            <summary>
            Reads an integer from the underlying string.
            </summary>
            <returns>The read integer value.</returns>
            <exception cref="T:S22.Imap.EndOfStringException">Thrown when reading is
            attempted past the end of the underlying string.</exception>
        </member>
        <member name="M:S22.Imap.Reader.ReadList">
            <summary>
            Reads a list from the underlying string. A list in this context
            is a list of attribute/value literals (enclosed in double-quotes)
            enclosed in parenthesis.
            </summary>
            <returns>The read list as a dictionary with the attribute names
            as keys and attribute values as values.</returns>
            <exception cref="T:S22.Imap.EndOfStringException">Thrown when reading is
            attempted past the end of the underlying string.</exception>
        </member>
        <member name="M:S22.Imap.Reader.ReadDisposition">
            <summary>
            Reads a disposition from the underlying string. A disposition in
            this context is a list of attribute/value literals (enclosed in
            double-quotes) preceded by a word enclosed in parenthesis.
            </summary>
            <returns>An initialized ContentDisposition instance representing
            the parsed disposition.</returns>
            <exception cref="T:S22.Imap.EndOfStringException">Thrown when reading is
            attempted past the end of the underlying string.</exception>
        </member>
        <member name="T:S22.Imap.EndOfStringException">
            <summary>
            The exception that is thrown when reading is attempted past the end
            of a string.
            </summary>
        </member>
        <member name="M:S22.Imap.EndOfStringException.#ctor">
            <summary>
            Initializes a new instance of the EndOfStringException class
            </summary>
        </member>
        <member name="M:S22.Imap.EndOfStringException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the EndOfStringException class with its message
            string set to <paramref name="message"/>.
            </summary>
            <param name="message">A description of the error. The content of message is intended
            to be understood by humans.</param>
        </member>
        <member name="M:S22.Imap.EndOfStringException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the EndOfStringException class with its message
            string set to <paramref name="message"/> and a reference to the inner exception that
            is the cause of this exception.
            </summary>
            <param name="message">A description of the error. The content of message is intended
            to be understood by humans.</param>
            <param name="inner">The exception that is the cause of the current exception.</param>
        </member>
        <member name="M:S22.Imap.EndOfStringException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the EndOfStringException class with the specified
            serialization and context information.
            </summary>
            <param name="info">An object that holds the serialized object data about the exception
            being thrown. </param>
            <param name="context">An object that contains contextual information about the source
            or destination. </param>
        </member>
        <member name="T:S22.Imap.FetchOptions">
            <summary>
            Defines the different means by which mail messages may be fetched from the server.
            </summary>
        </member>
        <member name="F:S22.Imap.FetchOptions.Normal">
            <summary>
            Fetches the entire mail message with all of its content.
            </summary>
        </member>
        <member name="F:S22.Imap.FetchOptions.HeadersOnly">
            <summary>
            Only the mail message headers will be retrieved, while the actual content will not be
            downloaded. If this option is specified, only the header fields of the returned MailMessage
            object will be initialized.
            </summary>
        </member>
        <member name="F:S22.Imap.FetchOptions.TextOnly">
            <summary>
            Retrieves the mail message, but will only download content that has a content-type of text.
            This will retrieve text as well as HTML representation, while skipping inline content and
            attachments.
            </summary>
        </member>
        <member name="F:S22.Imap.FetchOptions.NoAttachments">
            <summary>
            Retrieves the mail message, but skips any content that is an attachment.
            </summary>
        </member>
        <member name="T:S22.Imap.IdleErrorEventArgs">
            <summary>
            Provides data for IMAP idle error events.
            </summary>
        </member>
        <member name="M:S22.Imap.IdleErrorEventArgs.#ctor(System.Exception,S22.Imap.ImapClient)">
            <summary>
            Initializes a new instance of the IdleErrorEventArgs class.
            </summary>
            <param name="exception">The exception that causes the event.</param>
            <param name="client">The instance of the ImapClient class that raised the event.</param>
            <exception cref="T:System.ArgumentNullException">The exception parameter or the client parameter
            is null.</exception>
        </member>
        <member name="P:S22.Imap.IdleErrorEventArgs.Exception">
            <summary>
            The exception that caused the error event.
            </summary>
        </member>
        <member name="P:S22.Imap.IdleErrorEventArgs.Client">
            <summary>
            The instance of the ImapClient class that raised the event.
            </summary>
        </member>
        <member name="T:S22.Imap.IdleMessageEventArgs">
            <summary>
            Provides data for IMAP idle notification events.
            </summary>
        </member>
        <member name="M:S22.Imap.IdleMessageEventArgs.#ctor(System.UInt32,System.UInt32,S22.Imap.ImapClient)">
            <summary>
            Initializes a new instance of the IdleMessageEventArgs class and sets the
            MessageCount attribute to the value of the <paramref name="MessageCount"/>
            parameter.
            </summary>
            <param name="MessageCount">The number of messages in the selected mailbox.</param>
            <param name="MessageUID"> The unique identifier (UID) of the newest message in the
            mailbox.</param>
            <param name="Client">The instance of the ImapClient class that raised the event.</param>
        </member>
        <member name="P:S22.Imap.IdleMessageEventArgs.MessageCount">
            <summary>
            The total number of messages in the selected mailbox.
            </summary>
        </member>
        <member name="P:S22.Imap.IdleMessageEventArgs.MessageUID">
            <summary>
            The unique identifier (UID) of the newest message in the mailbox. 
            </summary>
            <remarks>The UID can be passed to the GetMessage method in order to retrieve the mail
            message from the server.</remarks>
        </member>
        <member name="P:S22.Imap.IdleMessageEventArgs.Client">
            <summary>
            The instance of the ImapClient class that raised the event.
            </summary>
        </member>
        <member name="T:S22.Imap.IImapClient">
            <summary>
            Enables applications to communicate with a mail server using the Internet Message Access
            Protocol (IMAP).
            </summary>
        </member>
        <member name="M:S22.Imap.IImapClient.Login(System.String,System.String,S22.Imap.AuthMethod)">
            <summary>
            Attempts to establish an authenticated session with the server using the specified
            credentials.
            </summary>
            <param name="username">The username with which to login in to the IMAP server.</param>
            <param name="password">The password with which to log in to the IMAP server.</param>
            <param name="method">The requested method of authentication. Can be one of the values
            of the AuthMethod enumeration.</param>
            <exception cref="T:System.ArgumentNullException">The username parameter or the password parameter
            is null.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.InvalidCredentialsException">The server rejected the supplied
            credentials.</exception>
            <exception cref="T:System.NotSupportedException">The specified authentication method is not
            supported by the server.</exception>
            <example>
				This example demonstrates how to authenticate with an IMAP server once a connection
				has been established. Notice that you can also connect and login in one step
				using one of the overloaded constructors. 
				<code>
					// Connect to Gmail's IMAP server on port 993 using SSL.
					ImapClient Client = new ImapClient("imap.gmail.com", 993, true);

					try {
						Client.Login("My_Username", "My_Password", AuthMethod.Auto);
					}
					catch(InvalidCredentialsException) {
						Console.WriteLine("The server rejected the supplied credentials.");
					}
					
					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.IImapClient.Logout">
            <summary>
            Logs an authenticated client out of the server. After the logout sequence has been completed,
            the server closes the connection with the client.
            </summary>
            <exception cref="T:S22.Imap.BadServerResponseException">An unexpected response has been received from
            the server during the logout sequence.</exception>
            <remarks>Calling this method in non-authenticated state has no effect.</remarks>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
        </member>
        <member name="M:S22.Imap.IImapClient.Capabilities">
            <summary>
            Returns an enumerable collection of capabilities the IMAP server supports. All strings in
            the returned collection are guaranteed to be upper-case.
            </summary>
            <exception cref="T:S22.Imap.BadServerResponseException">An unexpected response has been received from
            the server; The message property of the exception contains the error message returned by
            the server.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <returns>An enumerable collection of capabilities supported by the server.</returns>
            <remarks>This method may be called in non-authenticated state.</remarks>
        </member>
        <member name="M:S22.Imap.IImapClient.Supports(System.String)">
            <summary>
            Determines whether the specified capability is supported by the server.
            </summary>
            <param name="capability">The IMAP capability to probe for (for example "IDLE").</param>
            <exception cref="T:System.ArgumentNullException">The capability parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">An unexpected response has been received from
            the server; The message property of the exception contains the error message returned by
            the server.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <returns>true if the specified capability is supported by the server; Otherwise
            false.</returns>
            <remarks>This method may be called in non-authenticated state.</remarks>
            <example>
				This example demonstrates how to connect and login to an IMAP server.
				<code>
					// Connect to Gmail's IMAP server on port 993 using SSL.
					ImapClient Client = null;
					try {
						Client = new ImapClient("imap.gmail.com", 993, "My_Username",
							"My_Password", true, AuthMethod.Auto);

						// Check if the server supports IMAP IDLE.
						if(Client.Supports("IDLE"))
							Console.WriteLine("This server supports the IMAP4 IDLE specification");
						else
							Console.WriteLine("This server does not support IMAP IDLE");
					}
					catch(InvalidCredentialsException) {
						Console.WriteLine("The server rejected the supplied credentials");
					}
					finally {
						// Release resources. 
						if(Client != null)
							Client.Dispose();
					}
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.IImapClient.RenameMailbox(System.String,System.String)">
            <summary>
            Changes the name of the specified mailbox.
            </summary>
            <param name="mailbox">The mailbox to rename.</param>
            <param name="newName">The new name the mailbox will be renamed to.</param>
            <exception cref="T:System.ArgumentNullException">The mailbox parameter or the
            newName parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mailbox could not be renamed; The message
            property of the exception contains the error message returned by the server.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
        </member>
        <member name="M:S22.Imap.IImapClient.DeleteMailbox(System.String)">
            <summary>
            Permanently removes the specified mailbox.
            </summary>
            <param name="mailbox">The name of the mailbox to remove.</param>
            <exception cref="T:System.ArgumentNullException">The mailbox parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The specified mailbox could not be removed.
            The message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
        </member>
        <member name="M:S22.Imap.IImapClient.CreateMailbox(System.String)">
            <summary>
            Creates a new mailbox with the specified name.
            </summary>
            <param name="mailbox">The name of the mailbox to create.</param>
            <exception cref="T:System.ArgumentNullException">The mailbox parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mailbox with the specified name could
            not be created. The message property of the exception contains the error message returned
            by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
        </member>
        <member name="M:S22.Imap.IImapClient.ListMailboxes">
            <summary>
            Retrieves a list of all available and selectable mailboxes on the server.
            </summary>
            <returns>An enumerable collection of the names of all available and selectable
            mailboxes.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The list of mailboxes could not be retrieved.
            The message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox
            for this user on this server".</remarks>
        </member>
        <member name="M:S22.Imap.IImapClient.Expunge(System.String)">
            <summary>
            Permanently removes all messages that have the \Deleted flag set from the specified mailbox.
            </summary>
            <param name="mailbox">The mailbox to remove all messages from that have the \Deleted flag
            set. If this parameter is omitted, the value of the DefaultMailbox property is used to
            determine the mailbox to operate on.</param>
            <exception cref="T:S22.Imap.BadServerResponseException">The expunge operation could not be completed.
            The message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.IImapClient.DeleteMessage(System.UInt32,System.String)"/>
        </member>
        <member name="M:S22.Imap.IImapClient.GetMailboxInfo(System.String)">
            <summary>
            Retrieves status information (total number of messages, various attributes as well as quota
            information) for the specified mailbox.</summary>
            <param name="mailbox">The mailbox to retrieve status information for. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>A MailboxInfo object containing status information for the mailbox.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The operation could not be completed because
            the server returned an error. The message property of the exception contains the error message
            returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>Not all IMAP servers support the retrieval of quota information. If it is not
            possible to retrieve this information, the UsedStorage and FreeStorage properties of the
            returned MailboxStatus instance are set to 0.</remarks>
            <example>
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
						"My_Password", true, AuthMethod.Login);

					// Get a list of all mailboxes.
					foreach(string m in Client.ListMailboxes())
					{
						MailboxInfo info = Client.GetMailboxInfo(m);
						
						Console.WriteLine(info.Name);
						Console.WriteLine("Used storage: " + info.UsedStorage);
						Console.WriteLine("Free storage: " + info.FreeStorage);
						Console.WriteLine("Next UID: " + info.NextUID);
						Console.WriteLine("Messages: " + info.Messages);
						Console.WriteLine("Unread: " + info.Unread);
						Console.WriteLine("Set Flags: ");
						foreach (MailboxFlag f in info.Flags)
							Console.Write(f.ToString() + ",");
						Console.WriteLine();	
					}

					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.IImapClient.Search(S22.Imap.SearchCondition,System.String)">
            <summary>
            Searches the specified mailbox for messages that match the given search criteria.
            </summary>
            <param name="criteria">A search criteria expression; Only messages that match this
            expression will be included in the result set returned by this method.</param>
            <param name="mailbox">The mailbox that will be searched. If this parameter is omitted, the
            value of the DefaultMailbox property is used to determine the mailbox to operate on.</param>
            <exception cref="T:System.ArgumentNullException">The criteria parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The search could not be completed. The message
            property of the exception contains the error message returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <exception cref="T:System.NotSupportedException">The search values contain characters beyond the
            ASCII range and the server does not support handling non-ASCII strings.</exception>
            <returns>An enumerable collection of unique identifiers (UIDs) which can be used with the
            GetMessage family of methods to download the mail messages.</returns>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <example>
				This example demonstrates how to use the search method to get a list of all
				unread messages in the mailbox.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
						"My_Password", true, AuthMethod.Login);

					// Get a list of unique identifiers (UIDs) of all unread messages in the mailbox.
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.Unseen() );
					
					// Fetch the messages and print out their subject lines.
					foreach(uint uid in uids) {
						MailMessage message = Client.GetMessage(uid);
						
						Console.WriteLine(message.Subject);
					}
					
					// Free up any resources associated with this instance.
					Client.Dispose();
				</code>
			</example><example>
				This example demonstrates how to perform a search using multiple search criteria.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
						"My_Password", true, AuthMethod.Login);

					// Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012
					// and that are larger than 1 Kilobyte.
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1))
						.And( SearchCondition.Larger(1024) ));

					Console.WriteLine("Found " + uids.Count() + " messages");
					
					// Free up any resources associated with this instance.
					Client.Dispose();
				</code>
			</example><example>
				The following example demonstrates how to perform a search using characters outside
				the ASCII range.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
						"My_Password", true, AuthMethod.Login);

					// Get a list of unique identifiers (UIDs) of all messages that have
					// the Japanese expression "フーリエ変換" in their subject lines.
					try {
						IEnumerable&lt;uint&gt; uids = Client.Search(SearchCondition.Subject("フーリエ変換"));

						Console.WriteLine("Found " + uids.Count() + " messages");
					} catch(NotSupportedException e) {
						// If this exception is thrown, the server does not support searching for characters
						// outside the ASCII range.
						Console.WriteLine("The server does not support searching for non-ASCII values.");
					}
					
					// Free up any resources associated with this instance.
					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.IImapClient.GetMessage(System.UInt32,System.Boolean,System.String)">
            <summary>
            Retrieves the mail message with the specified unique identifier (UID).
            </summary>
            <param name="uid">The unique identifier of the mail message to retrieve.</param>
            <param name="seen">Set this to true to set the \Seen flag for this message on the
            server.</param>
            <param name="mailbox">The mailbox the message will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An initialized instance of the MailMessage class representing the fetched mail
            message.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <example>
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
						"My_Password", true, AuthMethod.Login);
					
					// Find all messages in the mailbox that were sent from "John.Doe@gmail.com".
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") );
					
					// Fetch the first message and print it's subject and body.
					if(uids.Count() &gt; 0) {
						MailMessage msg = Client.GetMessage(uids.First());
						
						Console.WriteLine("Subject: " + msg.Subject);
						Console.WriteLine("Body: " + msg.Body);
					}
					
					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.IImapClient.GetMessage(System.UInt32,S22.Imap.FetchOptions,System.Boolean,System.String)">
            <summary>
            Retrieves the mail message with the specified unique identifier (UID) using the specified
            fetch-option.
            </summary>
            <param name="uid">The unique identifier of the mail message to retrieve.</param>
            <param name="options">A value from the FetchOptions enumeration which allows
            for fetching selective parts of a mail message.</param>
            <param name="seen">Set this to true to set the \Seen flag for this message on the
            server.</param>
            <param name="mailbox">The mailbox the message will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An initialized instance of the MailMessage class representing the fetched mail
            message.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.
            <para>If you need more fine-grained control over which parts of a mail message to fetch,
            consider using one of the overloaded GetMessage methods.
            </para>
            </remarks>
            <example>
				This example demonstrates how to fetch only the mail message headers of
				a mail message, instead of the entire message.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
					"My_Password", true, AuthMethod.Login);

					// Find all messages in the mailbox that have "Hello" in the subject.
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.Subject("Hello") );

					// Fetch the mail headers of the first message and print it's subject line.
					if(uids.Count() &gt; 0) {
						MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly);

						Console.WriteLine("Subject: " + msg.Subject);
					}
					
					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.IImapClient.GetMessage(System.UInt32,S22.Imap.ExaminePartDelegate,System.Boolean,System.String)">
            <summary>
            Retrieves the mail message with the specified unique identifier (UID) while only fetching
            those parts of the message that satisfy the condition of the specified delegate. 
            </summary>
            <param name="uid">The unique identifier of the mail message to retrieve.</param>
            <param name="callback">A delegate which will be invoked for every MIME body-part of the
            mail message to determine whether the part should be fetched from the server or
            skipped.</param>
            <param name="seen">Set this to true to set the \Seen flag for this message on the
            server.</param>
            <param name="mailbox">The mailbox the message will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An initialized instance of the MailMessage class representing the fetched mail
            message.</returns>
            <exception cref="T:System.ArgumentNullException">The callback parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <example>
				This example demonstrates how to use the ExaminePartDelegate with the GetMessage
				method to only download message parts with a size of 1 Megabyte or less.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
					"My_Password", true, AuthMethod.Login);

					// Find all messages in the inbox.
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.All() );

					// Download each message but skip message parts that are larger than 1 Megabyte.
					foreach(uint uid in uids) {
						MailMessage msg = Client.GetMessage(uid, (Bodypart part) =&gt; {
								if(part.Size &gt; (1024 * 1024))
									return false;
								else
									return true;
							}
						);
					}
					
					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.IImapClient.GetMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.Boolean,System.String)">
            <summary>
            Retrieves the set of mail messages with the specified unique identifiers (UIDs).
            </summary>
            <param name="uids">An enumerable collection of unique identifiers of the mail messages to
            retrieve.</param>
            <param name="seen">Set this to true to set the \Seen flag for the fetched messages on the
            server.</param>
            <param name="mailbox">The mailbox the messages will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An enumerable collection of initialized instances of the MailMessage class
            representing the fetched mail messages.</returns>
            <exception cref="T:System.ArgumentNullException">The uids parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <example>
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
						"My_Password", true, AuthMethod.Login);

					// Find all messages that have been sent since June the 1st.
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );

					// Fetch the messages and print out their subject lines.
					IEnumerable&lt;MailMessage&gt; messages = Client.GetMessages( uids );

					foreach(MailMessage m in messages)
						Console.WriteLine("Subject: " + m.Subject);

					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.IImapClient.GetMessages(System.Collections.Generic.IEnumerable{System.UInt32},S22.Imap.ExaminePartDelegate,System.Boolean,System.String)">
            <summary>
            Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only
            fetching those parts of the messages that satisfy the condition of the specified delegate. 
            </summary>
            <param name="uids">An enumerable collection of unique identifiers of the mail messages to
            retrieve.</param>
            <param name="callback">A delegate which will be invoked for every MIME body-part of each
            mail message to determine whether the part should be fetched from the server or
            skipped.</param>
            <param name="seen">Set this to true to set the \Seen flag for the fetched messages on the
            server.</param>
            <param name="mailbox">The mailbox the messages will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An enumerable collection of initialized instances of the MailMessage class
            representing the fetched mail messages.</returns>
            <exception cref="T:System.ArgumentNullException">The uids parameter or the callback parameter is
            null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <!-- No matching elements were found for the following include tag --><include file="Examples.xml" path="S22/Imap/ImapClient[@name=&quot;GetMessages-3&quot;]/*"/>
        </member>
        <member name="M:S22.Imap.IImapClient.GetMessages(System.Collections.Generic.IEnumerable{System.UInt32},S22.Imap.FetchOptions,System.Boolean,System.String)">
            <summary>
            Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the
            specified fetch-option.
            </summary>
            <param name="uids">An enumerable collection of unique identifiers of the mail messages to
            retrieve.</param>
            <param name="options">A value from the FetchOptions enumeration which allows for fetching
            selective parts of a mail message.</param>
            <param name="seen">Set this to true to set the \Seen flag for the fetched messages on the
            server.</param>
            <param name="mailbox">The mailbox the messages will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An enumerable collection of initialized instances of the MailMessage class
            representing the fetched mail messages.</returns>
            <exception cref="T:System.ArgumentNullException">The uids parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <example>
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
					"My_Password", true, AuthMethod.Login);

					// Find all messages that have been sent since June the 1st.
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );

					// Retrieve the messages and print out their subject lines. If any of the messages are multipart
					// messages, only those parts, that have a content-type of text will be fetched.
					IEnumerable&lt;MailMessage&gt; messages = Client.GetMessages( uids, FetchOptions.TextOnly );

					foreach(MailMessage m in messages)
						Console.WriteLine("Subject: " + m.Subject);

					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.IImapClient.StoreMessage(System.Net.Mail.MailMessage,System.Boolean,System.String)">
            <summary>
            Stores the specified mail message on the IMAP server.
            </summary>
            <param name="message">The mail message to store on the server.</param>
            <param name="seen">Set this to true to set the \Seen flag for the message on the
            server.</param>
            <param name="mailbox">The mailbox the message will be stored in. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
            the message in.</param>
            <returns>The unique identifier (UID) of the stored message.</returns>
            <exception cref="T:System.ArgumentNullException">The message parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be stored. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <seealso cref="M:S22.Imap.IImapClient.StoreMessages(System.Collections.Generic.IEnumerable{System.Net.Mail.MailMessage},System.Boolean,System.String)"/>
            <example>
				This example demonstrates how to store a mail message on an IMAP server.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
					"My_Password", true, AuthMethod.Login);
					
					MailMessage message = CreateSimpleMailMessage();
					uint uid = Client.StoreMessage(message);
					
					Console.WriteLine("The UID of the stored mail message is " + uid);
					
					Client.Dispose();

					// ...........

					// This creates a simple mail message with a text/plain body and a PNG image
					// as a file attachment.
					// Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class.
					static MailMessage CreateSimpleMailMessage() {
						MailMessage message = new MailMessage();

						message.From = new MailAddress("someone@someplace.com");
						message.To.Add("john.doe@someplace.com");

						message.Subject = "This is just a test!";
						message.Body = "This is the text/plain body. An additional HTML body " +
							"can optionally be attached as an alternate view";

						// Add the attachment.
						Attachment attachment = new Attachment("some_image.png", "image/png");
						attachment.Name = "my_attached_image.png";
						message.Attachments.Add(attachment);

						return message;
					}
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.IImapClient.StoreMessages(System.Collections.Generic.IEnumerable{System.Net.Mail.MailMessage},System.Boolean,System.String)">
            <summary>
            Stores the specified mail messages on the IMAP server.
            </summary>
            <param name="messages">An enumerable collection of mail messages to store on the
            server.</param>
            <param name="seen">Set this to true to set the \Seen flag for each message on the
            server.</param>
            <param name="mailbox">The mailbox the messages will be stored in. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
            the messages in.</param>
            <returns>An enumerable collection of unique identifiers (UID) representing the stored
            messages on the server.</returns>
            <exception cref="T:System.ArgumentNullException">The messages parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be stored. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <seealso cref="M:S22.Imap.IImapClient.StoreMessage(System.Net.Mail.MailMessage,System.Boolean,System.String)"/>
        </member>
        <member name="M:S22.Imap.IImapClient.CopyMessage(System.UInt32,System.String,System.String)">
            <summary>
            Copies the mail message with the specified UID to the specified destination mailbox.
            </summary>
            <param name="uid">The UID of the mail message to copy.</param>
            <param name="destination">The name of the mailbox to copy the message to.</param>
            <param name="mailbox">The mailbox the message will be copied from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <exception cref="T:System.ArgumentNullException">The destination parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be copied to the
            specified destination. The message property of the exception contains the error message
            returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.IImapClient.MoveMessage(System.UInt32,System.String,System.String)"/>
        </member>
        <member name="M:S22.Imap.IImapClient.CopyMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String,System.String)">
            <summary>
            Copies the mail messages with the specified UIDs to the specified destination mailbox.
            </summary>
            <param name="uids">An enumerable collection of UIDs of the mail messages to copy.</param>
            <param name="destination">The name of the mailbox to copy the messages to.</param>
            <param name="mailbox">The mailbox the message will be copied from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <remarks>When copying many messages, this method is more efficient than calling
            <see cref="M:S22.Imap.IImapClient.CopyMessage(System.UInt32,System.String,System.String)"/> for each individual message.</remarks>
            <exception cref="T:System.ArgumentNullException">The uids parameter or the destination parameter is
            null.</exception>
            <exception cref="T:System.ArgumentException">The specified collection of UIDs is empty.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be copied to the
            specified destination. The message property of the exception contains the error message
            returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.IImapClient.MoveMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String,System.String)"/>
        </member>
        <member name="M:S22.Imap.IImapClient.MoveMessage(System.UInt32,System.String,System.String)">
            <summary>
            Moves the mail message with the specified UID to the specified destination mailbox.
            </summary>
            <param name="uid">The UID of the mail message to move.</param>
            <param name="destination">The name of the mailbox to move the message into.</param>
            <param name="mailbox">The mailbox the message will be moved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <exception cref="T:System.ArgumentNullException">The destination parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be moved to the
            specified destination. The message property of the exception contains the error message
            returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.IImapClient.CopyMessage(System.UInt32,System.String,System.String)"/>
            <seealso cref="M:S22.Imap.IImapClient.DeleteMessage(System.UInt32,System.String)"/>
        </member>
        <member name="M:S22.Imap.IImapClient.MoveMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String,System.String)">
            <summary>
            Moves the mail messages with the specified UIDs to the specified destination mailbox.
            </summary>
            <param name="uids">An enumerable collection of UIDs of the mail messages to move.</param>
            <param name="destination">The name of the mailbox to move the messages into.</param>
            <param name="mailbox">The mailbox the messages will be moved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <remarks>When moving many messages, this method is more efficient than calling
            <see cref="M:S22.Imap.IImapClient.MoveMessage(System.UInt32,System.String,System.String)"/> for each individual message.</remarks>
            <exception cref="T:System.ArgumentNullException">The uids parameter or the destination parameter is
            null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be moved to the
            specified destination. The message property of the exception contains the error message
            returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.IImapClient.CopyMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String,System.String)"/>
            <seealso cref="M:S22.Imap.IImapClient.DeleteMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String)"/>
        </member>
        <member name="M:S22.Imap.IImapClient.DeleteMessage(System.UInt32,System.String)">
            <summary>
            Deletes the mail message with the specified UID.
            </summary>
            <param name="uid">The UID of the mail message to delete.</param>
            <param name="mailbox">The mailbox the message will be deleted from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be deleted. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.IImapClient.MoveMessage(System.UInt32,System.String,System.String)"/>
        </member>
        <member name="M:S22.Imap.IImapClient.DeleteMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String)">
            <summary>
            Deletes the mail messages with the specified UIDs.
            </summary>
            <param name="uids">An enumerable collection of UIDs of the mail messages to delete.</param>
            <param name="mailbox">The mailbox the messages will be deleted from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <remarks>When deleting many messages, this method is more efficient than calling
            <see cref="M:S22.Imap.IImapClient.DeleteMessage(System.UInt32,System.String)"/> for each individual message.</remarks>
            <exception cref="T:System.ArgumentNullException">The uids parameter is null.</exception>
            <exception cref="T:System.ArgumentException">The specified collection of UIDs is empty.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be deleted. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.IImapClient.MoveMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String,System.String)"/>
        </member>
        <member name="M:S22.Imap.IImapClient.GetMessageFlags(System.UInt32,System.String)">
            <summary>
            Retrieves the IMAP message flag attributes for the mail message with the specified unique
            identifier (UID).
            </summary>
            <param name="uid">The UID of the mail message to retrieve the flag attributes for.</param>
            <param name="mailbox">The mailbox the message will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An enumerable collection of message flags set for the message with the specified
            UID.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message flags could not be retrieved.
            The message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.IImapClient.SetMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
            <seealso cref="M:S22.Imap.IImapClient.AddMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
            <seealso cref="M:S22.Imap.IImapClient.RemoveMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
        </member>
        <member name="M:S22.Imap.IImapClient.SetMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])">
            <summary>
            Sets the IMAP message flag attributes for the mail message with the specified unique
            identifier (UID).
            </summary>
            <param name="uid">The UID of the mail message to set the flag attributes for.</param>
            <param name="mailbox">The mailbox that contains the mail message. If this parameter is null,
            the value of the DefaultMailbox property is used to determine the mailbox to operate
            on.</param>
            <param name="flags">One or multiple message flags from the MessageFlag enumeration.</param>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message flags could not be set. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>This method replaces the current flag attributes of the message with the specified
            new flags. If you wish to retain the old attributes, use the <see cref="M:S22.Imap.IImapClient.AddMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
            method instead.</remarks>
            <seealso cref="M:S22.Imap.IImapClient.GetMessageFlags(System.UInt32,System.String)"/>
            <seealso cref="M:S22.Imap.IImapClient.AddMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
            <seealso cref="M:S22.Imap.IImapClient.RemoveMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
        </member>
        <member name="M:S22.Imap.IImapClient.AddMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])">
            <summary>
            Adds the specified set of IMAP message flags to the existing flag attributes of the mail
            message with the specified unique identifier (UID).
            </summary>
            <param name="uid">The UID of the mail message to add the flag attributes to.</param>
            <param name="mailbox">The mailbox that contains the mail message. If this parameter is null,
            the value of the DefaultMailbox property is used to determine the mailbox to operate
            on.</param>
            <param name="flags">One or multiple message flags from the MessageFlag  enumeration.</param>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message flags could not be added. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>This method adds the specified set of flags to the existing set of flag attributes
            of the message. If you wish to replace the old attributes, use the
            <see cref="M:S22.Imap.IImapClient.SetMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/> method instead.</remarks>
            <seealso cref="M:S22.Imap.IImapClient.GetMessageFlags(System.UInt32,System.String)"/>
            <seealso cref="M:S22.Imap.IImapClient.SetMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
            <seealso cref="M:S22.Imap.IImapClient.RemoveMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
        </member>
        <member name="M:S22.Imap.IImapClient.RemoveMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])">
            <summary>
            Removes the specified set of IMAP message flags from the existing flag attributes of the
            mail message with the specified unique identifier (UID).
            </summary>
            <param name="uid">The UID of the mail message to remove the flag attributes for.</param>
            <param name="mailbox">The mailbox that contains the mail message. If this parameter is null,
            the value of the DefaultMailbox property is used to determine the mailbox to operate
            on.</param>
            <param name="flags">One or multiple message flags from the MessageFlag  enumeration.</param>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message flags could not be removed.
            The message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>This method removes the specified set of flags from the existing set of flag
            attributes of the message. If you wish to replace the old attributes, use the
            <see cref="M:S22.Imap.IImapClient.SetMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/> method instead.</remarks>
            <seealso cref="M:S22.Imap.IImapClient.GetMessageFlags(System.UInt32,System.String)"/>
            <seealso cref="M:S22.Imap.IImapClient.SetMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
            <seealso cref="M:S22.Imap.IImapClient.AddMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
        </member>
        <member name="P:S22.Imap.IImapClient.DefaultMailbox">
            <summary>
            The default mailbox to operate on.
            </summary>
            <exception cref="T:System.ArgumentNullException">The property is being set and the value is
            null.</exception>
            <exception cref="T:System.ArgumentException">The property is being set and the value is the empty
            string.</exception>
            <remarks>The default value for this property is "INBOX" which is a special name reserved
            to mean "the primary mailbox for this user on this server".</remarks>
        </member>
        <member name="P:S22.Imap.IImapClient.Authed">
            <summary>
            Determines whether the client is authenticated with the server.
            </summary>
        </member>
        <member name="E:S22.Imap.IImapClient.NewMessage">
            <summary>
            The event that is raised when a new mail message has been received by the server.
            </summary>
            <remarks>To probe a server for IMAP IDLE support, the <see cref="M:S22.Imap.IImapClient.Supports(System.String)"/>
            method can be used, specifying "IDLE" for the capability parameter.
            
            Please note that the event handler will be executed on a threadpool thread.
            </remarks>
            <example>
				This example demonstrates how to receive IMAP IDLE notifications.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
						"My_Password", true, AuthMethod.Login);

					// Make sure our server actually supports IMAP IDLE.
					if(!Client.Supports("IDLE"))
						throw new Exception("This server does not support IMAP IDLE");

					// Our event handler will be called whenever a new message is received
					// by the server.
					Client.NewMessage += new EventHandler&lt;IdleMessageEventArgs&gt;(OnNewMessage);

					// .........
					
					Client.Dispose();
					
					// ........
					
					void OnNewMessage(object sender, IdleMessageEventArgs e) {
						Console.WriteLine("Received a new message!");
						Console.WriteLine("Total number of messages in the mailbox: " +
							e.MessageCount);
					}
				</code>
			</example>
        </member>
        <member name="E:S22.Imap.IImapClient.MessageDeleted">
            <summary>
            The event that is raised when a message has been deleted on the server.
            </summary>
            <remarks>To probe a server for IMAP IDLE support, the <see cref="M:S22.Imap.IImapClient.Supports(System.String)"/>
            method can be used, specifying "IDLE" for the capability parameter.
            
            Please note that the event handler will be executed on a threadpool thread.
            </remarks>
            <example>
				This example demonstrates how to receive IMAP IDLE notifications.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
						"My_Password", true, AuthMethod.Login);

					// Make sure our server actually supports IMAP IDLE.
					if(!Client.Supports("IDLE"))
						throw new Exception("This server does not support IMAP IDLE");

					// Our event handler will be called whenever a message is deleted on the server.
					Client.MessageDeleted += new EventHandler&lt;IdleMessageEventArgs&gt;(OnMessageDeleted);

					// .........

					// Don't forget to dispose the client once you're done with it.
					Client.Dispose();

					// ........

					void OnMessageDeleted(object sender, IdleMessageEventArgs e) {
						Console.WriteLine("A mail message was deleted on the server!");
						Console.WriteLine("Total number of mail messages in the mailbox: " +
							e.MessageCount);
					}
				</code>
			</example>
        </member>
        <member name="T:S22.Imap.ImapClient">
            <summary>
            Enables applications to communicate with a mail server using the Internet Message Access
            Protocol (IMAP).
            </summary>
        </member>
        <member name="M:S22.Imap.ImapClient.#ctor(System.IO.Stream)">
            <summary>
            This constructor is solely used for unit testing.
            </summary>
            <param name="stream">A stream to initialize the ImapClient instance with.</param>
        </member>
        <member name="M:S22.Imap.ImapClient.#ctor(System.String,System.Int32,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback)">
            <summary>
            Initializes a new instance of the ImapClient class and connects to the specified port
            on the specified host, optionally using the Secure Socket Layer (SSL) security protocol.
            </summary>
            <param name="hostname">The DNS name of the server to which you intend to connect.</param>
            <param name="port">The port number of the server to which you intend to connect.</param>
            <param name="ssl">Set to true to use the Secure Socket Layer (SSL) security protocol.</param>
            <param name="validate">Delegate used for verifying the remote Secure Sockets
            Layer (SSL) certificate which is used for authentication. Can be null if not needed.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The port parameter is not between MinPort
            and MaxPort.</exception>
            <exception cref="T:System.ArgumentNullException">The hostname parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">An unexpected response has been received from
            the server upon connecting.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket used for
            establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
            specific error code.</exception>
            <exception cref="T:System.Security.Authentication.AuthenticationException">An authentication
            error occured while trying to establish a secure connection.</exception>
            <example>
				This example shows how to establish a connection with an IMAP server
				and print out the IMAP options, which the server supports.
				<code>
					// Connect to Gmail's IMAP server on port 993 using SSL.
					ImapClient Client = new ImapClient("imap.gmail.com", 993, true);

					// Print out the server's capabilities.
					foreach(string s in Client.Capabilities())
						Console.WriteLine(s);

					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.ImapClient.#ctor(System.String,System.Int32,System.String,System.String,S22.Imap.AuthMethod,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback)">
            <summary>
            Initializes a new instance of the ImapClient class and connects to the specified port on
            the specified host, optionally using the Secure Socket Layer (SSL) security protocol and
            attempts to authenticate with the server using the specified authentication method and
            credentials.
            </summary>
            <param name="hostname">The DNS name of the server to which you intend to connect.</param>
            <param name="port">The port number of the server to which you intend to connect.</param>
            <param name="username">The username with which to login in to the IMAP server.</param>
            <param name="password">The password with which to log in to the IMAP server.</param>
            <param name="method">The requested method of authentication. Can be one of the values
            of the AuthMethod enumeration.</param>
            <param name="ssl">Set to true to use the Secure Socket Layer (SSL) security protocol.</param>
            <param name="validate">Delegate used for verifying the remote Secure Sockets Layer
            (SSL) certificate which is used for authentication. Can be null if not needed.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The port parameter is not between MinPort
            and MaxPort.</exception>
            <exception cref="T:System.ArgumentNullException">The hostname parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">An unexpected response has been received from
            the server upon connecting.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.InvalidCredentialsException">The provided credentials were rejected by the
            server.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket used for
            establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
            specific error code.</exception>
            <exception cref="T:System.Security.Authentication.AuthenticationException">An authentication
            error occured while trying to establish a secure connection.</exception>
            <example>
				This example demonstrates how to connect and login to an IMAP server.
				<code>
					// Connect to Gmail's IMAP server on port 993 using SSL.
					ImapClient Client = null;
					try {
						Client = new ImapClient("imap.gmail.com", 993, "My_Username",
							"My_Password", true, AuthMethod.Auto);

						// Check if the server supports IMAP IDLE.
						if(Client.Supports("IDLE"))
							Console.WriteLine("This server supports the IMAP4 IDLE specification");
						else
							Console.WriteLine("This server does not support IMAP IDLE");
					}
					catch(InvalidCredentialsException) {
						Console.WriteLine("The server rejected the supplied credentials");
					}
					finally {
						// Release resources. 
						if(Client != null)
							Client.Dispose();
					}
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.ImapClient.Connect(System.String,System.Int32,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback)">
            <summary>
            Connects to the specified port on the specified host, optionally using the Secure Socket Layer
            (SSL) security protocol.
            </summary>
            <param name="hostname">The DNS name of the server to which you intend to connect.</param>
            <param name="port">The port number of the server to which you intend to connect.</param>
            <param name="ssl">Set to true to use the Secure Socket Layer (SSL) security protocol.</param>
            <param name="validate">Delegate used for verifying the remote Secure Sockets Layer (SSL)
            certificate which is used for authentication. Can be null if not needed.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The port parameter is not between MinPort
            and MaxPort.</exception>
            <exception cref="T:System.ArgumentNullException">The hostname parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">An unexpected response has been received
            from the server upon connecting.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket used for
            establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
            specific error code.</exception>
            <exception cref="T:System.Security.Authentication.AuthenticationException">An authentication
            error occured while trying to establish a secure connection.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.IsResponseOK(System.String,System.String)">
            <summary>
            Determines whether the specified response is a valid IMAP OK response.
            </summary>
            <param name="response">A response string received from the server.</param>
            <param name="tag">A tag if the response is associated with a command.</param>
            <returns>true if the response is a valid IMAP OK response; Otherwise false.</returns>
        </member>
        <member name="M:S22.Imap.ImapClient.Login(System.String,System.String,S22.Imap.AuthMethod)">
            <summary>
            Attempts to establish an authenticated session with the server using the specified
            credentials.
            </summary>
            <param name="username">The username with which to login in to the IMAP server.</param>
            <param name="password">The password with which to log in to the IMAP server.</param>
            <param name="method">The requested method of authentication. Can be one of the values
            of the AuthMethod enumeration.</param>
            <exception cref="T:System.ArgumentNullException">The username parameter or the password parameter
            is null.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.InvalidCredentialsException">The server rejected the supplied
            credentials.</exception>
            <exception cref="T:System.NotSupportedException">The specified authentication method is not
            supported by the server.</exception>
            <example>
				This example demonstrates how to authenticate with an IMAP server once a connection
				has been established. Notice that you can also connect and login in one step
				using one of the overloaded constructors. 
				<code>
					// Connect to Gmail's IMAP server on port 993 using SSL.
					ImapClient Client = new ImapClient("imap.gmail.com", 993, true);

					try {
						Client.Login("My_Username", "My_Password", AuthMethod.Auto);
					}
					catch(InvalidCredentialsException) {
						Console.WriteLine("The server rejected the supplied credentials.");
					}
					
					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.ImapClient.AuthAuto(System.String,System.String,System.String)">
            <summary>
            Performs authentication using the most secure authentication mechanism supported by the
            server.
            </summary>
            <param name="tag">The tag identifier to use for performing the authentication
            commands.</param>
            <param name="username">The username with which to login in to the IMAP server.</param>
            <param name="password">The password with which to log in to the IMAP server.</param>
            <returns>The response sent by the server.</returns>
            <remarks>The order of preference of authentication types employed by this method is
            Ntlm, Scram-Sha-1, Digest-Md5, followed by Cram-Md5 and finally plaintext Login as
            a last resort.</remarks>
        </member>
        <member name="M:S22.Imap.ImapClient.Login(System.String,System.String,System.String)">
            <summary>
            Performs an actual IMAP "LOGIN" command using the specified username and plain-text
            password.
            </summary>
            <param name="tag">The tag identifier to use for performing the authentication
            commands.</param>
            <param name="username">The username with which to login in to the IMAP server.</param>
            <param name="password">The password with which to log in to the IMAP server.</param>
            <returns>The response sent by the server.</returns>
        </member>
        <member name="M:S22.Imap.ImapClient.SspiAuthenticate(System.String,System.String,System.String,System.Boolean)">
            <summary>
            Performs NTLM and Kerberos authentication via the Security Support Provider Interface (SSPI).
            </summary>
            <param name="tag">The tag identifier to use for performing the authentication
            commands.</param>
            <param name="username">The username with which to login in to the IMAP server.</param>
            <param name="password">The password with which to log in to the IMAP server.</param>
            <param name="useNtlm">True to authenticate using NTLM, otherwise GSSAPI (Kerberos) is
            used.</param>
            <returns>The response sent by the server.</returns>
            <exception cref="T:System.NotSupportedException">The specified authentication method is not
            supported by the server.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.Authenticate(System.String,System.String,System.String,System.String)">
            <summary>
            Performs authentication using a SASL authentication mechanism via IMAP's authenticate
            command.
            </summary>
            <param name="tag">The tag identifier to use for performing the authentication
            commands.</param>
            <param name="username">The username with which to login in to the IMAP server.</param>
            <param name="password">The password with which to log in to the IMAP server.</param>
            <param name="mechanism">The name of the SASL authentication mechanism to use.</param>
            <returns>The response sent by the server.</returns>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">The authentication mechanism with the specified name could
            not be found.</exception>
            <exception cref="T:System.NotSupportedException">The specified authentication mechanism is not
            supported by the server.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">An unexpected response has been received from
            the server.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.Logout">
            <summary>
            Logs an authenticated client out of the server. After the logout sequence has been completed,
            the server closes the connection with the client.
            </summary>
            <exception cref="T:S22.Imap.BadServerResponseException">An unexpected response has been received from
            the server during the logout sequence.</exception>
            <remarks>Calling this method in non-authenticated state has no effect.</remarks>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.GetTag">
            <summary>
            Generates a unique identifier to prefix a command with, as is required by the IMAP protocol.
            </summary>
            <returns>A unique identifier string.</returns>
        </member>
        <member name="M:S22.Imap.ImapClient.SendCommand(System.String)">
            <summary>
            Sends a command string to the server. This method blocks until the command has been
            transmitted.
            </summary>
            <param name="command">The command to send to the server. The string is suffixed by CRLF
            prior to sending.</param>
        </member>
        <member name="M:S22.Imap.ImapClient.SendCommandGetResponse(System.String,System.Boolean)">
            <summary>
            Sends a command string to the server and subsequently waits for a response, which is then
            returned to the caller. This method blocks until the server response has been received.
            </summary>
            <param name="command">The command to send to the server. This is suffixed by CRLF prior
            to sending.</param>
            <param name="resolveLiterals">Set to true to resolve possible literals returned by the
            server (Refer to RFC 3501 Section 4.3 for details).</param>
            <returns>The response received by the server.</returns>
        </member>
        <member name="M:S22.Imap.ImapClient.GetResponse(System.Boolean)">
            <summary>
            Waits for a response from the server. This method blocks until a response has been received.
            </summary>
            <param name="resolveLiterals">Set to true to resolve possible literals returned by the
            server (Refer to RFC 3501 Section 4.3 for details).</param>
            <returns>A response string from the server</returns>
            <exception cref="T:System.IO.IOException">The underlying socket is closed or there was a failure
            reading from the network.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.GetData(System.Int32)">
            <summary>
            Reads the specified amount of bytes from the server. This method blocks until the specified
            amount of bytes has been read from the network stream.
            </summary>
            <param name="byteCount">The number of bytes to read.</param>
            <returns>The read bytes as an ASCII-encoded string.</returns>
            <exception cref="T:System.IO.IOException">The underlying socket is closed or there was a failure
            reading from the network.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.Capabilities">
            <summary>
            Returns an enumerable collection of capabilities the IMAP server supports. All strings in
            the returned collection are guaranteed to be upper-case.
            </summary>
            <exception cref="T:S22.Imap.BadServerResponseException">An unexpected response has been received from
            the server; The message property of the exception contains the error message returned by
            the server.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <returns>An enumerable collection of capabilities supported by the server.</returns>
            <remarks>This method may be called in non-authenticated state.</remarks>
        </member>
        <member name="M:S22.Imap.ImapClient.Supports(System.String)">
            <summary>
            Determines whether the specified capability is supported by the server.
            </summary>
            <param name="capability">The IMAP capability to probe for (for example "IDLE").</param>
            <exception cref="T:System.ArgumentNullException">The capability parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">An unexpected response has been received from
            the server; The message property of the exception contains the error message returned by
            the server.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <returns>true if the specified capability is supported by the server; Otherwise
            false.</returns>
            <remarks>This method may be called in non-authenticated state.</remarks>
            <example>
				This example demonstrates how to connect and login to an IMAP server.
				<code>
					// Connect to Gmail's IMAP server on port 993 using SSL.
					ImapClient Client = null;
					try {
						Client = new ImapClient("imap.gmail.com", 993, "My_Username",
							"My_Password", true, AuthMethod.Auto);

						// Check if the server supports IMAP IDLE.
						if(Client.Supports("IDLE"))
							Console.WriteLine("This server supports the IMAP4 IDLE specification");
						else
							Console.WriteLine("This server does not support IMAP IDLE");
					}
					catch(InvalidCredentialsException) {
						Console.WriteLine("The server rejected the supplied credentials");
					}
					finally {
						// Release resources. 
						if(Client != null)
							Client.Dispose();
					}
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.ImapClient.RenameMailbox(System.String,System.String)">
            <summary>
            Changes the name of the specified mailbox.
            </summary>
            <param name="mailbox">The mailbox to rename.</param>
            <param name="newName">The new name the mailbox will be renamed to.</param>
            <exception cref="T:System.ArgumentNullException">The mailbox parameter or the
            newName parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mailbox could not be renamed; The message
            property of the exception contains the error message returned by the server.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.DeleteMailbox(System.String)">
            <summary>
            Permanently removes the specified mailbox.
            </summary>
            <param name="mailbox">The name of the mailbox to remove.</param>
            <exception cref="T:System.ArgumentNullException">The mailbox parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The specified mailbox could not be removed.
            The message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.CreateMailbox(System.String)">
            <summary>
            Creates a new mailbox with the specified name.
            </summary>
            <param name="mailbox">The name of the mailbox to create.</param>
            <exception cref="T:System.ArgumentNullException">The mailbox parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mailbox with the specified name could
            not be created. The message property of the exception contains the error message returned
            by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.SelectMailbox(System.String)">
            <summary>
            Selects the specified mailbox so that the messages of the mailbox can be accessed.
            </summary>
            <param name="mailbox">The mailbox to select. If this parameter is null, the
            default mailbox is selected.</param>
            <exception cref="T:S22.Imap.BadServerResponseException">The specified mailbox could not be selected.
            The message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>IMAP Idle must be paused or stopped before calling this method.</remarks>
        </member>
        <member name="M:S22.Imap.ImapClient.ListMailboxes">
            <summary>
            Retrieves a list of all available and selectable mailboxes on the server.
            </summary>
            <returns>An enumerable collection of the names of all available and selectable
            mailboxes.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The list of mailboxes could not be retrieved.
            The message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox
            for this user on this server".</remarks>
        </member>
        <member name="M:S22.Imap.ImapClient.Expunge(System.String)">
            <summary>
            Permanently removes all messages that have the \Deleted flag set from the specified mailbox.
            </summary>
            <param name="mailbox">The mailbox to remove all messages from that have the \Deleted flag
            set. If this parameter is omitted, the value of the DefaultMailbox property is used to
            determine the mailbox to operate on.</param>
            <exception cref="T:S22.Imap.BadServerResponseException">The expunge operation could not be completed.
            The message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.ImapClient.DeleteMessage(System.UInt32,System.String)"/>
        </member>
        <member name="M:S22.Imap.ImapClient.GetMailboxInfo(System.String)">
            <summary>
            Retrieves status information (total number of messages, various attributes as well as quota
            information) for the specified mailbox.</summary>
            <param name="mailbox">The mailbox to retrieve status information for. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>A MailboxInfo object containing status information for the mailbox.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The operation could not be completed because
            the server returned an error. The message property of the exception contains the error message
            returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>Not all IMAP servers support the retrieval of quota information. If it is not
            possible to retrieve this information, the UsedStorage and FreeStorage properties of the
            returned MailboxStatus instance are set to 0.</remarks>
            <example>
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
						"My_Password", true, AuthMethod.Login);

					// Get a list of all mailboxes.
					foreach(string m in Client.ListMailboxes())
					{
						MailboxInfo info = Client.GetMailboxInfo(m);
						
						Console.WriteLine(info.Name);
						Console.WriteLine("Used storage: " + info.UsedStorage);
						Console.WriteLine("Free storage: " + info.FreeStorage);
						Console.WriteLine("Next UID: " + info.NextUID);
						Console.WriteLine("Messages: " + info.Messages);
						Console.WriteLine("Unread: " + info.Unread);
						Console.WriteLine("Set Flags: ");
						foreach (MailboxFlag f in info.Flags)
							Console.Write(f.ToString() + ",");
						Console.WriteLine();	
					}

					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.ImapClient.GetMailboxFlags(System.String)">
            <summary>
            Retrieves the set of special-use flags associated with the specified mailbox.
            </summary>
            <param name="mailbox">The mailbox to receive the special-use flags for. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <exception cref="T:S22.Imap.BadServerResponseException">The operation could not be completed because
            the server returned an error. The message property of the exception contains the error
            message returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <returns>An enumerable collection of special-use flags set on the specified
            mailbox.</returns>
            <remarks>This feature is an optional extension to the IMAP protocol and as such some servers
            may not report any flags at all.</remarks>
        </member>
        <member name="M:S22.Imap.ImapClient.GetMailboxStatus(System.String)">
            <summary>
            Retrieves status information (total number of messages, number of unread messages, etc.) for
            the specified mailbox.</summary>
            <param name="mailbox">The mailbox to retrieve status information for. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>A MailboxStatus object containing status information for the mailbox.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The operation could not be completed because
            the server returned an error. The message property of the exception contains the error
            message returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.Search(S22.Imap.SearchCondition,System.String)">
            <summary>
            Searches the specified mailbox for messages that match the given search criteria.
            </summary>
            <param name="criteria">A search criteria expression; Only messages that match this
            expression will be included in the result set returned by this method.</param>
            <param name="mailbox">The mailbox that will be searched. If this parameter is omitted, the
            value of the DefaultMailbox property is used to determine the mailbox to operate on.</param>
            <exception cref="T:System.ArgumentNullException">The criteria parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The search could not be completed. The message
            property of the exception contains the error message returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <exception cref="T:System.NotSupportedException">The search values contain characters beyond the
            ASCII range and the server does not support handling non-ASCII strings.</exception>
            <returns>An enumerable collection of unique identifiers (UIDs) which can be used with the
            GetMessage family of methods to download the mail messages.</returns>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <example>
				This example demonstrates how to use the search method to get a list of all
				unread messages in the mailbox.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
						"My_Password", true, AuthMethod.Login);

					// Get a list of unique identifiers (UIDs) of all unread messages in the mailbox.
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.Unseen() );
					
					// Fetch the messages and print out their subject lines.
					foreach(uint uid in uids) {
						MailMessage message = Client.GetMessage(uid);
						
						Console.WriteLine(message.Subject);
					}
					
					// Free up any resources associated with this instance.
					Client.Dispose();
				</code>
			</example><example>
				This example demonstrates how to perform a search using multiple search criteria.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
						"My_Password", true, AuthMethod.Login);

					// Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012
					// and that are larger than 1 Kilobyte.
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1))
						.And( SearchCondition.Larger(1024) ));

					Console.WriteLine("Found " + uids.Count() + " messages");
					
					// Free up any resources associated with this instance.
					Client.Dispose();
				</code>
			</example><example>
				The following example demonstrates how to perform a search using characters outside
				the ASCII range.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
						"My_Password", true, AuthMethod.Login);

					// Get a list of unique identifiers (UIDs) of all messages that have
					// the Japanese expression "フーリエ変換" in their subject lines.
					try {
						IEnumerable&lt;uint&gt; uids = Client.Search(SearchCondition.Subject("フーリエ変換"));

						Console.WriteLine("Found " + uids.Count() + " messages");
					} catch(NotSupportedException e) {
						// If this exception is thrown, the server does not support searching for characters
						// outside the ASCII range.
						Console.WriteLine("The server does not support searching for non-ASCII values.");
					}
					
					// Free up any resources associated with this instance.
					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.ImapClient.GetMessage(System.UInt32,System.Boolean,System.String)">
            <summary>
            Retrieves the mail message with the specified unique identifier (UID).
            </summary>
            <param name="uid">The unique identifier of the mail message to retrieve.</param>
            <param name="seen">Set this to true to set the \Seen flag for this message on the
            server.</param>
            <param name="mailbox">The mailbox the message will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An initialized instance of the MailMessage class representing the fetched mail
            message.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <example>
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
						"My_Password", true, AuthMethod.Login);
					
					// Find all messages in the mailbox that were sent from "John.Doe@gmail.com".
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") );
					
					// Fetch the first message and print it's subject and body.
					if(uids.Count() &gt; 0) {
						MailMessage msg = Client.GetMessage(uids.First());
						
						Console.WriteLine("Subject: " + msg.Subject);
						Console.WriteLine("Body: " + msg.Body);
					}
					
					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.ImapClient.GetMessage(System.UInt32,S22.Imap.FetchOptions,System.Boolean,System.String)">
            <summary>
            Retrieves the mail message with the specified unique identifier (UID) using the specified
            fetch-option.
            </summary>
            <param name="uid">The unique identifier of the mail message to retrieve.</param>
            <param name="options">A value from the FetchOptions enumeration which allows
            for fetching selective parts of a mail message.</param>
            <param name="seen">Set this to true to set the \Seen flag for this message on the
            server.</param>
            <param name="mailbox">The mailbox the message will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An initialized instance of the MailMessage class representing the fetched mail
            message.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.
            <para>If you need more fine-grained control over which parts of a mail message to fetch,
            consider using one of the overloaded GetMessage methods.
            </para>
            </remarks>
            <example>
				This example demonstrates how to fetch only the mail message headers of
				a mail message, instead of the entire message.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
					"My_Password", true, AuthMethod.Login);

					// Find all messages in the mailbox that have "Hello" in the subject.
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.Subject("Hello") );

					// Fetch the mail headers of the first message and print it's subject line.
					if(uids.Count() &gt; 0) {
						MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly);

						Console.WriteLine("Subject: " + msg.Subject);
					}
					
					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.ImapClient.GetMessage(System.UInt32,S22.Imap.ExaminePartDelegate,System.Boolean,System.String)">
            <summary>
            Retrieves the mail message with the specified unique identifier (UID) while only fetching
            those parts of the message that satisfy the condition of the specified delegate. 
            </summary>
            <param name="uid">The unique identifier of the mail message to retrieve.</param>
            <param name="callback">A delegate which will be invoked for every MIME body-part of the
            mail message to determine whether the part should be fetched from the server or
            skipped.</param>
            <param name="seen">Set this to true to set the \Seen flag for this message on the
            server.</param>
            <param name="mailbox">The mailbox the message will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An initialized instance of the MailMessage class representing the fetched mail
            message.</returns>
            <exception cref="T:System.ArgumentNullException">The callback parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <example>
				This example demonstrates how to use the ExaminePartDelegate with the GetMessage
				method to only download message parts with a size of 1 Megabyte or less.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
					"My_Password", true, AuthMethod.Login);

					// Find all messages in the inbox.
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.All() );

					// Download each message but skip message parts that are larger than 1 Megabyte.
					foreach(uint uid in uids) {
						MailMessage msg = Client.GetMessage(uid, (Bodypart part) =&gt; {
								if(part.Size &gt; (1024 * 1024))
									return false;
								else
									return true;
							}
						);
					}
					
					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.ImapClient.GetMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.Boolean,System.String)">
            <summary>
            Retrieves the set of mail messages with the specified unique identifiers (UIDs).
            </summary>
            <param name="uids">An enumerable collection of unique identifiers of the mail messages to
            retrieve.</param>
            <param name="seen">Set this to true to set the \Seen flag for the fetched messages on the
            server.</param>
            <param name="mailbox">The mailbox the messages will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An enumerable collection of initialized instances of the MailMessage class
            representing the fetched mail messages.</returns>
            <exception cref="T:System.ArgumentNullException">The uids parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <example>
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
						"My_Password", true, AuthMethod.Login);

					// Find all messages that have been sent since June the 1st.
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );

					// Fetch the messages and print out their subject lines.
					IEnumerable&lt;MailMessage&gt; messages = Client.GetMessages( uids );

					foreach(MailMessage m in messages)
						Console.WriteLine("Subject: " + m.Subject);

					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.ImapClient.GetMessages(System.Collections.Generic.IEnumerable{System.UInt32},S22.Imap.ExaminePartDelegate,System.Boolean,System.String)">
            <summary>
            Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only
            fetching those parts of the messages that satisfy the condition of the specified delegate. 
            </summary>
            <param name="uids">An enumerable collection of unique identifiers of the mail messages to
            retrieve.</param>
            <param name="callback">A delegate which will be invoked for every MIME body-part of each
            mail message to determine whether the part should be fetched from the server or
            skipped.</param>
            <param name="seen">Set this to true to set the \Seen flag for the fetched messages on the
            server.</param>
            <param name="mailbox">The mailbox the messages will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An enumerable collection of initialized instances of the MailMessage class
            representing the fetched mail messages.</returns>
            <exception cref="T:System.ArgumentNullException">The uids parameter or the callback parameter is
            null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <!-- No matching elements were found for the following include tag --><include file="Examples.xml" path="S22/Imap/ImapClient[@name=&quot;GetMessages-3&quot;]/*"/>
        </member>
        <member name="M:S22.Imap.ImapClient.GetMessages(System.Collections.Generic.IEnumerable{System.UInt32},S22.Imap.FetchOptions,System.Boolean,System.String)">
            <summary>
            Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the
            specified fetch-option.
            </summary>
            <param name="uids">An enumerable collection of unique identifiers of the mail messages to
            retrieve.</param>
            <param name="options">A value from the FetchOptions enumeration which allows for fetching
            selective parts of a mail message.</param>
            <param name="seen">Set this to true to set the \Seen flag for the fetched messages on the
            server.</param>
            <param name="mailbox">The mailbox the messages will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An enumerable collection of initialized instances of the MailMessage class
            representing the fetched mail messages.</returns>
            <exception cref="T:System.ArgumentNullException">The uids parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <example>
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
					"My_Password", true, AuthMethod.Login);

					// Find all messages that have been sent since June the 1st.
					IEnumerable&lt;uint&gt; uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );

					// Retrieve the messages and print out their subject lines. If any of the messages are multipart
					// messages, only those parts, that have a content-type of text will be fetched.
					IEnumerable&lt;MailMessage&gt; messages = Client.GetMessages( uids, FetchOptions.TextOnly );

					foreach(MailMessage m in messages)
						Console.WriteLine("Subject: " + m.Subject);

					Client.Dispose();
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.ImapClient.StoreMessage(System.Net.Mail.MailMessage,System.Boolean,System.String)">
            <summary>
            Stores the specified mail message on the IMAP server.
            </summary>
            <param name="message">The mail message to store on the server.</param>
            <param name="seen">Set this to true to set the \Seen flag for the message on the
            server.</param>
            <param name="mailbox">The mailbox the message will be stored in. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
            the message in.</param>
            <returns>The unique identifier (UID) of the stored message.</returns>
            <exception cref="T:System.ArgumentNullException">The message parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be stored. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <seealso cref="M:S22.Imap.ImapClient.StoreMessages(System.Collections.Generic.IEnumerable{System.Net.Mail.MailMessage},System.Boolean,System.String)"/>
            <example>
				This example demonstrates how to store a mail message on an IMAP server.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
					"My_Password", true, AuthMethod.Login);
					
					MailMessage message = CreateSimpleMailMessage();
					uint uid = Client.StoreMessage(message);
					
					Console.WriteLine("The UID of the stored mail message is " + uid);
					
					Client.Dispose();

					// ...........

					// This creates a simple mail message with a text/plain body and a PNG image
					// as a file attachment.
					// Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class.
					static MailMessage CreateSimpleMailMessage() {
						MailMessage message = new MailMessage();

						message.From = new MailAddress("someone@someplace.com");
						message.To.Add("john.doe@someplace.com");

						message.Subject = "This is just a test!";
						message.Body = "This is the text/plain body. An additional HTML body " +
							"can optionally be attached as an alternate view";

						// Add the attachment.
						Attachment attachment = new Attachment("some_image.png", "image/png");
						attachment.Name = "my_attached_image.png";
						message.Attachments.Add(attachment);

						return message;
					}
				</code>
			</example>
        </member>
        <member name="M:S22.Imap.ImapClient.StoreMessages(System.Collections.Generic.IEnumerable{System.Net.Mail.MailMessage},System.Boolean,System.String)">
            <summary>
            Stores the specified mail messages on the IMAP server.
            </summary>
            <param name="messages">An enumerable collection of mail messages to store on the
            server.</param>
            <param name="seen">Set this to true to set the \Seen flag for each message on the
            server.</param>
            <param name="mailbox">The mailbox the messages will be stored in. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
            the messages in.</param>
            <returns>An enumerable collection of unique identifiers (UID) representing the stored
            messages on the server.</returns>
            <exception cref="T:System.ArgumentNullException">The messages parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be stored. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
            identifies the message within the respective mailbox. No two messages in a mailbox share
            the same UID.</remarks>
            <seealso cref="M:S22.Imap.ImapClient.StoreMessage(System.Net.Mail.MailMessage,System.Boolean,System.String)"/>
        </member>
        <member name="M:S22.Imap.ImapClient.GetMailHeader(System.UInt32,System.Boolean,System.String)">
            <summary>
            Retrieves the mail header for the mail message with the specified unique identifier (UID).
            </summary>
            <param name="uid">The UID of the mail message to retrieve the mail header for.</param>
            <param name="seen">Set this to true to set the \Seen flag for the fetched messages on the
            server.</param>
            <param name="mailbox">The mailbox the messages will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>A string containing the raw mail header of the mail message with the specified
            UID.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail header could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.GetBodystructure(System.UInt32,System.String)">
            <summary>
            Retrieves the body structure for the mail message with the specified unique identifier (UID).
            </summary>
            <param name="uid">The UID of the mail message to retrieve the body structure for.</param>
            <param name="mailbox">The mailbox the messages will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>A string containing the raw body structure of the mail message with the specified
            UID.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The body structure could not be fetched. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>A body structure is a textual description of the layout of a mail message. It is
            described in some detail in RFC 3501 under 7.4.2 FETCH response.</remarks>
        </member>
        <member name="M:S22.Imap.ImapClient.GetBodypart(System.UInt32,System.String,System.Boolean,System.String)">
            <summary>
            Retrieves the MIME body-part with the specified part number of the multipart message with
            the specified unique identifier (UID).
            </summary>
            <param name="uid">The UID of the mail message to retrieve a MIME body part for.</param>
            <param name="partNumber">The part number of the body part to fetch.</param>
            <param name="seen">Set this to true to set the \Seen flag for the fetched messages on the
            server.</param>
            <param name="mailbox">The mailbox the messages will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>A string containing the specified body part of the mail message with the specified
            UID.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The body part could not be fetched. The message
            property of the exception contains the error message returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.GetMessageData(System.UInt32,System.Boolean,System.String)">
            <summary>
            Retrieves the raw MIME/RFC822 mail message data for the mail message with the specified UID.
            </summary>
            <param name="uid">The UID of the mail message to retrieve as a MIME/RFC822 string.</param>
            <param name="seen">Set this to true to set the \Seen flag for the fetched message on the
            server.</param>
            <param name="mailbox">The mailbox the message will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>A string containing the raw MIME/RFC822 data of the mail message with the
            specified UID.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message data could not be fetched.
            The message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.GetHighestUID(System.String)">
            <summary>
            Retrieves the highest UID in the specified mailbox.
            </summary>
            <param name="mailbox">The mailbox to find the highest UID for. If this parameter is null,
            the value of the DefaultMailbox property is used to determine the mailbox to operate
            on.</param>
            <returns>The highest unique identifier value (UID) in the mailbox.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The UID could not be determined. The message
            property of the exception contains the error message returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>The highest UID usually corresponds to the newest message in a mailbox.</remarks>
        </member>
        <member name="M:S22.Imap.ImapClient.CopyMessage(System.UInt32,System.String,System.String)">
            <summary>
            Copies the mail message with the specified UID to the specified destination mailbox.
            </summary>
            <param name="uid">The UID of the mail message to copy.</param>
            <param name="destination">The name of the mailbox to copy the message to.</param>
            <param name="mailbox">The mailbox the message will be copied from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <exception cref="T:System.ArgumentNullException">The destination parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be copied to the
            specified destination. The message property of the exception contains the error message
            returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.ImapClient.MoveMessage(System.UInt32,System.String,System.String)"/>
        </member>
        <member name="M:S22.Imap.ImapClient.CopyMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String,System.String)">
            <summary>
            Copies the mail messages with the specified UIDs to the specified destination mailbox.
            </summary>
            <param name="uids">An enumerable collection of UIDs of the mail messages to copy.</param>
            <param name="destination">The name of the mailbox to copy the messages to.</param>
            <param name="mailbox">The mailbox the message will be copied from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <remarks>When copying many messages, this method is more efficient than calling
            <see cref="M:S22.Imap.ImapClient.CopyMessage(System.UInt32,System.String,System.String)"/> for each individual message.</remarks>
            <exception cref="T:System.ArgumentNullException">The uids parameter or the destination parameter is
            null.</exception>
            <exception cref="T:System.ArgumentException">The specified collection of UIDs is empty.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be copied to the
            specified destination. The message property of the exception contains the error message
            returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.ImapClient.MoveMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String,System.String)"/>
        </member>
        <member name="M:S22.Imap.ImapClient.MoveMessage(System.UInt32,System.String,System.String)">
            <summary>
            Moves the mail message with the specified UID to the specified destination mailbox.
            </summary>
            <param name="uid">The UID of the mail message to move.</param>
            <param name="destination">The name of the mailbox to move the message into.</param>
            <param name="mailbox">The mailbox the message will be moved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <exception cref="T:System.ArgumentNullException">The destination parameter is null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be moved to the
            specified destination. The message property of the exception contains the error message
            returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.ImapClient.CopyMessage(System.UInt32,System.String,System.String)"/>
            <seealso cref="M:S22.Imap.ImapClient.DeleteMessage(System.UInt32,System.String)"/>
        </member>
        <member name="M:S22.Imap.ImapClient.MoveMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String,System.String)">
            <summary>
            Moves the mail messages with the specified UIDs to the specified destination mailbox.
            </summary>
            <param name="uids">An enumerable collection of UIDs of the mail messages to move.</param>
            <param name="destination">The name of the mailbox to move the messages into.</param>
            <param name="mailbox">The mailbox the messages will be moved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <remarks>When moving many messages, this method is more efficient than calling
            <see cref="M:S22.Imap.ImapClient.MoveMessage(System.UInt32,System.String,System.String)"/> for each individual message.</remarks>
            <exception cref="T:System.ArgumentNullException">The uids parameter or the destination parameter is
            null.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be moved to the
            specified destination. The message property of the exception contains the error message
            returned by the server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.ImapClient.CopyMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String,System.String)"/>
            <seealso cref="M:S22.Imap.ImapClient.DeleteMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String)"/>
        </member>
        <member name="M:S22.Imap.ImapClient.DeleteMessage(System.UInt32,System.String)">
            <summary>
            Deletes the mail message with the specified UID.
            </summary>
            <param name="uid">The UID of the mail message to delete.</param>
            <param name="mailbox">The mailbox the message will be deleted from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message could not be deleted. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.ImapClient.MoveMessage(System.UInt32,System.String,System.String)"/>
        </member>
        <member name="M:S22.Imap.ImapClient.DeleteMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String)">
            <summary>
            Deletes the mail messages with the specified UIDs.
            </summary>
            <param name="uids">An enumerable collection of UIDs of the mail messages to delete.</param>
            <param name="mailbox">The mailbox the messages will be deleted from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <remarks>When deleting many messages, this method is more efficient than calling
            <see cref="M:S22.Imap.ImapClient.DeleteMessage(System.UInt32,System.String)"/> for each individual message.</remarks>
            <exception cref="T:System.ArgumentNullException">The uids parameter is null.</exception>
            <exception cref="T:System.ArgumentException">The specified collection of UIDs is empty.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail messages could not be deleted. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.ImapClient.MoveMessages(System.Collections.Generic.IEnumerable{System.UInt32},System.String,System.String)"/>
        </member>
        <member name="M:S22.Imap.ImapClient.GetMessageFlags(System.UInt32,System.String)">
            <summary>
            Retrieves the IMAP message flag attributes for the mail message with the specified unique
            identifier (UID).
            </summary>
            <param name="uid">The UID of the mail message to retrieve the flag attributes for.</param>
            <param name="mailbox">The mailbox the message will be retrieved from. If this parameter is
            omitted, the value of the DefaultMailbox property is used to determine the mailbox to
            operate on.</param>
            <returns>An enumerable collection of message flags set for the message with the specified
            UID.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message flags could not be retrieved.
            The message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.ImapClient.SetMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
            <seealso cref="M:S22.Imap.ImapClient.AddMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
            <seealso cref="M:S22.Imap.ImapClient.RemoveMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
        </member>
        <member name="M:S22.Imap.ImapClient.SetMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])">
            <summary>
            Sets the IMAP message flag attributes for the mail message with the specified unique
            identifier (UID).
            </summary>
            <param name="uid">The UID of the mail message to set the flag attributes for.</param>
            <param name="mailbox">The mailbox that contains the mail message. If this parameter is null,
            the value of the DefaultMailbox property is used to determine the mailbox to operate
            on.</param>
            <param name="flags">One or multiple message flags from the MessageFlag enumeration.</param>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message flags could not be set. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>This method replaces the current flag attributes of the message with the specified
            new flags. If you wish to retain the old attributes, use the <see cref="M:S22.Imap.ImapClient.AddMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
            method instead.</remarks>
            <seealso cref="M:S22.Imap.ImapClient.GetMessageFlags(System.UInt32,System.String)"/>
            <seealso cref="M:S22.Imap.ImapClient.AddMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
            <seealso cref="M:S22.Imap.ImapClient.RemoveMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
        </member>
        <member name="M:S22.Imap.ImapClient.AddMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])">
            <summary>
            Adds the specified set of IMAP message flags to the existing flag attributes of the mail
            message with the specified unique identifier (UID).
            </summary>
            <param name="uid">The UID of the mail message to add the flag attributes to.</param>
            <param name="mailbox">The mailbox that contains the mail message. If this parameter is null,
            the value of the DefaultMailbox property is used to determine the mailbox to operate
            on.</param>
            <param name="flags">One or multiple message flags from the MessageFlag  enumeration.</param>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message flags could not be added. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>This method adds the specified set of flags to the existing set of flag attributes
            of the message. If you wish to replace the old attributes, use the
            <see cref="M:S22.Imap.ImapClient.SetMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/> method instead.</remarks>
            <seealso cref="M:S22.Imap.ImapClient.GetMessageFlags(System.UInt32,System.String)"/>
            <seealso cref="M:S22.Imap.ImapClient.SetMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
            <seealso cref="M:S22.Imap.ImapClient.RemoveMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
        </member>
        <member name="M:S22.Imap.ImapClient.RemoveMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])">
            <summary>
            Removes the specified set of IMAP message flags from the existing flag attributes of the
            mail message with the specified unique identifier (UID).
            </summary>
            <param name="uid">The UID of the mail message to remove the flag attributes for.</param>
            <param name="mailbox">The mailbox that contains the mail message. If this parameter is null,
            the value of the DefaultMailbox property is used to determine the mailbox to operate
            on.</param>
            <param name="flags">One or multiple message flags from the MessageFlag  enumeration.</param>
            <exception cref="T:S22.Imap.BadServerResponseException">The mail message flags could not be removed.
            The message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>This method removes the specified set of flags from the existing set of flag
            attributes of the message. If you wish to replace the old attributes, use the
            <see cref="M:S22.Imap.ImapClient.SetMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/> method instead.</remarks>
            <seealso cref="M:S22.Imap.ImapClient.GetMessageFlags(System.UInt32,System.String)"/>
            <seealso cref="M:S22.Imap.ImapClient.SetMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
            <seealso cref="M:S22.Imap.ImapClient.AddMessageFlags(System.UInt32,System.String,S22.Imap.MessageFlag[])"/>
        </member>
        <member name="M:S22.Imap.ImapClient.StartIdling">
            <summary>
            Starts receiving of IMAP IDLE notifications from the IMAP server.
            </summary>
            <exception cref="T:System.ApplicationException">An unexpected program condition occured.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The IDLE operation could not be completed. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.InvalidOperationException">The server does not support the IMAP4 IDLE
            command.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>Calling this method when already receiving idle notifications has no
            effect.</remarks>
            <seealso cref="M:S22.Imap.ImapClient.StopIdling"/>
            <seealso cref="M:S22.Imap.ImapClient.PauseIdling"/>
            <seealso cref="M:S22.Imap.ImapClient.ResumeIdling"/>
        </member>
        <member name="M:S22.Imap.ImapClient.StopIdling">
            <summary>
            Stops receiving IMAP IDLE notifications from the IMAP server.
            </summary>
            <exception cref="T:S22.Imap.BadServerResponseException">The IDLE operation could not be completed. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.InvalidOperationException">The server does not support the IMAP4 IDLE
            command.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>Calling this method when not receiving idle notifications has no effect.</remarks>
            <seealso cref="M:S22.Imap.ImapClient.StartIdling"/>
            <seealso cref="M:S22.Imap.ImapClient.PauseIdling"/>
        </member>
        <member name="M:S22.Imap.ImapClient.PauseIdling">
            <summary>
            Temporarily pauses receiving IMAP IDLE notifications from the IMAP server.
            </summary>
            <exception cref="T:S22.Imap.BadServerResponseException">The IDLE operation could not be completed. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.InvalidOperationException">The server does not support the IMAP4 IDLE
            command.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <remarks>To resume receiving IDLE notifications ResumeIdling must be called.
            </remarks>
            <seealso cref="M:S22.Imap.ImapClient.StartIdling"/>
            <seealso cref="M:S22.Imap.ImapClient.ResumeIdling"/>
        </member>
        <member name="M:S22.Imap.ImapClient.ResumeIdling">
            <summary>
            Resumes receiving IMAP IDLE notifications from the IMAP server.
            </summary>
            <exception cref="T:System.ApplicationException">An unexpected program condition occured.</exception>
            <exception cref="T:S22.Imap.BadServerResponseException">The IDLE operation could not be completed. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.InvalidOperationException">The server does not support the IMAP4 IDLE
            command.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
            <seealso cref="M:S22.Imap.ImapClient.StopIdling"/>
        </member>
        <member name="M:S22.Imap.ImapClient.IdleLoop">
            <summary>
            The main idle loop. Waits for incoming IMAP IDLE notifications and dispatches
            them as events. This runs in its own thread whenever IMAP IDLE
            notifications are being received.
            </summary>
        </member>
        <member name="M:S22.Imap.ImapClient.EventDispatcher">
            <summary>
            Blocks on a queue and wakes up whenever a new notification is put into the queue. The
            notification is then examined and dispatched as an event.
            </summary>
        </member>
        <member name="M:S22.Imap.ImapClient.IssueNoop(System.Object,System.Timers.ElapsedEventArgs)">
            <summary>
            Issues a NOOP command to the IMAP server. Called in the context of a System.Timer event
            when IDLE notifications are being received.
            </summary>
            <remarks>This is needed by the IMAP IDLE mechanism to give the server an indication that the
            connection is still active.
            </remarks>
        </member>
        <member name="M:S22.Imap.ImapClient.GetQuota(System.String)">
            <summary>
            Retrieves IMAP QUOTA information for the specified mailbox.
            </summary>
            <param name="mailbox">The mailbox to retrieve QUOTA information for. If this parameter is
            null, the value of the DefaultMailbox property is used to determine the mailbox to operate
            on.</param>
            <returns>An enumerable collection of MailboxQuota objects describing usage and limits of the
            quota roots for the mailbox.</returns>
            <exception cref="T:S22.Imap.BadServerResponseException">The quota operation could not be completed. The
            message property of the exception contains the error message returned by the
            server.</exception>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been disposed.</exception>
            <exception cref="T:System.IO.IOException">There was a failure writing to or reading from the
            network.</exception>
            <exception cref="T:System.InvalidOperationException">The IMAP4 QUOTA extension is not supported by
            the server.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
        </member>
        <member name="M:S22.Imap.ImapClient.Dispose">
            <summary>
            Releases all resources used by the current instance of the ImapClient class.
            </summary>
        </member>
        <member name="M:S22.Imap.ImapClient.Dispose(System.Boolean)">
            <summary>
            Releases all resources used by the current instance of the ImapClient class, optionally
            disposing of managed resource.
            </summary>
            <param name="disposing">true to dispose of managed resources, otherwise false.</param>
        </member>
        <member name="M:S22.Imap.ImapClient.AssertValid(System.Boolean)">
            <summary>
            Asserts the instance has not been disposed of and is in a valid state.
            </summary>
            <exception cref="T:System.ObjectDisposedException">The ImapClient object has been
            disposed.</exception>
            <exception cref="T:S22.Imap.NotAuthenticatedException">The method was called in non-authenticated
            state, i.e. before logging in.</exception>
        </member>
        <member name="P:S22.Imap.ImapClient.DefaultMailbox">
            <summary>
            The default mailbox to operate on.
            </summary>
            <exception cref="T:System.ArgumentNullException">The property is being set and the value is
            null.</exception>
            <exception cref="T:System.ArgumentException">The property is being set and the value is the empty
            string.</exception>
            <remarks>The default value for this property is "INBOX" which is a special name reserved
            to mean "the primary mailbox for this user on this server".</remarks>
        </member>
        <member name="P:S22.Imap.ImapClient.Authed">
            <summary>
            Determines whether the client is authenticated with the server.
            </summary>
        </member>
        <member name="E:S22.Imap.ImapClient.NewMessage">
            <summary>
            The event that is raised when a new mail message has been received by the server.
            </summary>
            <remarks>To probe a server for IMAP IDLE support, the <see cref="M:S22.Imap.ImapClient.Supports(System.String)"/>
            method can be used, specifying "IDLE" for the capability parameter.
            
            Please note that the event handler will be executed on a threadpool thread.
            </remarks>
            <example>
				This example demonstrates how to receive IMAP IDLE notifications.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
						"My_Password", true, AuthMethod.Login);

					// Make sure our server actually supports IMAP IDLE.
					if(!Client.Supports("IDLE"))
						throw new Exception("This server does not support IMAP IDLE");

					// Our event handler will be called whenever a new message is received
					// by the server.
					Client.NewMessage += new EventHandler&lt;IdleMessageEventArgs&gt;(OnNewMessage);

					// .........
					
					Client.Dispose();
					
					// ........
					
					void OnNewMessage(object sender, IdleMessageEventArgs e) {
						Console.WriteLine("Received a new message!");
						Console.WriteLine("Total number of messages in the mailbox: " +
							e.MessageCount);
					}
				</code>
			</example>
        </member>
        <member name="E:S22.Imap.ImapClient.MessageDeleted">
            <summary>
            The event that is raised when a message has been deleted on the server.
            </summary>
            <remarks>To probe a server for IMAP IDLE support, the <see cref="M:S22.Imap.ImapClient.Supports(System.String)"/>
            method can be used, specifying "IDLE" for the capability parameter.
            
            Please note that the event handler will be executed on a threadpool thread.
            </remarks>
            <example>
				This example demonstrates how to receive IMAP IDLE notifications.
				<code>
					ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
						"My_Password", true, AuthMethod.Login);

					// Make sure our server actually supports IMAP IDLE.
					if(!Client.Supports("IDLE"))
						throw new Exception("This server does not support IMAP IDLE");

					// Our event handler will be called whenever a message is deleted on the server.
					Client.MessageDeleted += new EventHandler&lt;IdleMessageEventArgs&gt;(OnMessageDeleted);

					// .........

					// Don't forget to dispose the client once you're done with it.
					Client.Dispose();

					// ........

					void OnMessageDeleted(object sender, IdleMessageEventArgs e) {
						Console.WriteLine("A mail message was deleted on the server!");
						Console.WriteLine("Total number of mail messages in the mailbox: " +
							e.MessageCount);
					}
				</code>
			</example>
        </member>
        <member name="E:S22.Imap.ImapClient.IdleError">
            <summary>
            The event that is raised when an I/O exception occurs in the idle-thread.
            </summary>
            <remarks>
            An I/O exception can occur if the underlying network connection has been reset or the
            server unexpectedly closed the connection.
            </remarks>
        </member>
        <member name="T:S22.Imap.ExaminePartDelegate">
            <summary>
            A delegate which is invoked during a call to GetMessage or GetMessages for every MIME part in
            a multipart mail message. The delegate can examine the MIME body part and decide to either
            include it in the returned mail message or dismiss it.
            </summary>
            <param name="part">A MIME body part of a mail message which consists of multiple parts.</param>
            <returns>true to include the body part in the returned MailMessage object, or false to skip
            it.</returns>
        </member>
        <member name="T:S22.Imap.BadServerResponseException">
            <summary>
            The exception that is thrown when an unexpected response is received from the server.
            </summary>
        </member>
        <member name="M:S22.Imap.BadServerResponseException.#ctor">
            <summary>
            Initializes a new instance of the BadServerResponseException class
            </summary>
        </member>
        <member name="M:S22.Imap.BadServerResponseException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the BadServerResponseException class with its message
            string set to <paramref name="message"/>.
            </summary>
            <param name="message">A description of the error. The content of message is intended
            to be understood by humans.</param>
        </member>
        <member name="M:S22.Imap.BadServerResponseException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the BadServerResponseException class with its message
            string set to <paramref name="message"/> and a reference to the inner exception that
            is the cause of this exception.
            </summary>
            <param name="message">A description of the error. The content of message is intended
            to be understood by humans.</param>
            <param name="inner">The exception that is the cause of the current exception.</param>
        </member>
        <member name="M:S22.Imap.BadServerResponseException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the BadServerResponseException class with the specified
            serialization and context information.
            </summary>
            <param name="info">An object that holds the serialized object data about the exception
            being thrown. </param>
            <param name="context">An object that contains contextual information about the source
            or destination. </param>
        </member>
        <member name="T:S22.Imap.InvalidCredentialsException">
            <summary>
            The exception that is thrown when the supplied credentials were rejected by the server.
            </summary>
        </member>
        <member name="M:S22.Imap.InvalidCredentialsException.#ctor">
            <summary>
            Initializes a new instance of the InvalidCredentialsException class
            </summary>
        </member>
        <member name="M:S22.Imap.InvalidCredentialsException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the InvalidCredentialsException class with its message
            string set to <paramref name="message"/>.
            </summary>
            <param name="message">A description of the error. The content of message is intended
            to be understood by humans.</param>
        </member>
        <member name="M:S22.Imap.InvalidCredentialsException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the InvalidCredentialsException class with its message
            string set to <paramref name="message"/> and a reference to the inner exception that
            is the cause of this exception.
            </summary>
            <param name="message">A description of the error. The content of message is intended
            to be understood by humans.</param>
            <param name="inner">The exception that is the cause of the current exception.</param>
        </member>
        <member name="M:S22.Imap.InvalidCredentialsException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the InvalidCredentialsException class with the specified
            serialization and context information.
            </summary>
            <param name="info">An object that holds the serialized object data about the exception
            being thrown. </param>
            <param name="context">An object that contains contextual information about the source
            or destination. </param>
        </member>
        <member name="T:S22.Imap.NotAuthenticatedException">
            <summary>
            The exception that is thrown when a client has not authenticated with the server and
            attempts to call a method which can only be called when authenticated.
            </summary>
        </member>
        <member name="M:S22.Imap.NotAuthenticatedException.#ctor">
            <summary>
            Initializes a new instance of the NotAuthenticatedException class
            </summary>
        </member>
        <member name="M:S22.Imap.NotAuthenticatedException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the NotAuthenticatedException class with its message
            string set to <paramref name="message"/>.
            </summary>
            <param name="message">A description of the error. The content of message is intended
            to be understood by humans.</param>
        </member>
        <member name="M:S22.Imap.NotAuthenticatedException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the NotAuthenticatedException class with its message
            string set to <paramref name="message"/> and a reference to the inner exception that
            is the cause of this exception.
            </summary>
            <param name="message">A description of the error. The content of message is intended
            to be understood by humans.</param>
            <param name="inner">The exception that is the cause of the current exception.</param>
        </member>
        <member name="M:S22.Imap.NotAuthenticatedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the NotAuthenticatedException class with the specified
            serialization and context information.
            </summary>
            <param name="info">An object that holds the serialized object data about the exception
            being thrown. </param>
            <param name="context">An object that contains contextual information about the source
            or destination. </param>
        </member>
        <member name="T:S22.Imap.MailboxInfo">
            <summary>
            Provides access to status information such as the total number of messages and quota
            information for a mailbox.
            </summary>
            <remarks>
            The terms "mailbox" and "folder" can be used interchangeably and refer to the IMAP concept of
            multiple server-side directories into which messages can be stored (such as "Inbox",
            "Sent Items", "Trash", etc.).
            </remarks>
        </member>
        <member name="M:S22.Imap.MailboxInfo.#ctor(System.String,System.Collections.Generic.IEnumerable{S22.Imap.MailboxFlag},System.Int32,System.Int32,System.UInt32,System.UInt64,System.UInt64)">
            <summary>
            Initializes a new instance of the MailboxInfo class with the specified values.
            </summary>
            <param name="Name">The IMAP name of the mailbox.</param>
            <param name="Flags">The IMAP flags set on this mailbox.</param>
            <param name="Messages">The number of messages in the mailbox.</param>
            <param name="Unread">The number of unread messages in the mailbox.</param>
            <param name="NextUID">The next unique identifier (UID) of the mailbox.</param>
            <param name="UsedStorage">The amount of used storage of the mailbox, in bytes.</param>
            <param name="FreeStorage">The amount of free storage of the mailbox, in bytes.</param>
        </member>
        <member name="M:S22.Imap.MailboxInfo.ToString">
            <summary>
            Returns the name of the mailbox.
            </summary>
            <returns>The name of the mailbox</returns>
        </member>
        <member name="P:S22.Imap.MailboxInfo.Name">
            <summary>
            The name of the mailbox.
            </summary>
        </member>
        <member name="P:S22.Imap.MailboxInfo.Flags">
            <summary>
            An enumerable collection of flags set on the mailbox.
            </summary>
        </member>
        <member name="P:S22.Imap.MailboxInfo.Messages">
            <summary>
            The total number of messages in the mailbox.
            </summary>
        </member>
        <member name="P:S22.Imap.MailboxInfo.Unread">
            <summary>
            The number of unread (unseen) messages in the mailbox.
            </summary>
        </member>
        <member name="P:S22.Imap.MailboxInfo.NextUID">
            <summary>
            The next unique identifier value of the mailbox.
            </summary>
        </member>
        <member name="P:S22.Imap.MailboxInfo.UsedStorage">
            <summary>
            The amount of used storage in the mailbox, measured in bytes.
            </summary>
            <remarks>Not all IMAP servers support the retrieval of quota information. If it is not
            possible to retrieve the amount of used storage, this property will be 0.
            </remarks>
        </member>
        <member name="P:S22.Imap.MailboxInfo.FreeStorage">
            <summary>
            The amount of free storage in the mailbox, measured in bytes.
            </summary>
            <remarks>Not all IMAP servers support the retrieval of quota information. If it is not
            possible to retrieve the amount of free storage, this property will be 0.
            </remarks>
        </member>
        <member name="T:S22.Imap.MailboxFlag">
            <summary>
            Defines possible attributes for mailboxes.
            </summary>
            <remarks>
            <para>
            An IMAP mailbox can have a number of flags (read: attributes) set on it, indicating its
            designated purpose (such as "Spam" or "Drafts").
            </para>
            <para>
            This is especially convenient when dealing with international mailbox names, because, by
            examining the associated flags, the mailbox purpose can be determined, even if the mailbox
            name provides no useful indication.
            </para>
            <para>
            Unfortunately, as with many things IMAP, reporting the flags described here is an optional
            extension (XLIST) to the IMAP protocol and as such may or may not be supported by an IMAP
            server.
            </para>
            </remarks>
        </member>
        <member name="F:S22.Imap.MailboxFlag.AllMail">
            <summary>
            The mailbox presents a view on all messages in the user's message store.
            </summary>
        </member>
        <member name="F:S22.Imap.MailboxFlag.Archive">
            <summary>
            The mailbox is used to archive messages. The meaning of an "archival" mailbox is server
            dependent.
            </summary>
        </member>
        <member name="F:S22.Imap.MailboxFlag.Drafts">
            <summary>
            The mailbox is used to hold draft messages, typically these are messages that are being
            composed but have not yet been sent.
            </summary>
        </member>
        <member name="F:S22.Imap.MailboxFlag.Sent">
            <summary>
            The mailbox is used to hold copies of messages that have been sent.  
            </summary>
        </member>
        <member name="F:S22.Imap.MailboxFlag.Spam">
            <summary>
            The mailbox is where messages deemed to be junk mail (spam) are held.
            </summary>
        </member>
        <member name="F:S22.Imap.MailboxFlag.Trash">
            <summary>
            The mailbox is used to hold messages that have been deleted or marked for deletion.
            </summary>
        </member>
        <member name="T:S22.Imap.MailboxQuota">
            <summary>
            Represents an IMAP QUOTA entry for a resource which typically consists of a resource name,
            the current usage of the resource, and the resource limit.
            </summary>
        </member>
        <member name="M:S22.Imap.MailboxQuota.#ctor(System.String,System.UInt32,System.UInt32)">
            <summary>
            Initializes a new instance of the MailboxQuota class with the specified values.
            </summary>
            <param name="Name">The name of the resource this MailboxQuota instance describes.</param>
            <param name="Usage">The current usage of the resource in units of 1024  bytes.</param>
            <param name="Limit">The limit of the resource in units of 1024 bytes.</param>
        </member>
        <member name="P:S22.Imap.MailboxQuota.ResourceName">
            <summary>
            The name of the resource this MailboxQuota instance describes.
            </summary>
        </member>
        <member name="P:S22.Imap.MailboxQuota.Usage">
            <summary>
            The current usage of the resource this MailboxQuota instance describes, in bytes.
            </summary>
        </member>
        <member name="P:S22.Imap.MailboxQuota.Limit">
            <summary>
            The limit of the resource this MailboxQuota instance describes, in bytes.
            </summary>
        </member>
        <member name="T:S22.Imap.MailboxStatus">
            <summary>
            Represents the status information of a mailbox which can be constructed from the server
            response to a STATUS command.
            </summary>
        </member>
        <member name="M:S22.Imap.MailboxStatus.#ctor(System.Int32,System.Int32,System.UInt32)">
            <summary>
            Initializes a new MailboxStatus instance with the specified number of total and unread
            messages.
            </summary>
            <param name="Messages">The total number of messages in the mailbox.</param>
            <param name="Unread">The number of unread (unseen) messages in the mailbox.</param>
            <param name="NextUID">The next unique identifier value of the mailbox</param>
        </member>
        <member name="P:S22.Imap.MailboxStatus.NextUID">
            <summary>
            The next unique identifier value of the mailbox.
            </summary>
        </member>
        <member name="P:S22.Imap.MailboxStatus.Messages">
            <summary>
            The total number of messages in the mailbox.
            </summary>
        </member>
        <member name="P:S22.Imap.MailboxStatus.Unread">
            <summary>
            The number of unread (unseen) messages in the mailbox.
            </summary>
        </member>
        <member name="T:S22.Imap.MailMessageExtension">
            <summary>
            Adds extension methods to the MailMessage class of the .NET Framework.
            </summary>
            <remarks>
            Most of the methods are only used internally and are not visible outside of the
            S22.Imap assembly.
            </remarks>
        </member>
        <member name="M:S22.Imap.MailMessageExtension.Date(System.Net.Mail.MailMessage)">
            <summary>
            Returns the date and time the mail message was composed.
            </summary>
            <param name="message">The MailMessage instance to return the date and time for.</param>
            <returns>The date and time the mail message was composed, or null if the mail message
            does not contain any date information.</returns>
        </member>
        <member name="M:S22.Imap.MailMessageExtension.ToMIME822(System.Net.Mail.MailMessage)">
            <summary>
            Constructs a textual representation of a mail message from the specified MailMessage
            instance compliant with the RFC822 and MIME standards.
            </summary>
            <param name="message">The MailMessage instance to construct the textual representation
            from.</param>
            <returns>An RFC822/MIME-compliant string representing the specified mail message.</returns>
            <exception cref="T:System.InvalidOperationException">The From property is null or has not been
            properly initialized.</exception>
        </member>
        <member name="M:S22.Imap.MailMessageExtension.BuildHeader(System.Net.Mail.MailMessage)">
            <summary>
            Builds a RFC822/MIME-compliant mail header from the specified MailMessage instance and
            returns it as a NameValueCollection.
            </summary>
            <param name="m">The MailMessage instance to build the header from.</param>
            <returns>A NameValueCollection representing the RFC822/MIME mail header fields.</returns>
        </member>
        <member name="F:S22.Imap.MailMessageExtension.PriorityMap">
            <summary>
            A map for mapping the values of the MailPriority enumeration to their corresponding MIME
            priority values as defined in RFC2156.
            </summary>
        </member>
        <member name="F:S22.Imap.MailMessageExtension.ImportanceMap">
            <summary>
            A map for mapping the values of the MailPriority enumeration to their corresponding MIME
            importance values as defined in RFC2156.
            </summary>
        </member>
        <member name="M:S22.Imap.MailMessageExtension.QEncode(System.String)">
            <summary>
            Takes a unicode string and encodes it using Q-encoding.
            </summary>
            <param name="s">The string to encode.</param>
            <returns>The input string encoded as Q-encoded string containing only ASCII
            characters.</returns>
        </member>
        <member name="M:S22.Imap.MailMessageExtension.Base64Encode(System.String)">
            <summary>
            Takes a unicode string and encodes it using Base64-encoding.
            </summary>
            <param name="s">The string to encode.</param>
            <returns>The input string encoded as Base64-encoded string containing only ASCII
            characters.</returns>
        </member>
        <member name="M:S22.Imap.MailMessageExtension.To822Address(System.Net.Mail.MailAddress)">
            <summary>
            Creates an address string from the specified MailAddress instance in compliance with the
            address specification as outlined in RFC2822 under section 3.4
            </summary>
            <param name="address">The MailAddress instance to create the address string from.</param>
            <returns>An address string as is used in RFC822 mail headers.</returns>
        </member>
        <member name="M:S22.Imap.MailMessageExtension.GenerateContentBoundary">
            <summary>
            Generates a unique sequence of characters for indicating a boundary between parts in a
            multipart message.
            </summary>
            <returns>A unique content boundary string.</returns>
        </member>
        <member name="M:S22.Imap.MailMessageExtension.BuildBody(System.Net.Mail.MailMessage,System.Collections.Specialized.NameValueCollection)">
            <summary>
            Builds an RFC822/MIME-compliant mail body from the specified MailMessage instance and
            returns it as a formatted string.
            </summary>
            <param name="m">The MailMessage instance to build the mail body from.</param>
            <param name="header">The RFC822/MIME mail header to use for constructing the mail
            body.</param>
            <returns>An RFC822/MIME-compliant mail body as a string.</returns>
            <remarks>According to RFC2822 each line of a mail message should at max be 78 characters in
            length excluding carriage return and newline characters. This method accounts for that and
            ensures line breaks are inserted to meet this requirement.</remarks>
        </member>
        <member name="M:S22.Imap.MailMessageExtension.AddBody(System.Text.StringBuilder,System.Net.Mail.MailMessage,System.Collections.Specialized.NameValueCollection,System.Boolean)">
            <summary>
            Adds a body part to the specified Stringbuilder object composed from the Body and
            BodyEncoding properties of the MailMessage class.
            </summary>
            <param name="builder">The Stringbuilder to append the body part to.</param>
            <param name="m">The MailMessage instance to build the body part from.</param>
            <param name="header">The RFC822/MIME mail header to use for constructing the mail body.</param>
            <param name="addHeaders">Set to true to append body headers before adding the actual body
            part content.</param>
        </member>
        <member name="M:S22.Imap.MailMessageExtension.AddAttachment(System.Text.StringBuilder,System.Net.Mail.AttachmentBase)">
            <summary>
            Creates a MIME body part from an entry of the AlternateView or Attachments collection of a
            MailMessage instance and appends it to the specified Stringbuilder instance.
            </summary>
            <param name="builder">The Stringbuilder instance to append the body part to.</param>
            <param name="view">An entry from either the AlternateView or the Attachments collection of
            a MailMessage instance.</param>
        </member>
        <member name="M:S22.Imap.MailMessageExtension.AddNestedAlternative(System.Text.StringBuilder,System.Net.Mail.MailMessage,System.Collections.Specialized.NameValueCollection)">
            <summary>
            Creates a nested multipart/alternative part which contains all entries from the
            AlternateViews collection of the specified MailMessage instance as well as the body part
            for the Body and BodyEncoding properties of the specified MailMessage instance.
            </summary>
            <param name="builder">The StringBuilder instance to append to.</param>
            <param name="m">The MailMessage instance whose AlternateView collection will be added to the
            nested multipart/alternative part.</param>
            <param name="header">The RFC822/MIME mail header to use for constructing the mail body.</param>
            <remarks>This is used if the MailMessage instance contains both alternative views and
            attachments. In this case the created RFC822/MIME mail message will contain nested body
            parts.</remarks>
        </member>
        <member name="M:S22.Imap.MailMessageExtension.AddNestedMixed(System.Text.StringBuilder,System.Net.Mail.MailMessage)">
            <summary>
            Creates a nested multipart/mixed part which contains all entries from the Attachments
            collection of the specified MailMessage instance.
            </summary>
            <param name="builder">The StringBuilder instance to append to.</param>
            <param name="m">The MailMessage instance whose Attachments collection will be added to the
            nested multipart/mixed part.</param>
            <remarks>This is used if the MailMessage instance contains both alternative views and
            attachments. In this case the created RFC822/MIME mail message will contain nested body
            parts.</remarks>
        </member>
        <member name="T:S22.Imap.MessageBuilder">
            <summary>
            A helper class for reading mail message data and building a MailMessage instance out of it.
            </summary>
        </member>
        <member name="M:S22.Imap.MessageBuilder.FromHeader(System.String)">
            <summary>
            Creates a new empty instance of the MailMessage class from a string containing a raw mail
            message header.
            </summary>
            <param name="text">The mail header to create the MailMessage instance from.</param>
            <returns>A MailMessage instance with initialized Header fields but without any
            content.</returns>
        </member>
        <member name="M:S22.Imap.MessageBuilder.FromMIME822(System.String)">
            <summary>
            Creates a new instance of the MailMessage class from a string containing raw RFC822/MIME
            mail message data.
            </summary>
            <param name="text">The mail message data to create the MailMessage instance from.</param>
            <returns>An initialized instance of the MailMessage class.</returns>
            <remarks>This is used when fetching entire messages instead of the partial-fetch mechanism
            because it saves redundant round-trips to the server.</remarks>
        </member>
        <member name="M:S22.Imap.MessageBuilder.ParseMailHeader(System.String)">
            <summary>
            Parses the mail header of a mail message and returns it as a NameValueCollection.
            </summary>
            <param name="header">The mail header to parse.</param>
            <returns>A NameValueCollection containing the header fields as keys with their respective
            values as values.</returns>
        </member>
        <member name="M:S22.Imap.MessageBuilder.StripComments(System.String)">
            <summary>
            Strips RFC822/MIME comments from the specified string.
            </summary>
            <param name="s">The string to strip comments from.</param>
            <returns>A new string stripped of any comments.</returns>
        </member>
        <member name="M:S22.Imap.MessageBuilder.ParseMIMEField(System.String)">
            <summary>
            Parses a MIME header field which can contain multiple 'parameter = value'
            pairs (such as Content-Type: text/html; charset=iso-8859-1).
            </summary>
            <param name="field">The header field to parse.</param>
            <returns>A NameValueCollection containing the parameter names as keys with the respective
            parameter values as values.</returns>
            <remarks>The value of the actual field disregarding the 'parameter = value' pairs is stored
            in the collection under the key "value" (in the above example of Content-Type, this would
            be "text/html").</remarks>
        </member>
        <member name="M:S22.Imap.MessageBuilder.ParseAddressList(System.String)">
            <summary>
            Parses a mail header address-list field such as To, Cc and Bcc which can contain multiple
            email addresses.
            </summary>
            <param name="list">The address-list field to parse</param>
            <returns>An array of MailAddress objects representing the parsed mail addresses.</returns>
        </member>
        <member name="M:S22.Imap.MessageBuilder.SplitAddressList(System.String)">
            <summary>
            Splits the specified address-list into individual parts consisting of a mail address and
            optionally a display-name.
            </summary>
            <param name="list">The address-list to split into parts.</param>
            <returns>An enumerable collection of parts.</returns>
        </member>
        <member name="M:S22.Imap.MessageBuilder.ParseMessageId(System.String)">
            <summary>
            Parses a mail message identifier from a string.
            </summary>
            <param name="field">The field to parse the message id from</param>
            <exception cref="T:System.ArgumentException">The field argument does not contain a valid message
            identifier.</exception>
            <returns>The parsed message id.</returns>
            <remarks>A message identifier (msg-id) is a globally unique identifier for a
            message.</remarks>
        </member>
        <member name="M:S22.Imap.MessageBuilder.ParsePriority(System.String)">
            <summary>
            Parses the priority of a mail message which can be specified as part of the header
            information.
            </summary>
            <param name="priority">The mail header priority value. The value can be null in which case
            a "normal priority" is returned.</param>
            <returns>A value from the MailPriority enumeration corresponding to the specified mail
            priority. If the passed priority value is null or invalid, a normal priority is assumed and
            MailPriority.Normal is returned.</returns>
        </member>
        <member name="M:S22.Imap.MessageBuilder.SetAddressFields(System.Net.Mail.MailMessage,System.Collections.Specialized.NameValueCollection)">
            <summary>
            Sets the address fields (From, To, CC, etc.) of a MailMessage object using the specified
            mail message header information.
            </summary>
            <param name="m">The MailMessage instance to operate on.</param>
            <param name="header">A collection of mail and MIME headers.</param>
        </member>
        <member name="M:S22.Imap.MessageBuilder.AddBodypart(System.Net.Mail.MailMessage,S22.Imap.Bodypart,System.String)">
            <summary>
            Adds a body part to an existing MailMessage instance.
            </summary>
            <param name="message">Extension method for the MailMessage class.</param>
            <param name="part">The body part to add to the MailMessage instance.</param>
            <param name="content">The content of the body part.</param>
        </member>
        <member name="M:S22.Imap.MessageBuilder.CreateAttachment(S22.Imap.Bodypart,System.Byte[])">
            <summary>
            Creates an instance of the Attachment class used by the MailMessage class to store mail
            message attachments.
            </summary>
            <param name="part">The MIME body part to create the attachment from.</param>
            <param name="bytes">An array of bytes composing the content of the attachment.</param>
            <returns>An initialized instance of the Attachment class.</returns>
        </member>
        <member name="M:S22.Imap.MessageBuilder.CreateAlternateView(S22.Imap.Bodypart,System.Byte[])">
            <summary>
            Creates an instance of the AlternateView class used by the MailMessage class to store
            alternate views of the mail message's content.
            </summary>
            <param name="part">The MIME body part to create the alternate view from.</param>
            <param name="bytes">An array of bytes composing the content of the alternate view.</param>
            <returns>An initialized instance of the AlternateView class.</returns>
        </member>
        <member name="M:S22.Imap.MessageBuilder.ParseMailBody(System.String,System.Collections.Specialized.NameValueCollection)">
            <summary>
            Parses the body part of a MIME/RFC822 mail message.
            </summary>
            <param name="body">The body of the mail message.</param>
            <param name="header">The header of the mail message whose body will be parsed.</param>
            <returns>An array of initialized MIMEPart instances representing the body parts of the mail
            message.</returns>
        </member>
        <member name="M:S22.Imap.MessageBuilder.ParseMIMEParts(System.IO.StringReader,System.String)">
            <summary>
            Parses the body of a multipart MIME mail message.
            </summary>
            <param name="reader">An instance of the StringReader class initialized with a string
            containing the body of the mail message.</param>
            <param name="boundary">The boundary value as is present as part of the Content-Type header
            field in multipart mail messages.</param>
            <returns>An array of initialized MIMEPart instances representing the various parts of the
            MIME mail message.</returns>
        </member>
        <member name="M:S22.Imap.MessageBuilder.BodypartFromMIME(S22.Imap.MIMEPart)">
            <summary>
            Glue method to create a bodypart from a MIMEPart instance.
            </summary>
            <param name="mimePart">The MIMEPart instance to create the bodypart instance from.</param>
            <returns>An initialized instance of the Bodypart class.</returns>
        </member>
        <member name="T:S22.Imap.MessageFlag">
            <summary>
            Defines possible attributes for mail messages on an IMAP server.
            </summary>
        </member>
        <member name="F:S22.Imap.MessageFlag.Seen">
            <summary>
            Indicates that the message has been read.
            </summary>
        </member>
        <member name="F:S22.Imap.MessageFlag.Answered">
            <summary>
            Indicates that the message has been answered.
            </summary>
        </member>
        <member name="F:S22.Imap.MessageFlag.Flagged">
            <summary>
            Indicates that the message is "flagged" for urgent/special attention.
            </summary>
        </member>
        <member name="F:S22.Imap.MessageFlag.Deleted">
            <summary>
            Indicates that the message has been marked as "deleted" and will be removed upon the next
            call to the Expunge method.
            </summary>
        </member>
        <member name="F:S22.Imap.MessageFlag.Draft">
            <summary>
            Indicates that the message has not completed composition and is marked as a draft.
            </summary>
        </member>
        <member name="F:S22.Imap.MessageFlag.Recent">
            <summary>
            Indicates that the message has recently arrived in the mailbox.
            </summary>
        </member>
        <member name="T:S22.Imap.MIMEPart">
            <summary>
            Represents a part of a MIME multi-part message. Each part consists of its own content header
            and a content body.
            </summary>
        </member>
        <member name="P:S22.Imap.MIMEPart.header">
            <summary>
            A collection containing the content header information as key-value pairs.
            </summary>
        </member>
        <member name="P:S22.Imap.MIMEPart.body">
            <summary>
            A string containing the content body of the part.
            </summary>
        </member>
        <member name="T:S22.Imap.SafeQueue`1">
            <summary>
            A thread-safe Queue.
            </summary>
        </member>
        <member name="M:S22.Imap.SafeQueue`1.Enqueue(`0)">
            <summary>
            Adds an object to the end of the queue.
            </summary>
            <param name="item">The object to add to the queue.</param>
        </member>
        <member name="M:S22.Imap.SafeQueue`1.Dequeue">
            <summary>
            Removes and returns the object at the beginning of the queue. If the queue is empty, the
            method blocks the calling thread until an object is put into the queue by another thread.
            </summary>
            <returns>The object that was removed from the beginning of the queue.</returns>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.BinaryReaderExtensions">
            <summary>
            Adds extension methods to the BinaryReader class to simplify the
            deserialization of NTLM messages.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.BinaryReaderExtensions.ReadASCIIString(System.IO.BinaryReader,System.Int32)">
            <summary>
            Reads an ASCII-string of the specified length from this instance.
            </summary>
            <param name="reader">Extension method for the BinaryReader class.</param>
            <param name="count">The number of bytes to read from the underlying
            stream.</param>
            <returns>A string decoded from the bytes read from the underlying
            stream using the ASCII character set.</returns>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags">
            <summary>
            The NTLM flags which are contained in a bitfield within the header of
            an NTLM message.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateUnicode">
            <summary>
            Indicates that Unicode strings are supported for use in security
            buffer data.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateOEM">
            <summary>
            Indicates that OEM strings are supported for use in security
            buffer data.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.RequestTarget">
            <summary>
            Requests that the server's authentication realm be included in
            the Type 2 message.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateSign">
            <summary>
            Specifies that authenticated communication between the client and
            server should carry a digital signature (message integrity).
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateSeal">
            <summary>
            Specifies that authenticated communication between the client and
            server should be encrypted (message confidentiality).
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateDatagramStyle">
            <summary>
            Indicates that datagram authentication is being used.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateLanManagerKey">
            <summary>
            Indicates that the Lan Manager Session Key should be used for signing
            and sealing authenticated communications.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateNetware">
            <summary>
            This flag's usage has not been identified.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateNTLM">
            <summary>
            Indicates that NTLM authentication is being used.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateAnonymous">
            <summary>
            Sent by the client in the Type 3 message to indicate that an anonymous
            context has been established. This also affects the response fields.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateDomainSupplied">
            <summary>
            Sent by the client in the Type 1 message to indicate that the name of
            the domain in which the client workstation has membership is included
            in the message. This is used by the server to determine whether the
            client is eligible for local authentication.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateWorkstationSupplied">
            <summary>
            Sent by the client in the Type 1 message to indicate that the client
            workstation's name is included in the message. This is used by the
            server to determine whether the client is eligible for local
            authentication.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateLocalCall">
            <summary>
            Sent by the server to indicate that the server and client are on the
            same machine. Implies that the client may use the established local
            credentials for authentication instead of calculating a response to
            the challenge.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateAlwaysSign">
            <summary>
            Indicates that authenticated communication between the client and
            server should be signed with a "dummy" signature.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.TargetTypeDomain">
            <summary>
            Sent by the server in the Type 2 message to indicate that the target
            authentication realm is a domain.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.TargetTypeServer">
            <summary>
            Sent by the server in the Type 2 message to indicate that the target
            authentication realm is a server.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.TargetTypeShare">
            <summary>
            Sent by the server in the Type 2 message to indicate that the target
            authentication realm is a share. Presumably, this is for share-level
            authentication. Usage is unclear.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateNTLM2Key">
            <summary>
            Indicates that the NTLM2 signing and sealing scheme should be used for
            protecting authenticated communications. Note that this refers to a
            particular session security scheme, and is not related to the use of
            NTLMv2 authentication. This flag can, however, have an effect on the
            response calculations.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.RequestInitResponse">
            <summary>
            This flag's usage has not been identified.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.RequestAcceptResponse">
            <summary>
            This flag's usage has not been identified.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.RequestNonNTSessionKey">
            <summary>
            This flag's usage has not been identified.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateTargetInfo">
            <summary>
            Sent by the server in the Type 2 message to indicate that it is including
            a Target Information block in the message. The Target Information block
            is used in the calculation of the NTLMv2 response.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.Negotiate128">
            <summary>
            Indicates that 128-bit encryption is supported.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.NegotiateKeyExchange">
            <summary>
            Indicates that the client will provide an encrypted master key in the
            "Session Key" field of the Type 3 message.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Flags.Negotiate56">
            <summary>
            Indicates that 56-bit encryption is supported.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2TargetInformation">
            <summary>
            Represents the data contained in the target information block of an
            NTLM type 2 message.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2TargetInformation.ServerName">
            <summary>
            The server name.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2TargetInformation.DomainName">
            <summary>
            The domain name.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2TargetInformation.DnsHostname">
            <summary>
            The fully-qualified DNS host name.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2TargetInformation.DnsDomainName">
            <summary>
            The fully-qualified DNS domain name.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Version">
            <summary>
            Describes the different versions of the Type 2 message that have
            been observed.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Version.Unknown">
            <summary>
            The version is unknown.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Version.Version1">
            <summary>
            This form is seen in older Win9x-based systems.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Version.Version2">
            <summary>
            This form is seen in most out-of-box shipping versions of Windows.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Version.Version3">
            <summary>
            This form was introduced in a relatively recent Service Pack, and
            is seen on currently-patched versions of Windows 2000, Windows XP,
            and Windows 2003.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2InformationType">
            <summary>
            Indicates the type of data in Type 2 target information blocks.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2InformationType.TerminatorBlock">
            <summary>
            Signals the end of the target information block.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2InformationType.ServerName">
            <summary>
            The data in the information block contains the server name.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2InformationType.DomainName">
            <summary>
            The data in the information block contains the domain name.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2InformationType.DnsHostname">
            <summary>
            The data in the information block contains the DNS hostname.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2InformationType.DnsDomainName">
            <summary>
            The data in the information block contans the DNS domain name.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.MD4">
            <summary>
            Computes the MD4 hash value for the input data.
            Courtesy of Keith Wood.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.MessageType">
            <summary>
            Describes the different types of NTLM messages.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.MessageType.Type1">
            <summary>
            An NTLM type 1 message is the initial client response to the
            server.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.MessageType.Type2">
            <summary>
            An NTLM type 2 message is the challenge sent by the server in
            response to an NTLM type 1 message.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.MessageType.Type3">
            <summary>
            An NTLM type 3 message is the challenge response sent by the client
            in response to an NTLM type 2 message.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.OSVersion">
            <summary>
            Indicates the version and build number of the operating system.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.OSVersion.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.OSVersion.#ctor(System.Byte,System.Byte,System.Int16)">
            <summary>
            Creates a new instance of the OSVersion class using the specified
            values.
            </summary>
            <param name="majorVersion">The major version of the operating
            system.</param>
            <param name="minorVersion">The minor version of the operating
            system.</param>
            <param name="buildNumber">The build number of the operating systen.</param>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.OSVersion.Serialize">
            <summary>
            Serializes this instance of the OSVersion class to an array of
            bytes.
            </summary>
            <returns>An array of bytes representing this instance of the OSVersion
            class.</returns>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.OSVersion.MajorVersion">
            <summary>
            The major version number of the operating system.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.OSVersion.MinorVersion">
            <summary>
            The minor version number of the operating system.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.OSVersion.BuildNumber">
            <summary>
            The build number of the operating system.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses">
            <summary>
            Contains methods for calculating the various Type 3 challenge
            responses.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses.ComputeLMResponse(System.Byte[],System.String)">
            <summary>
            Computes the LM-response to the challenge sent as part of an
            NTLM type 2 message.
            </summary>
            <param name="challenge">The challenge sent by the server.</param>
            <param name="password">The user account password.</param>
            <returns>An array of bytes representing the response to the
            specified challenge.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses.ComputeNtlmResponse(System.Byte[],System.String)">
            <summary>
            Computes the NTLM-response to the challenge sent as part of an
            NTLM type 2 message.
            </summary>
            <param name="challenge">The challenge sent by the server.</param>
            <param name="password">The user account password.</param>
            <returns>An array of bytes representing the response to the
            specified challenge.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses.ComputeNtlmv2Response(System.String,System.String,System.String,System.Byte[],System.Byte[],System.Byte[])">
            <summary>
            Computes the NTLMv2-response to the challenge sent as part of an
            NTLM type 2 message.
            </summary>
            <param name="target">The name of the authentication target.</param>
            <param name="username">The user account name to authenticate with.</param>
            <param name="password">The user account password.</param>
            <param name="targetInformation">The target information block from
            the NTLM type 2 message.</param>
            <param name="challenge">The challenge sent by the server.</param>
            <param name="clientNonce">A random 8-byte client nonce.</param>
            <returns>An array of bytes representing the response to the
            specified challenge.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses.ComputeLMv2Response(System.String,System.String,System.String,System.Byte[],System.Byte[])">
            <summary>
            Computes the LMv2-response to the challenge sent as part of an
            NTLM type 2 message.
            </summary>
            <param name="target">The name of the authentication target.</param>
            <param name="username">The user account to authenticate with.</param>
            <param name="password">The user account password.</param>
            <param name="challenge">The challenge sent by the server.</param>
            <param name="clientNonce">A random 8-byte client nonce.</param>
            <returns>An array of bytes representing the response to the
            specified challenge.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses.LMHash(System.String)">
            <summary>
            Creates the LM Hash of the specified password.
            </summary>
            <param name="password">The password to create the LM Hash of.</param>
            <returns>The LM Hash of the given password, used in the calculation
            of the LM Response.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if the password argument
            is null.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses.CreateDESKey(System.Byte[],System.Int32)">
            <summary>
            Creates a DES encryption key from the specified key material.
            </summary>
            <param name="bytes">The key material to create the DES encryption
            key from.</param>
            <param name="offset">An offset into the byte array at which to
            extract the key material from.</param>
            <returns>A 56-bit DES encryption key as an array of bytes.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses.OddParity(System.Byte[])">
            <summary>
            Applies odd parity to the specified byte array.
            </summary>
            <param name="bytes">The byte array to apply odd parity to.</param>
            <returns>A reference to the byte array.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses.LMResponse(System.Byte[],System.Byte[])">
            <summary>
            Creates the LM Response from the specified hash and Type 2 challenge.
            </summary>
            <param name="hash">An LM or NTLM hash.</param>
            <param name="challenge">The server challenge from the Type 2
            message.</param>
            <returns>The challenge response as an array of bytes.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if the hash or the
            challenge parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses.NtlmHash(System.String)">
            <summary>
            Creates the NTLM Hash of the specified password.
            </summary>
            <param name="password">The password to create the NTLM hash of.</param>
            <returns>The NTLM hash for the specified password.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if the password
            parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses.Ntlmv2Hash(System.String,System.String,System.String)">
            <summary>
            Creates the NTLMv2 Hash of the specified target, username
            and password values.
            </summary>
            <param name="target">The name of the authentication target as is
            specified in the target name field of the NTLM type 3 message.</param>
            <param name="username">The user account name.</param>
            <param name="password">The password for the user account.</param>
            <returns>The NTLMv2 hash for the specified input values.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if the username or
            the password parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses.GetTimestamp">
            <summary>
            Returns the current time as the number of tenths of a microsecond
            since January 1, 1601.
            </summary>
            <returns>The current time as the number of tenths of a microsecond
            since January 1, 1601.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses.CreateBlob(System.Byte[],System.Byte[])">
            <summary>
            Creates the "blob" data block which is part of the NTLMv2 challenge
            response.
            </summary>
            <param name="targetInformation">The target information block from
            the NTLM type 2 message.</param>
            <param name="clientNonce">A random 8-byte client nonce.</param>
            <returns>The blob, used in the calculation of the NTLMv2 Response.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Responses.LMv2Response(System.Byte[],System.Byte[],System.Byte[])">
            <summary>
            Creates the LMv2 Response from the given NTLMv2 hash, client data, and
            Type 2 challenge.
            </summary>
            <param name="hash">The NTLMv2 Hash.</param>
            <param name="clientData">The client data (blob or client nonce).</param>
            <param name="challenge">The server challenge from the Type 2 message.</param>
            <returns>The response which is either for NTLMv2 or LMv2, depending
            on the client data.</returns>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.SecurityBuffer">
            <summary>
            Represents an NTLM security buffer, which is a structure used to point
            to a buffer of binary data within an NTLM message.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.SecurityBuffer.#ctor(System.Int32,System.Int32)">
            <summary>
            Creates a new instance of the SecurityBuffer class using the specified
            values.
            </summary>
            <param name="length">The length of the buffer described by this instance
            of the SecurityBuffer class.</param>
            <param name="offset">The offset at which the buffer starts, in bytes.</param>
            <exception cref="T:System.OverflowException">Thrown if the length value exceeds
            the maximum value allowed. The security buffer structure stores the
            length value as a 2-byte short value.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.SecurityBuffer.#ctor(System.Byte[],System.Int32)">
            <summary>
            Creates a new instance of the SecurityBuffer class using the specified
            values.
            </summary>
            <param name="data">The data of the buffer described by this instance
            of the SecurityBuffer class.</param>
            <param name="offset">The offset at which the buffer starts, in bytes.</param>
            <exception cref="T:System.OverflowException">Thrown if the length of the data
            buffer exceeds the maximum value allowed. The security buffer structure
            stores the buffer length value as a 2-byte short value.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.SecurityBuffer.Serialize">
            <summary>
            Serializes this instance of the SecurityBuffer into an array of bytes.
            </summary>
            <returns>A byte array representing this instance of the SecurityBuffer
            class.</returns>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.SecurityBuffer.Length">
            <summary>
            The length of the buffer content in bytes (may be zero).
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.SecurityBuffer.AllocatedSpace">
            <summary>
            The allocated space for the buffer in bytes (typically the same as
            the length).
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.SecurityBuffer.Offset">
            <summary>
            The offset from the beginning of the NTLM message to the start of
            the buffer, in bytes.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type1Message">
            <summary>
            Represents an NTLM Type 1 Message.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type1Message.signature">
            <summary>
            The NTLM message signature which is always "NTLMSSP".
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type1Message.type">
            <summary>
            The NTML message type which is always 1 for an NTLM Type 1 message.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type1Message.#ctor(System.String,System.String)">
            <summary>
            Creates a new instance of the Type1Message class using the specified
            domain and workstation names.
            </summary>
            <param name="domain">The domain in which the client's workstation has
            membership.</param>
            <param name="workstation">The client's workstation name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if the domain or the
            workstation parameter is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the domain
            or the workstation name exceeds the maximum allowed string
            length.</exception>
            <remarks>The domain as well as the workstation name is restricted
            to ASCII characters and must not be longer than 65536 characters.
            </remarks>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type1Message.Serialize">
            <summary>
            Serializes this instance of the Type1 class to an array of bytes.
            </summary>
            <returns>An array of bytes representing this instance of the Type1
            class.</returns>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type1Message.Flags">
            <summary>
            The NTLM flags set on this instance.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type1Message.domain">
            <summary>
            The supplied domain name as an array of bytes in the ASCII
            range.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type1Message.domainOffset">
            <summary>
            The offset within the message where the domain name data starts.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type1Message.workstation">
            <summary>
            The supplied workstation name as an array of bytes in the
            ASCII range.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type1Message.workstationOffset">
            <summary>
            The offset within the message where the workstation name data starts.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type1Message.workstationLength">
            <summary>
            The length of the supplied workstation name as a 16-bit short value.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type1Message.OSVersion">
            <summary>
            Contains information about the client's OS version.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message">
            <summary>
            Represents an NTLM Type 2 Message.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.signature">
            <summary>
            The NTLM message signature which is always "NTLMSSP".
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.type">
            <summary>
            The NTML message type which is always 2 for an NTLM Type 2 message.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.#ctor">
            <summary>
            Private constructor.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.Deserialize(System.Byte[])">
            <summary>
            Deserializes a Type 2 message instance from the specified buffer
            of bytes.
            </summary>
            <param name="buffer">The buffer containing a sequence of bytes
            representing an NTLM Type 2 message.</param>
            <returns>An initialized instance of the Type2 class.</returns>
            <exception cref="T:System.Runtime.Serialization.SerializationException">Thrown if an error occurs
            during deserialization of the Type 2 message.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.GetType2Version(System.Int32)">
            <summary>
            Determines the version of an NTLM type 2 message.
            </summary>
            <param name="targetOffset">The target offset field of the NTLM
            type 2 message.</param>
            <returns>A value from the Type2Version enumeration.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.ReadOSVersion(System.IO.BinaryReader)">
            <summary>
            Reads the OS information data present in version 3 of an NTLM
            type 2 message from the specified BinaryReader.
            </summary>
            <param name="r">The BinaryReader instance to read from.</param>
            <returns>An initialized instance of the OSVersion class.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.ReadTargetInformation(System.IO.BinaryReader)">
            <summary>
            Reads the target information data present in version 2 and 3 of
            an NTLM type 2 message from the specified BinaryReader.
            </summary>
            <param name="r">The BinaryReader instance to read from.</param>
            <returns>An initialized instance of the Type2TargetInformation
            class.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.GetTargetName(System.Byte[],System.Boolean)">
            <summary>
            Retrieves the target name from the specified byte array.
            </summary>
            <param name="data">A byte array containing the target name.</param>
            <param name="isUnicode">If true the target name will be decoded
            using UTF-16 unicode encoding.</param>
            <returns></returns>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.Challenge">
            <summary>
            The challenge is an 8-byte block of random data.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.TargetName">
            <summary>
            The target name of the authentication target.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.Flags">
            <summary>
            The NTLM flags set on this message.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.Context">
            <summary>
            The SSPI context handle when a local call is being made,
            otherwise null.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.OSVersion">
            <summary>
            Contains the data present in the OS version structure.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.Version">
            <summary>
            The version of this Type 2 message instance.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.TargetInformation">
            <summary>
            Contains the data present in the target information block.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type2Message.RawTargetInformation">
            <summary>
            Contains the raw data present in the target information block.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message">
            <summary>
            Represents an NTLM Type 3 Message.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.signature">
            <summary>
            The NTLM message signature which is always "NTLMSSP".
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.type">
            <summary>
            The NTML message type which is always 3 for an NTLM Type 3 message.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.#ctor(System.String,System.String,System.Byte[],System.String,System.Boolean,System.String,System.Byte[])">
            <summary>
            Creates a new instance of an NTLM type 3 message using the specified
            values.
            </summary>
            <param name="username">The Windows account name to use for
            authentication.</param>
            <param name="password">The Windows account password to use for
            authentication.</param>
            <param name="challenge">The challenge received from the server as part
            of the NTLM type 2 message.</param>
            <param name="workstation">The client's workstation name.</param>
            <param name="ntlmv2">Set to true to send an NTLMv2 challenge
            response.</param>
            <param name="targetName">The authentication realm in which the
            authenticating account has membership.</param>
            <param name="targetInformation">The target information block from
            the NTLM type 2 message.</param>
            <remarks>The target name is a domain name for domain accounts, or
            a server name for local machine accounts. All security buffers will
            be encoded as Unicode.</remarks>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.#ctor(System.String,System.String,System.Byte[],System.Boolean,System.String,System.Boolean,System.String,System.Byte[])">
            <summary>
            Creates a new instance of an NTLM type 3 message using the specified
            values.
            </summary>
            <param name="username">The Windows account name to use for
            authentication.</param>
            <param name="password">The Windows account password to use for
            authentication.</param>
            <param name="challenge">The challenge received from the server as part
            of the NTLM type 2 message.</param>
            <param name="useUnicode">Set this to true, if Unicode encoding has been
            negotiated between client and server.</param>
            <param name="workstation">The client's workstation name.</param>
            <param name="ntlmv2">Set to true to send an NTLMv2 challenge
            response.</param> 
            <param name="targetName">The authentication realm in which the
            authenticating account has membership.</param>
            <param name="targetInformation">The target information block from
            the NTLM type 2 message.</param>
            <remarks>The target name is a domain name for domain accounts, or
            a server name for local machine accounts.</remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if the username, password
            or challenge parameters are null.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.Serialize">
            <summary>
            Serializes this instance of the Type3 class to an array of bytes.
            </summary>
            <returns>An array of bytes representing this instance of the Type3
            class.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.GetCNonce">
            <summary>
            Returns a random 8-byte cnonce value.
            </summary>
            <returns>A random 8-byte cnonce value.</returns>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.Flags">
            <summary>
            The NTLM flags set on this instance.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.LMResponse">
            <summary>
            The "Lan Manager" challenge response.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.LMOffset">
            <summary>
            The offset at which the LM challenge response data starts.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.NtlmResponse">
            <summary>
            The NTLM challenge response.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.NtlmOffset">
            <summary>
            The offset at which the NTLM challenge response data starts.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.targetName">
            <summary>
            The authentication realm in which the authenticating account
            has membership.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.targetOffset">
            <summary>
            The offset at which the target name data starts.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.username">
            <summary>
            The authenticating account name.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.usernameOffset">
            <summary>
            The offset at which the username data starts.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.workstation">
            <summary>
            The client workstation's name.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.workstationOffset">
            <summary>
            The offset at which the client workstation's name data starts.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.sessionKey">
            <summary>
            The session key value which is used by the session security mechanism
            during key exchange.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.sessionKeyOffset">
            <summary>
            The offset at which the session key data starts.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.OSVersion">
            <summary>
            Contains the data present in the OS version structure.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.Ntlm.Type3Message.encoding">
            <summary>
            The encoding used for transmitting the contents of the various
            security buffers.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.SaslCramMd5">
            <summary>
            Implements the Sasl Cram-Md5 authentication method as described in
            RFC 2195.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslCramMd5.#ctor">
            <summary>
            Private constructor for use with Sasl.SaslFactory.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslCramMd5.#ctor(System.String,System.String)">
            <summary>
            Creates and initializes a new instance of the SaslCramMd5 class
            using the specified username and password.
            </summary>
            <param name="username">The username to authenticate with.</param>
            <param name="password">The plaintext password to authenticate
            with.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if the username
            or the password parameter is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the username
            parameter is empty.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslCramMd5.ComputeResponse(System.Byte[])">
            <summary>
            Computes the client response to the specified Cram-Md5 challenge.
            </summary>
            <param name="challenge">The challenge sent by the server</param>
            <returns>The response to the Cram-Md5 challenge.</returns>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the response could not
            be computed.</exception>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslCramMd5.IsCompleted">
            <summary>
            True if the authentication exchange between client and server
            has been completed.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslCramMd5.Name">
            <summary>
            The IANA name for the Cram-Md5 authentication mechanism as described
            in RFC 2195.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslCramMd5.Username">
            <summary>
            The username to authenticate with.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslCramMd5.Password">
            <summary>
            The password to authenticate with.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5">
            <summary>
            Implements the Sasl Cram-Md5 authentication method as described in
            RFC 2831.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.Cnonce">
            <summary>
            The client nonce value used during authentication.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.Step">
            <summary>
            Cram-Md5 involves several steps.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.#ctor">
            <summary>
            Private constructor for use with Sasl.SaslFactory.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.#ctor(System.String,System.String,System.String)">
            <summary>
            Internal constructor used for unit testing.
            </summary>
            <param name="username">The username to authenticate with.</param>
            <param name="password">The plaintext password to authenticate
            with.</param>
            <param name="cnonce">The client nonce value to use.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if the username
            or the password parameter is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the username
            parameter is empty.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.#ctor(System.String,System.String)">
            <summary>
            Creates and initializes a new instance of the SaslDigestMd5 class
            using the specified username and password.
            </summary>
            <param name="username">The username to authenticate with.</param>
            <param name="password">The plaintext password to authenticate
            with.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if the username
            or the password parameter is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the username
            parameter is empty.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.ComputeResponse(System.Byte[])">
            <summary>
            Computes the client response to the specified Digest-Md5 challenge.
            </summary>
            <param name="challenge">The challenge sent by the server</param>
            <returns>The response to the Digest-Md5 challenge.</returns>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the response could not
            be computed.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.ParseDigestChallenge(System.String)">
            <summary>
            Parses the challenge string sent by the server in response to a Digest-Md5
            authentication request.
            </summary>
            <param name="challenge">The challenge sent by the server as part of
            "Step One" of the Digest-Md5 authentication mechanism.</param>
            <returns>An initialized NameValueCollection instance made up of the
            attribute/value pairs contained in the challenge.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if the challenge parameter
            is null.</exception>
            <remarks>Refer to RFC 2831 section 2.1.1 for a detailed description of the
            format of the challenge sent by the server.</remarks>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.ComputeDigestResponseValue(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.String,System.String)">
            <summary>
            Computes the "response-value" hex-string which is part of the
            Digest-MD5 challenge-response.
            </summary>
            <param name="challenge">A collection containing the attributes
            and values of the challenge sent by the server.</param>
            <param name="cnonce">The cnonce value to use for computing
            the response-value.</param>
            <param name="digestUri">The "digest-uri" string to use for
            computing the response-value.</param>
            <param name="username">The username to use for computing the
            response-value.</param>
            <param name="password">The password to use for computing the
            response-value.</param>
            <returns>A string containing a hash-value which is part of the
            response sent by the client.</returns>
            <remarks>Refer to RFC 2831, section 2.1.2.1 for a detailed
            description of the computation of the response-value.</remarks>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.MD5(System.String,System.Text.Encoding)">
            <summary>
            Calculates the MD5 hash value for the specified string.
            </summary>
            <param name="s">The string to calculate the MD5 hash value for.</param>
            <param name="encoding">The encoding to employ for encoding the
            characters in the specified string into a sequence of bytes for
            which the MD5 hash will be calculated.</param>
            <returns>An MD5 hash as a 32-character hex-string.</returns>
            <exception cref="T:System.ArgumentException">Thrown if the input string
            is null.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.Dquote(System.String)">
            <summary>
            Encloses the specified string in double-quotes.
            </summary>
            <param name="s">The string to enclose in double-quote characters.</param>
            <returns>The enclosed string.</returns>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.GenerateCnonce">
            <summary>
            Generates a random cnonce-value which is a "client-specified data string
            which must be different each time a digest-response is sent".
            </summary>
            <returns>A random "cnonce-value" string.</returns>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.IsCompleted">
            <summary>
            True if the authentication exchange between client and server
            has been completed.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.Name">
            <summary>
            The IANA name for the Digest-Md5 authentication mechanism as described
            in RFC 2195.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.Username">
            <summary>
            The username to authenticate with.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslDigestMd5.Password">
            <summary>
            The password to authenticate with.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlm">
            <summary>
            Implements the Sasl NTLM authentication method which is used in various
            Microsoft network protocol implementations.
            </summary>
            <remarks>Implemented with the help of the excellent documentation on
            NTLM composed by Eric Glass.</remarks>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlm.step">
            <summary>
            NTLM involves several steps.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlm.#ctor">
            <summary>
            Private constructor for use with Sasl.SaslFactory.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlm.#ctor(System.String,System.String)">
            <summary>
            Creates and initializes a new instance of the SaslNtlm class
            using the specified username and password.
            </summary>
            <param name="username">The username to authenticate with.</param>
            <param name="password">The plaintext password to authenticate
            with.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if the username
            or the password parameter is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the username
            parameter is empty.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlm.ComputeResponse(System.Byte[])">
            <summary>
            Computes the client response to the specified NTLM challenge.
            </summary>
            <param name="challenge">The challenge sent by the server</param>
            <returns>The response to the NTLM challenge.</returns>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the response could not
            be computed.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlm.ComputeInitialResponse(System.Byte[])">
            <summary>
            Computes the initial client response to an NTLM challenge.
            </summary>
            <param name="challenge">The challenge sent by the server. Since
            NTLM expects an initial client response, this will usually be
            empty.</param>
            <returns>The initial response to the NTLM challenge.</returns>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the response could not
            be computed.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlm.ComputeChallengeResponse(System.Byte[])">
            <summary>
            Computes the actual challenge response to an NTLM challenge
            which is sent as part of an NTLM type 2 message.
            </summary>
            <param name="challenge">The challenge sent by the server.</param>
            <returns>The response to the NTLM challenge.</returns>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the challenge
            response could not be computed.</exception>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlm.IsCompleted">
            <summary>
            True if the authentication exchange between client and server
            has been completed.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlm.Name">
            <summary>
            The IANA name for the NTLM authentication mechanism.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlm.Username">
            <summary>
            The username to authenticate with.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlm.Password">
            <summary>
            The password to authenticate with.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlmv2">
            <summary>
            Implements the Sasl NTLMv2 authentication method which addresses
            some of the security issues present in NTLM version 1.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlmv2.#ctor">
            <summary>
            Private constructor for use with Sasl.SaslFactory.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlmv2.#ctor(System.String,System.String)">
            <summary>
            Creates and initializes a new instance of the SaslNtlmv2 class
            using the specified username and password.
            </summary>
            <param name="username">The username to authenticate with.</param>
            <param name="password">The plaintext password to authenticate
            with.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if the username
            or the password parameter is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the username
            parameter is empty.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlmv2.ComputeResponse(System.Byte[])">
            <summary>
            Computes the client response to the specified NTLM challenge.
            </summary>
            <param name="challenge">The challenge sent by the server</param>
            <returns>The response to the NTLM challenge.</returns>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the response could not
            be computed.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslNtlmv2.ComputeChallengeResponse(System.Byte[])">
            <summary>
            Computes the actual challenge response to an NTLM challenge
            which is sent as part of an NTLM type 2 message.
            </summary>
            <param name="challenge">The challenge sent by the server.</param>
            <returns>The response to the NTLM challenge.</returns>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the challenge
            response could not be computed.</exception>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth">
            <summary>
            Implements the Sasl OAuth authentication method.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth.#ctor">
            <summary>
            Private constructor for use with Sasl.SaslFactory.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth.#ctor(System.String)">
            <summary>
            Creates and initializes a new instance of the SaslOAuth class
            using the specified username and password.
            </summary>
            <param name="accessToken">The username to authenticate with.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if the accessToken
            parameter is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the accessToken
            parameter is empty.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth.ComputeResponse(System.Byte[])">
            <summary>
            Computes the client response for a OAuth challenge.
            </summary>
            <param name="challenge">The challenge sent by the server.</param>
            <returns>The response to the OAuth challenge.</returns>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the response could not
            be computed.</exception>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth.IsCompleted">
            <summary>
            True if the authentication exchange between client and server
            has been completed.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth.Name">
            <summary>
            The IANA name for the OAuth authentication mechanism.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth.AccessToken">
            <summary>
            The access token to authenticate with.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth2">
            <summary>
            Implements the Sasl OAuth 2.0 authentication method.
            </summary>
        </member>
        <member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth2.Step">
            <summary>
            The server sends an error response in case authentication fails
            which must be acknowledged.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth2.#ctor">
            <summary>
            Private constructor for use with Sasl.SaslFactory.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth2.#ctor(System.String,System.String)">
            <summary>
            Creates and initializes a new instance of the SaslOAuth class
            using the specified username and password.
            </summary>
            <param name="username">The username to authenticate with.</param>
            <param name="accessToken">The username to authenticate with.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if the username
            or the accessToken parameter is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the username or
            the accessToken parameter is empty.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth2.ComputeResponse(System.Byte[])">
            <summary>
            Computes the client response to an XOAUTH2 challenge.
            </summary>
            <param name="challenge">The challenge sent by the server.</param>
            <returns>The response to the OAuth2 challenge.</returns>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the response could not
            be computed.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth2.ComputeInitialResponse(System.Byte[])">
            <summary>
            Computes the initial client response to an XOAUTH2 challenge.
            </summary>
            <param name="challenge">The challenge sent by the server.</param>
            <returns>The response to the OAuth2 challenge.</returns>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the response could not
            be computed.</exception>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth2.IsCompleted">
            <summary>
            True if the authentication exchange between client and server
            has been completed.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth2.Name">
            <summary>
            The IANA name for the OAuth 2.0 authentication mechanism.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth2.Username">
            <summary>
            The username to authenticate with.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslOAuth2.AccessToken">
            <summary>
            The access token to authenticate with.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.Mechanisms.SaslPlain">
            <summary>
            Implements the Sasl Plain authentication method as described in
            RFC 4616.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslPlain.#ctor">
            <summary>
            Private constructor for use with Sasl.SaslFactory.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslPlain.#ctor(System.String,System.String)">
            <summary>
            Creates and initializes a new instance of the SaslPlain class
            using the specified username and password.
            </summary>
            <param name="username">The username to authenticate with.</param>
            <param name="password">The plaintext password to authenticate
            with.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if the username
            or the password parameter is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the username
            parameter is empty.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslPlain.ComputeResponse(System.Byte[])">
            <summary>
            Computes the client response for a plain-challenge.
            </summary>
            <param name="challenge">The challenge sent by the server. For the
            "plain" mechanism this will usually be empty.</param>
            <returns>The response for the "plain"-challenge.</returns>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the response could not
            be computed.</exception>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslPlain.IsCompleted">
            <summary>
            True if the authentication exchange between client and server
            has been completed.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslPlain.Name">
            <summary>
            The IANA name for the Plain authentication mechanism as described
            in RFC 4616.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslPlain.Username">
            <summary>
            The username to authenticate with.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslPlain.Password">
            <summary>
            The plain-text password to authenticate with.
            </summary>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.SaslException">
            <summary>
            The exception is thrown when a Sasl-related error or unexpected condition occurs.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.SaslException.#ctor">
            <summary>
            Initializes a new instance of the SaslException class
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.SaslException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the SaslException class with its message
            string set to <paramref name="message"/>.
            </summary>
            <param name="message">A description of the error. The content of message is intended
            to be understood by humans.</param>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.SaslException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the SaslException class with its message
            string set to <paramref name="message"/> and a reference to the inner exception that
            is the cause of this exception.
            </summary>
            <param name="message">A description of the error. The content of message is intended
            to be understood by humans.</param>
            <param name="inner">The exception that is the cause of the current exception.</param>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.SaslException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the SaslException class with the specified
            serialization and context information.
            </summary>
            <param name="info">An object that holds the serialized object data about the exception
            being thrown. </param>
            <param name="context">An object that contains contextual information about the source
            or destination. </param>
        </member>
        <member name="T:S22.Imap.Auth.Sasl.SaslFactory">
            <summary>
            A factory class for producing instances of Sasl mechanisms.
            </summary>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.SaslFactory.Create(System.String)">
            <summary>
            Creates an instance of the Sasl mechanism with the specified
            name.
            </summary>
            <param name="name">The name of the Sasl mechanism of which an
            instance will be created.</param>
            <returns>An instance of the Sasl mechanism with the specified name.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if the name parameter
            is null.</exception>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the Sasl mechanism with the
            specified name is not registered with Sasl.SaslFactory.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.SaslFactory.Add(System.String,System.Type)">
            <summary>
            Registers a Sasl mechanism with the factory using the specified name.
            </summary>
            <param name="name">The name with which to register the Sasl mechanism
            with the factory class.</param>
            <param name="t">The type of the class implementing the Sasl mechanism.
            The implementing class must be a subclass of Sasl.SaslMechanism.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if the name or the t
            parameter is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the class represented
            by the specified type does not derive from Sasl.SaslMechanism.</exception>
            <exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the Sasl mechanism could not
            be registered with the factory. Refer to the inner exception for error
            details.</exception>
        </member>
        <member name="M:S22.Imap.Auth.Sasl.SaslFactory.#cctor">
            <summary>
            Static class constructor. Initializes static properties.
            </summary>
        </member>
        <member name="P:S22.Imap.Auth.Sasl.SaslFactory.Mechanisms">
            <summary>
            A dictionary of Sasl mechanisms registered with the factory class.
            </summary>
        </member>
        <member name="T:S22.Imap.SearchCondition">
            <summary>
            Represents chainable search conditions that can be used with the Search method.
            </summary>
        </member>
        <member name="M:S22.Imap.SearchCondition.All">
            <summary>
            Finds all messages in the mailbox.
            </summary>
            <returns>A SearchCondition object representing the "all" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Text(System.String)">
            <summary>
            Finds messages that contain the specified string in the header or body of the message.
            </summary>
            <param name="text">String to search messages for.</param>
            <returns>A SearchCondition object representing the "text" search criterion.</returns>
            <exception cref="T:System.ArgumentNullException">The text parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.SearchCondition.BCC(System.String)">
            <summary>
            Finds messages that contain the specified string in the envelope structure's BCC field.
            </summary>
            <param name="text">String to search the envelope structure's BCC field for.</param>
            <returns>A SearchCondition object representing the "BCC" search criterion.</returns>
            <exception cref="T:System.ArgumentNullException">The text parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.SearchCondition.Before(System.DateTime)">
            <summary>
            Finds messages whose internal date (disregarding time and timezone) is earlier than the
            specified date.
            </summary>
            <param name="date">The date to compare the message's internal date with.</param>
            <returns>A SearchCondition object representing the "Before" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Body(System.String)">
            <summary>
            Finds messages that contain the specified string in the body of the message.
            </summary>
            <param name="text">String to search the message body for.</param>
            <returns>A SearchCondition object representing the "Body" search criterion.</returns>
            <exception cref="T:System.ArgumentNullException">The text parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.SearchCondition.Cc(System.String)">
            <summary>
            Finds messages that contain the specified string in the envelope structure's CC field.
            </summary>
            <param name="text">String to search the envelope structure's CC field for.</param>
            <returns>A SearchCondition object representing the "CC" search criterion.</returns>
            <exception cref="T:System.ArgumentNullException">The text parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.SearchCondition.From(System.String)">
            <summary>
            Finds messages that contain the specified string in the envelope structure's FROM field.
            </summary>
            <param name="text">String to search the envelope structure's FROM field for.</param>
            <returns>A SearchCondition object representing the "FROM" search criterion.</returns>
            <exception cref="T:System.ArgumentNullException">The text parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.SearchCondition.Header(System.String,System.String)">
            <summary>
            Finds messages that have a header with the specified field-name and that contains the
            specified string in the text of the header.
            </summary>
            <param name="name">field-name of the header to search for.</param>
            <param name="text">String to search for in the text of the header.</param>
            <returns>A SearchCondition object representing the "HEADER" search criterion.</returns>
            <remarks>
            If the string to search is zero-length, this matches all messages that have a header line
            with the specified field-name regardless of the contents.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The name parameter or the text parameter is
            null.</exception>
        </member>
        <member name="M:S22.Imap.SearchCondition.Keyword(System.String)">
            <summary>
            Finds messages with the specified keyword flag set.
            </summary>
            <param name="text">The keyword flag to search for.</param>
            <returns>A SearchCondition object representing the "KEYWORD" search criterion.</returns>
            <exception cref="T:System.ArgumentNullException">The text parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.SearchCondition.Larger(System.Int64)">
            <summary>
            Finds messages with a size larger than the specified number of bytes.
            </summary>
            <param name="size">Minimum size, in bytes a message must have to be included in the search
            result.</param>
            <returns>A SearchCondition object representing the "LARGER" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Smaller(System.Int64)">
            <summary>
            Finds messages with a size smaller than the specified number of bytes.
            </summary>
            <param name="size">Maximum size, in bytes a message must have to be included in the search
            result.</param>
            <returns>A SearchCondition object representing the "SMALLER" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.SentBefore(System.DateTime)">
            <summary>
            Finds messages whose Date: header (disregarding time and timezone) is earlier than the
            specified date.
            </summary>
            <param name="date">The date to compare the Date: header field with.</param>
            <returns>A SearchCondition object representing the "SENTBEFORE" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.SentOn(System.DateTime)">
            <summary>
            Finds messages whose Date: header (disregarding time and timezone) is within the specified
            date.
            </summary>
            <param name="date">The date to compare the Date: header field with.</param>
            <returns>A SearchCondition object representing the "SENTON" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.SentSince(System.DateTime)">
            <summary>
            Finds messages whose Date: header (disregarding time and timezone) is within or later than
            the specified date.
            </summary>
            <param name="date">The date to compare the Date: header field with.</param>
            <returns>A SearchCondition object representing the "SENTSINCE" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Subject(System.String)">
            <summary>
            Finds messages that contain the specified string in the envelope structure's SUBJECT field.
            </summary>
            <param name="text">String to search the envelope structure's SUBJECT field for.</param>
            <returns>A SearchCondition object representing the "SUBJECT" search criterion.</returns>
            <exception cref="T:System.ArgumentNullException">The text parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.SearchCondition.To(System.String)">
            <summary>
            Finds messages that contain the specified string in the envelope structure's TO field.
            </summary>
            <param name="text">String to search the envelope structure's TO field for.</param>
            <returns>A SearchCondition object representing the "TO" search criterion.</returns>
            <exception cref="T:System.ArgumentNullException">The text parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.SearchCondition.UID(System.UInt32[])">
            <summary>
            Finds messages with unique identifiers corresponding to the specified unique identifier set.
            </summary>
            <param name="uids">One or several unique identifiers (UID).</param>
            <returns>A SearchCondition object representing the "UID" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.GreaterThan(System.UInt32)">
            <summary>
            Finds messages with a unique identifier greater than the specified unique identifier.
            </summary>
            <param name="uid">A unique identifier (UID).</param>
            <returns>A SearchCondition object representing the "UID" search criterion.</returns>
            <remarks>
            Because of the nature of the IMAP search mechanism, the result set will always contain the
            UID of the last message in the mailbox, even if said UID is smaller than the UID specified.
            </remarks>
        </member>
        <member name="M:S22.Imap.SearchCondition.LessThan(System.UInt32)">
            <summary>
            Finds messages with a unique identifier less than the specified unique identifier.
            </summary>
            <param name="uid">A unique identifier (UID).</param>
            <returns>A SearchCondition object representing the "UID" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Unkeyword(System.String)">
            <summary>
            Finds messages that do not have the specified keyword flag set.
            </summary>
            <param name="text">The IMAP keyword flag to search for.</param>
            <returns>A SearchCondition object representing the "UNKEYWORD" search criterion.</returns>
            <exception cref="T:System.ArgumentNullException">The text parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.SearchCondition.Answered">
            <summary>
            Finds messages that have the \Answered flag set.
            </summary>
            <returns>A SearchCondition object representing the "ANSWERED" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Deleted">
            <summary>
            Finds messages that have the \Deleted flag set.
            </summary>
            <returns>A SearchCondition object representing the "DELETED" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Draft">
            <summary>
            Finds messages that have the \Draft flag set.
            </summary>
            <returns>A SearchCondition object representing the "DRAFT" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Flagged">
            <summary>
            Finds messages that have the \Flagged flag set.
            </summary>
            <returns>A SearchCondition object representing the "FLAGGED" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.New">
            <summary>
            Finds messages that have the \Recent flag set but not the \Seen flag.
            </summary>
            <returns>A SearchCondition object representing the "NEW" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Old">
            <summary>
            Finds messages that do not have the \Recent flag set.
            </summary>
            <returns>A SearchCondition object representing the "OLD" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Recent">
            <summary>
            Finds messages that have the \Recent flag set.
            </summary>
            <returns>A SearchCondition object representing the "RECENT" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Seen">
            <summary>
            Finds messages that have the \Seen flag set.
            </summary>
            <returns>A SearchCondition object representing the "SEEN" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Unanswered">
            <summary>
            Finds messages that do not have the \Answered flag set.
            </summary>
            <returns>A SearchCondition object representing the "UNANSWERED" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Undeleted">
            <summary>
            Finds messages that do not have the \Deleted flag set.
            </summary>
            <returns>A SearchCondition object representing the "UNDELETED" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Undraft">
            <summary>
            Finds messages that do not have the \Draft flag set.
            </summary>
            <returns>A SearchCondition object representing the "UNDRAFT" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Unflagged">
            <summary>
            Finds messages that do not have the \Flagged flag set.
            </summary>
            <returns>A SearchCondition object representing the "UNFLAGGED" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Unseen">
            <summary>
            Finds messages that do not have the \Seen flag set.
            </summary>
            <returns>A SearchCondition object representing the "UNSEEN" search criterion.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.And(S22.Imap.SearchCondition)">
            <summary>
            Logically ANDs multiple search conditions, meaning a message will only be included in the
            search result if both of the ANDed conditions are met.
            </summary>
            <param name="other">A search condition to logically AND this SearchCondition instance
            with.</param>
            <returns>A new SearchCondition instance which can be further chained with other search
            conditions.</returns>
            <exception cref="T:System.ArgumentNullException">The other parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.SearchCondition.Not(S22.Imap.SearchCondition)">
            <summary>
            Logically negates search conditions, meaning a message will only be included in the search
            result if the specified conditions are not met.
            </summary>
            <param name="other">A search condition that must not be met by a message for it to be
            included in the search result set.</param>
            <returns>A new SearchCondition instance which can be further chained with other search
            conditions.</returns>
            <exception cref="T:System.ArgumentNullException">The other parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.SearchCondition.Or(S22.Imap.SearchCondition)">
            <summary>
            Logically ORs multiple search conditions, meaning a message will be included in the search
            result if it meets at least either of the conditions.
            </summary>
            <param name="other">A search condition to logically OR this SearchCondition instance
            with.</param>
            <returns>A new SearchCondition instance which can be further chained with other search
            conditions.</returns>
            <exception cref="T:System.ArgumentNullException">The other parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.SearchCondition.Join(System.String,S22.Imap.SearchCondition,S22.Imap.SearchCondition)">
            <summary>
            Joins two SearchCondition objects into a new one using the specified logical operator.
            </summary>
            <param name="condition">The logical operator to use for joining the search conditions.
            Possible values are "OR", "NOT" and the empty string "" which denotes a logical AND.</param>
            <param name="left">The first SearchCondition object</param>
            <param name="right">The second SearchCondition object</param>
            <returns>A new SearchCondition object representing the two search conditions joined by the
            specified logical operator.</returns>
        </member>
        <member name="M:S22.Imap.SearchCondition.Join``1(System.String,System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Concatenates the members of a collection, using the specified separator between each
            member.
            </summary>
            <typeparam name="T">The type of the members of values.</typeparam>
            <param name="seperator">The string to use as a separator.</param>
            <param name="values">A collection that contains the objects to concatenate.</param>
            <returns>A string that consists of the members of values delimited by the separator
            string. If values has no members, the method returns System.String.Empty.</returns>
            <exception cref="T:System.ArgumentNullException">The values parameter is null.</exception>
            <remarks>This is already part of the String class in .NET 4.0 and newer but is needed
            for backwards compatibility with .NET 3.5.</remarks>
        </member>
        <member name="M:S22.Imap.SearchCondition.ToString">
            <summary>
            Constructs a string from the SearchCondition object using the proper syntax as is required
            for the IMAP SEARCH command.
            </summary>
            <returns>A string representing this SearchCondition instance that can be used with the IMAP
            SEARCH command.</returns>
        </member>
        <member name="T:S22.Imap.SearchCondition.Fields">
            <summary>
            The search keys which can be used with the IMAP SEARCH command, as are defined in section
            6.4.4 of RFC 3501.
            </summary>
        </member>
        <member name="T:S22.Imap.Util">
            <summary>
            A static utility class containing methods for decoding encoded non-ASCII data as well as
            extension methods for some classes of the base class library.
            </summary>
        </member>
        <member name="M:S22.Imap.Util.QuoteString(System.String)">
            <summary>
            Returns a copy of the string enclosed in double-quotes and with escaped CRLF, back-slash
            and double-quote characters (as is expected by some commands of the IMAP protocol).
            </summary>
            <param name="value">Extends the System.String class</param>
            <returns>A copy of the string enclosed in double-quotes and properly escaped as is required
            by the IMAP protocol.</returns>
        </member>
        <member name="M:S22.Imap.Util.IsASCII(System.String)">
            <summary>
            Returns true if the string contains only ASCII characters.
            </summary>
            <param name="s">Extension method for the String class.</param>
            <returns>true if the string contains only ASCII characters; Otherwise false.</returns>
        </member>
        <member name="M:S22.Imap.Util.ToChunks(System.String,System.Int32)">
            <summary>
            Splits a string into chunks of the specified number of characters.
            </summary>
            <param name="str">Extension method for the String class.</param>
            <param name="characters">The length of a chunk, measured in characters.</param>
            <returns>An array of string chunks.</returns>
        </member>
        <member name="M:S22.Imap.Util.Contains(System.String,System.String,System.StringComparison)">
            <summary>
            Determines whether the specified string occurs within this string.
            </summary>
            <param name="str">Extension method for the String class.</param>
            <param name="value">The string to seek.</param>
            <param name="comparer">One of the enumeration values that specifies the rules for the
            search.</param>
            <returns>true if the value parameter occurs within this string, or if value is the empty
            string (""); otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException">The value parameter is null.</exception>
        </member>
        <member name="M:S22.Imap.Util.Raise``1(System.EventHandler{``0},System.Object,``0)">
            <summary>
            Raises the event. Ensures the event is only raised, if it is not null.
            </summary>
            <typeparam name="T">Extends System.EventHandler class.</typeparam>
            <param name="event">Extends System.EventHandler class.</param>
            <param name="sender">The sender of the event.</param>
            <param name="args">The event arguments associated with this event.</param>
        </member>
        <member name="M:S22.Imap.Util.ThrowIfNull``1(``0,System.String)">
            <summary>
            Throws an ArgumentNullException if the given data item is null.
            </summary>
            <param name="data">The item to check for nullity.</param>
            <param name="name">The name to use when throwing an exception, if necessary.</param>
            <remarks>Courtesy of Jon Skeet.</remarks>
        </member>
        <member name="M:S22.Imap.Util.ThrowIfNull``1(``0)">
            <summary>
            Throws an ArgumentNullException if the given data item is null.
            </summary>
            <param name="data">The item to check for nullity.</param>
            <remarks>Courtesy of Jon Skeet.</remarks>
        </member>
        <member name="M:S22.Imap.Util.ThrowIfNullOrEmpty(System.String)">
            <summary>
            Throws an ArgumentNullException if the given string is null or throws an ArgumentException
            if the given string is empty.
            </summary>
            <param name="s">The string to check for nullity and emptiness.</param>
        </member>
        <member name="M:S22.Imap.Util.ThrowIfNullOrEmpty(System.String,System.String)">
            <summary>
            Throws an ArgumentNullException if the given string is null or throws an ArgumentException
            if the given string is empty.
            </summary>
            <param name="s">The string to check for nullity and emptiness.</param>
            <param name="name">The name to use when throwing an exception, if necessary.</param>
        </member>
        <member name="M:S22.Imap.Util.ReadUInt16(System.IO.BinaryReader,System.Boolean)">
            <summary>
            Reads an unsigned short value from the underlying stream, optionally using big-endian byte
            ordering.
            </summary>
            <param name="reader">Extension method for BinaryReader.</param>
            <param name="bigEndian">Set to true to interpret the short value as big endian value.</param>
            <returns>The 16-byte unsigned short value read from the underlying stream.</returns>
        </member>
        <member name="M:S22.Imap.Util.DecodeWords(System.String)">
            <summary>
            Decodes a string composed of one or several MIME 'encoded-words'.
            </summary>
            <param name="words">A string to composed of one or several MIME 'encoded-words'.</param>
            <exception cref="T:System.FormatException">An unknown encoding (other than Q-Encoding or Base64) is
            encountered.</exception>
            <returns>A concatenation of all enconded-words in the passed string</returns>
        </member>
        <member name="M:S22.Imap.Util.HandleFillData(System.Text.StringBuilder,System.String)">
            <summary>
            Internal function reuse to add separation between multiple 'encoded-word's correctly.
            </summary>
        </member>
        <member name="F:S22.Imap.Util.rxDecodeWord">
            <summary>
            The regular expression for matching encoded-words. This also accounts for the extension for
            including language information (as defined in RFC2231).
            </summary>
        </member>
        <member name="M:S22.Imap.Util.DecodeWord(System.String)">
            <summary>
            Decodes a MIME 'encoded-word' string.
            </summary>
            <param name="word">The encoded word to decode</param>
            <exception cref="T:System.FormatException">An unknown encoding (other than Q-Encoding or Base64) is
            encountered.</exception>
            <returns>A decoded string</returns>
            <remarks>MIME encoded-word syntax is a way to encode strings that contain non-ASCII data.
            Commonly used encodings for the encoded-word sytax are Q-Encoding and Base64. For an
            in-depth description, refer to RFC 2047.</remarks>
        </member>
        <member name="M:S22.Imap.Util.QDecode(System.String,System.Text.Encoding)">
            <summary>
            Takes a Q-encoded string and decodes it using the specified encoding.
            </summary>
            <param name="value">The Q-encoded string to decode.</param>
            <param name="encoding">The encoding to use for encoding the returned string.</param>
            <exception cref="T:System.FormatException">The string is not a valid Q-encoded string.</exception>
            <returns>The Q-decoded string.</returns>
        </member>
        <member name="M:S22.Imap.Util.QPDecode(System.String,System.Text.Encoding)">
            <summary>
            Takes a quoted-printable encoded string and decodes it using the specified encoding.
            </summary>
            <param name="value">The quoted-printable-encoded string to decode.</param>
            <param name="encoding">The encoding to use for encoding the returned string.</param>
            <exception cref="T:System.FormatException">The string is not a valid quoted-printable encoded
            string.</exception>
            <returns>A quoted-printable decoded string.</returns>
        </member>
        <member name="M:S22.Imap.Util.Rfc2231Decode(System.String)">
            <summary>
            Decodes the specified MIME parameter value.
            </summary>
            <param name="value">The MIME parameter value to decode.</param>
            <returns>The decoded MIME parameter value.</returns>
            <exception cref="T:System.FormatException">The specified value is not a valid Rfc2231-encoded
            string.</exception>
            <remarks>Refer to RFC2231 for the details of the encoding mechanism.</remarks>
        </member>
        <member name="M:S22.Imap.Util.Base64Decode(System.String)">
            <summary>
            Takes a Base64-encoded string and decodes it.
            </summary>
            <param name="value">The Base64-encoded string to decode.</param>
            <returns>A byte array containing the Base64-decoded bytes of the input string.</returns>
            <exception cref="T:System.ArgumentNullException">The value parameter is null.</exception>
            <exception cref="T:System.FormatException">The length of value, ignoring white-space
            characters, is not zero or a multiple of 4, or the format of value is invalid, or the value
            contains a non-base-64 character, more than two padding characters, or a non-white
            space-character among the padding characters.</exception>
        </member>
        <member name="M:S22.Imap.Util.UTF7Encode(System.String)">
            <summary>
            Takes a UTF-16 encoded string and encodes it as modified UTF-7.
            </summary>
            <param name="s">The string to encode.</param>
            <returns>A UTF-7 encoded string</returns>
            <remarks>IMAP uses a modified version of UTF-7 for encoding international mailbox names. For
            details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention).</remarks>
        </member>
        <member name="M:S22.Imap.Util.UTF7Decode(System.String)">
            <summary>
            Takes a modified UTF-7 encoded string and decodes it.
            </summary>
            <param name="s">The UTF-7 encoded string to decode.</param>
            <returns>A UTF-16 encoded "standard" C# string</returns>
            <exception cref="T:System.FormatException">The input string is not a properly UTF-7 encoded
            string.</exception>
            <remarks>IMAP uses a modified version of UTF-7 for encoding international mailbox names. For
            details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention).</remarks>
        </member>
        <member name="M:S22.Imap.Util.GetEncoding(System.String)">
            <summary>
            This just wraps Encoding.GetEncoding in a try-catch block to ensure it never fails. If the
            encoding can not be determined ASCII is returned as a default.
            </summary>
            <param name="name">The code page name of the preferred encoding. Any value returned by
            System.Text.Encoding.WebName is a valid input.</param>
            <returns>The System.Text.Encoding associated with the specified code page or Encoding.ASCII
            if the specified code page could not be resolved.</returns>
        </member>
        <member name="M:S22.Imap.Util.BuildSequenceSet(System.Collections.Generic.IEnumerable{System.UInt32})">
            <summary>
            Converts the specified enumerable collection of UIDs into an IMAP sequence-set.
            </summary>
            <param name="uids">An enumerable collection of UIDs.</param>
            <returns>An IMAP sequence-set suitable for use with IMAP commands.</returns>
            <exception cref="T:System.ArgumentNullException">The uids parameter is null.</exception>
            <exception cref="T:System.ArgumentException">The specified collection of UIDs is empty.</exception>
            <remarks> Refer to RFC3501, 9.Formal Syntax "sequence-set" for a description of IMAP
            sequence-sets.</remarks>
        </member>
    </members>
</doc>
