2019-04-12 10:57:04 +02:00

7179 lines
386 KiB
XML

<?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.Auth.Sasl.Mechanisms.SaslSrp">
<summary>
Implements the Sasl Secure Remote Password (SRP) authentication
mechanism as is described in the IETF SRP 08 draft.
</summary>
<remarks>
This requires .NET Framework 4 because it makes use of the System.Numeric namespace
which has only been part of .NET since version 4.
Some notes:
- Don't bother with the example given in the IETF 08 draft
document (7.5 Example); It is broken.
- Integrity and confidentiality protection is not implemented.
In fact, the "mandatory"-option is not supported at all.
</remarks>
</member>
<member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.Step">
<summary>
SRP involves several steps.
</summary>
</member>
<member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.HashAlgorithm">
<summary>
The negotiated hash algorithm which will be used to perform any
message digest calculations.
</summary>
</member>
<member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.PublicKey">
<summary>
The public key computed as part of the authentication exchange.
</summary>
</member>
<member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.PrivateKey">
<summary>
The client's private key used for calculating the client evidence.
</summary>
</member>
<member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.SharedKey">
<summary>
The secret key shared between client and server.
</summary>
</member>
<member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.ClientProof">
<summary>
The client evidence calculated as part of the authentication exchange.
</summary>
</member>
<member name="F:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.Options">
<summary>
The options chosen by the client, picked from the list of options
advertised by the server.
</summary>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.#ctor">
<summary>
Private constructor for use with Sasl.SaslFactory.
</summary>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.#ctor(System.String,System.String,System.Byte[])">
<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="privateKey">The client private key 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.SaslSrp.#ctor(System.String,System.String)">
<summary>
Creates and initializes a new instance of the SaslSrp 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.SaslSrp.ComputeResponse(System.Byte[])">
<summary>
Computes the client response to the specified SRP challenge.
</summary>
<param name="challenge">The challenge sent by the server</param>
<returns>The response to the SRP 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.SaslSrp.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.SaslSrp.ComputeFinalResponse(System.Byte[])">
<summary>
Computes the client response containing the client's public key and
evidence.
</summary>
<param name="challenge">The challenge containing the protocol elements
received from the server in response to the initial client
response.</param>
<returns>An array of bytes containing the client's challenge
response.</returns>
<exception cref="T:S22.Imap.Auth.Sasl.SaslException">Thrown if the server specified any
mandatory options which are not supported.</exception>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.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.SaslSrp.SelectHashAlgorithm(System.String)">
<summary>
Selects a message digest algorithm from the specified list of
supported algorithms.
</summary>
<returns>A tuple containing the name of the selected message digest
algorithm as well as the type.</returns>
<exception cref="T:System.NotSupportedException">Thrown if none of the algorithms
specified in the list parameter is supported.</exception>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.IsCompleted">
<summary>
True if the authentication exchange between client and server
has been completed.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.Name">
<summary>
The IANA name for the SRP authentication mechanism.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.Username">
<summary>
The username to authenticate with.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.Password">
<summary>
The password to authenticate with.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.SaslSrp.AuthId">
<summary>
The authorization id (userid in draft jargon).
</summary>
</member>
<member name="T:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage1">
<summary>
Represents the initial client-response sent to the server to initiate
the authentication exchange.
</summary>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage1.#ctor(System.String,System.String)">
<summary>
Creates a new instance of the ClientMessage1 class using the specified
username.
</summary>
<param name="username">The username to authenticate with.</param>
<param name="authId">The authorization id to authenticate with.</param>
<exception cref="T:System.ArgumentNullException">Thrown if the username parameter
is null.</exception>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage1.Serialize">
<summary>
Serializes this instance of the ClientMessage1 class into a sequence of
bytes according to the requirements of the SRP specification.
</summary>
<returns>A sequence of bytes representing this instance of the
ClientMessage1 class.</returns>
<exception cref="T:System.OverflowException">Thrown if the cummultative length
of the serialized data fields exceeds the maximum number of bytes
allowed as per SRP specification.</exception>
<remarks>SRP specification imposes a limit of 2,147,483,643 bytes on
the serialized data.</remarks>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage1.Username">
<summary>
The username to authenticate with.
</summary>
<remarks>SRP specification imposes a limit of 65535 bytes
on this field.</remarks>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage1.AuthId">
<summary>
The authorization identity to authenticate with.
</summary>
<remarks>SRP specification imposes a limit of 65535 bytes
on this field.</remarks>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage1.SessionId">
<summary>
The session identifier of a previous session whose parameters the
client wishes to re-use.
</summary>
<remarks>SRP specification imposes a limit of 65535 bytes
on this field. If the client wishes to initialize a new session,
this parameter must be set to the empty string.</remarks>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage1.ClientNonce">
<summary>
The client's nonce used in deriving a new shared context key from
the shared context key of the previous session.
</summary>
<remarks>SRP specification imposes a limit of 255 bytes on this
field. If not needed, it must be set to an empty byte array.</remarks>
</member>
<member name="T:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage2">
<summary>
Represents the second client-response sent to the server as part of
the SRP authentication exchange.
</summary>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage2.#ctor">
<summary>
Creates and initializes a new instance of the ClientMessage2 class.
</summary>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage2.#ctor(S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,System.Byte[])">
<summary>
Creates and initializes a new instance of the ClientMessage2 class using
the specified public key and client proof.
</summary>
<param name="publicKey">The client's public key.</param>
<param name="proof">The calculated client proof.</param>
<exception cref="T:System.ArgumentNullException">Thrown if either the public key
or the proof parameter is null.</exception>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage2.Serialize">
<summary>
Serializes this instance of the ClientMessage2 class into a sequence of
bytes according to the requirements of the SRP specification.
</summary>
<returns>A sequence of bytes representing this instance of the
ClientMessage2 class.</returns>
<exception cref="T:System.OverflowException">Thrown if the cummultative length
of the serialized data fields exceeds the maximum number of bytes
allowed as per SRP specification.</exception>
<remarks>SRP specification imposes a limit of 2,147,483,643 bytes on
the serialized data.</remarks>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage2.BuildOptionsString">
<summary>
Serializes the client's options collection into a comma-seperated
options string.
</summary>
<returns>A comma-seperated string containing the client's chosen
options.</returns>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage2.PublicKey">
<summary>
The client's ephemeral public key.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage2.Proof">
<summary>
The evidence which proves to the server client-knowledge of the shared
context key.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage2.Options">
<summary>
The options list indicating the security services chosen by the client.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ClientMessage2.InitialVector">
<summary>
The initial vector the server will use to set up its encryption
context, if confidentiality protection will be employed.
</summary>
</member>
<member name="T:S22.Imap.Auth.Sasl.Mechanisms.Srp.BinaryReaderExtensions">
<summary>
Adds extension methods to the BinaryReader class to simplify the
deserialization of SRP messages.
</summary>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.BinaryReaderExtensions.ReadUInt32(System.IO.BinaryReader,System.Boolean)">
<summary>
Reads an unsigned integer 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 integer value
as big endian value.</param>
<returns>The 32-byte unsigned integer value read from the underlying
stream.</returns>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.BinaryReaderExtensions.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.Auth.Sasl.Mechanisms.Srp.BinaryReaderExtensions.ReadMpi(System.IO.BinaryReader)">
<summary>
Reads a "multi-precision integer" from this instance.
</summary>
<param name="reader">Extension method for the BinaryReader class.</param>
<returns>An instance of the Mpi class decoded from the bytes read
from the underlying stream.</returns>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.BinaryReaderExtensions.ReadOs(System.IO.BinaryReader)">
<summary>
Reads an "octet-sequence" from this instance.
</summary>
<param name="reader">Extension method for the BinaryReader class.</param>
<returns>An instance of the OctetSequence class decoded from the bytes
read from the underlying stream.</returns>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.BinaryReaderExtensions.ReadUtf8String(System.IO.BinaryReader)">
<summary>
Reads an UTF-8 string from this instance.
</summary>
<param name="reader">Extension method for the BinaryReader class.</param>
<returns>An instance of the Utf8String class decoded from the bytes
read from the underlying stream.</returns>
</member>
<member name="T:S22.Imap.Auth.Sasl.Mechanisms.Srp.Helper">
<summary>
Contains helper methods for calculating the various components of the
SRP authentication exchange.
</summary>
</member>
<member name="F:S22.Imap.Auth.Sasl.Mechanisms.Srp.Helper.ts">
<summary>
The trace source used for informational and debug messages.
</summary>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Helper.IsValidModulus(S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi)">
<summary>
Determines whether the specified modulus is valid.
</summary>
<param name="N">The modulus to validate.</param>
<returns>True if the specified modulus is valid, otherwise
false.</returns>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Helper.IsValidGenerator(S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi)">
<summary>
Determines whether the specified generator is valid.
</summary>
<param name="g">The generator to validate.</param>
<returns>True if the specified generator is valid, otherwise
false.</returns>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Helper.GenerateClientPrivateKey">
<summary>
Generates a random "multi-precision integer" which will act as the
client's private key.
</summary>
<returns>The client's ephemeral private key as a "multi-precision
integer".</returns>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Helper.ComputeClientPublicKey(S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi)">
<summary>
Calculates the client's ephemeral public key.
</summary>
<param name="generator">The generator sent by the server.</param>
<param name="safePrimeModulus">The safe prime modulus sent by
the server.</param>
<param name="privateKey">The client's private key.</param>
<returns>The client's ephemeral public key as a
"multi-precision integer".</returns>
<remarks>
A = Client Public Key
g = Generator
a = Client Private Key
N = Safe Prime Modulus
</remarks>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Helper.ComputeSharedKey(System.Byte[],System.String,System.String,S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,System.Security.Cryptography.HashAlgorithm)">
<summary>
Calculates the shared context key K from the given parameters.
</summary>
<param name="salt">The user's password salt.</param>
<param name="username">The username to authenticate with.</param>
<param name="password">The password to authenticate with.</param>
<param name="clientPublicKey">The client's ephemeral public key.</param>
<param name="serverPublicKey">The server's ephemeral public key.</param>
<param name="clientPrivateKey">The client's private key.</param>
<param name="generator">The generator sent by the server.</param>
<param name="safePrimeModulus">The safe prime modulus sent by the
server.</param>
<param name="hashAlgorithm">The negotiated hash algorithm to use
for the calculations.</param>
<returns>The shared context key K as a "multi-precision
integer".</returns>
<remarks>
A = Client Public Key
B = Server Public Key
N = Safe Prime Modulus
U = Username
p = Password
s = User's Password Salt
a = Client Private Key
g = Generator
K = Shared Public Key
</remarks>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Helper.ComputeClientProof(S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,System.String,System.Byte[],S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,System.String,System.String,System.Security.Cryptography.HashAlgorithm)">
<summary>
Computes the client evidence from the given parameters.
</summary>
<param name="safePrimeModulus">The safe prime modulus sent by the
server.</param>
<param name="generator">The generator sent by the server.</param>
<param name="username">The username to authenticate with.</param>
<param name="salt">The client's password salt.</param>
<param name="clientPublicKey">The client's ephemeral public key.</param>
<param name="serverPublicKey">The server's ephemeral public key.</param>
<param name="sharedKey">The shared context key.</param>
<param name="authId">The authorization identity.</param>
<param name="options">The raw options string as received from the
server.</param>
<param name="hashAlgorithm">The message digest algorithm to use for
calculating the client proof.</param>
<returns>The client proof as an array of bytes.</returns>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Helper.ComputeServerProof(S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,System.Byte[],S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi,System.String,System.String,System.String,System.UInt32,System.Security.Cryptography.HashAlgorithm)">
<summary>
Computes the server evidence from the given parameters.
</summary>
<param name="clientPublicKey">The client's ephemeral public key.</param>
<param name="clientProof"></param>
<param name="sharedKey">The shared context key.</param>
<param name="authId">The authorization identity.</param>
<param name="options">The raw options string as sent by the
client.</param>
<param name="sid">The session id sent by the server.</param>
<param name="ttl">The time-to-live value for the session id sent
by the server.</param>
<param name="hashAlgorithm">The message digest algorithm to use for
calculating the server proof.</param>
<returns>The server proof as an array of bytes.</returns>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Helper.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="F:S22.Imap.Auth.Sasl.Mechanisms.Srp.Helper.moduli">
<summary>
Recommended values for the safe prime modulus (Refer to Appendix A.
"Modulus and Generator Values" of the IETF SRP draft).
</summary>
</member>
<member name="T:S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi">
<summary>
Represents a "multi-precision integer" (MPI) as is described in the
SRP specification (3.2 Multi-Precision Integers, p.5).
</summary>
<remarks>Multi-Precision Integers, or MPIs, are positive integers used
to hold large integers used in cryptographic computations.</remarks>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi.#ctor(System.Byte[])">
<summary>
Creates a new "multi-precision integer" from the specified array
of bytes.
</summary>
<param name="data">A big-endian sequence of bytes forming the
integer value of the multi-precision integer.</param>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi.#ctor(System.Numerics.BigInteger)">
<summary>
Creates a new "multi-precision integer" from the specified BigInteger
instance.
</summary>
<param name="value">The BigInteger instance to initialize the MPI
with.</param>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi.ToBytes">
<summary>
Returns a sequence of bytes in big-endian order forming the integer
value of this "multi-precision integer" instance.
</summary>
<returns>Returns a sequence of bytes in big-endian order representing
this "multi-precision integer" instance.</returns>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi.Serialize">
<summary>
Serializes the "multi-precision integer" into a sequence of bytes
according to the requirements of the SRP specification.
</summary>
<returns>A big-endian sequence of bytes representing the integer
value of the MPI.</returns>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.Mpi.Value">
<summary>
The underlying BigInteger instance used to represent this
"multi-precision integer".
</summary>
</member>
<member name="T:S22.Imap.Auth.Sasl.Mechanisms.Srp.OctetSequence">
<summary>
Represents an "octet-sequence" as is described in the SRP specification
(3.3 Octet sequences, p.6).
</summary>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.OctetSequence.#ctor(System.Byte[])">
<summary>
Creates a new instance of the OctetSequence class using the specified
byte array.
</summary>
<param name="sequence">The sequence of bytes to initialize this instance
of the OctetSequence class with.</param>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.OctetSequence.Serialize">
<summary>
Serializes this instance of the OctetSequence class into a sequence of
bytes according to the requirements of the SRP specification.
</summary>
<returns>A sequence of bytes representing this instance of the
OctetSequence class.</returns>
<exception cref="T:System.OverflowException">Thrown if the length of the byte
sequence exceeds the maximum number of bytes allowed as per SRP
specification.</exception>
<remarks>SRP specification imposes a limit of 255 bytes on the
length of the underlying byte array.</remarks>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.OctetSequence.Value">
<summary>
The underlying byte array forming this instance of the OctetSequence
class.
</summary>
</member>
<member name="T:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage1">
<summary>
Represents the first message sent by the server in response to an
initial client-response.
</summary>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage1.Deserialize(System.Byte[])">
<summary>
Deserializes a new instance of the ServerMessage1 class from the
specified buffer of bytes.
</summary>
<param name="buffer">The byte buffer to deserialize the ServerMessage1
instance from.</param>
<returns>An instance of the ServerMessage1 class deserialized from the
specified byte array.</returns>
<exception cref="T:System.FormatException">Thrown if the byte buffer does not
contain valid data.</exception>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage1.ParseOptions(System.String)">
<summary>
Parses the options string sent by the server.
</summary>
<param name="s">A comma-delimited options string.</param>
<returns>An initialized instance of the NameValueCollection class
containing the parsed server options.</returns>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage1.SafePrimeModulus">
<summary>
The safe prime modulus sent by the server.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage1.Generator">
<summary>
The generator sent by the server.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage1.Salt">
<summary>
The user's password salt.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage1.PublicKey">
<summary>
The server's ephemeral public key.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage1.Options">
<summary>
The options list indicating available security services.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage1.RawOptions">
<summary>
The raw options as received from the server.
</summary>
</member>
<member name="T:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage2">
<summary>
Represents the second message sent by the server as part of the SRP
authentication exchange.
</summary>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage2.Deserialize(System.Byte[])">
<summary>
Deserializes a new instance of the ServerMessage2 class from the
specified buffer of bytes.
</summary>
<param name="buffer">The byte buffer to deserialize the ServerMessage2
instance from.</param>
<returns>An instance of the ServerMessage2 class deserialized from the
specified byte array.</returns>
<exception cref="T:System.FormatException">Thrown if the byte buffer does not
contain valid data.</exception>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage2.Proof">
<summary>
The evidence which proves to the client server-knowledge of the shared
context key.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage2.InitialVector">
<summary>
The initial vector the client will use to set up its encryption
context, if confidentiality protection will be employed.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage2.SessionId">
<summary>
The session identifier the server has given to this session.
</summary>
</member>
<member name="P:S22.Imap.Auth.Sasl.Mechanisms.Srp.ServerMessage2.Ttl">
<summary>
The time period for which this session's parameters may be re-usable.
</summary>
</member>
<member name="T:S22.Imap.Auth.Sasl.Mechanisms.Srp.Utf8String">
<summary>
Represents an UTF-8 string as is described in the SRP specification
(3.5 Text, p.6).
</summary>
</member>
<member name="F:S22.Imap.Auth.Sasl.Mechanisms.Srp.Utf8String.Value">
<summary>
The value of the UTF-8 string.
</summary>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Utf8String.#ctor(System.String)">
<summary>
Creates a new instance of the Utf8String class using the specified
string value.
</summary>
<param name="s">The string to initialize the Utf8String instance
with.</param>
</member>
<member name="M:S22.Imap.Auth.Sasl.Mechanisms.Srp.Utf8String.Serialize">
<summary>
Serializes this instance of the Utf8String class into a sequence of
bytes according to the requirements of the SRP specification.
</summary>
<returns>A sequence of bytes representing this instance of the
Utf8String class.</returns>
<exception cref="T:System.OverflowException">Thrown if the string value exceeds
the maximum number of bytes allowed as per SRP specification.</exception>
<remarks>SRP specification imposes a limit of 65535 bytes on the
string data after it has been encoded into a sequence of bytes
using an encoding of UTF-8.</remarks>
</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>