<doc>
  <assembly>
    <name>Rebex.Imap</name>
  </assembly>
  <members>
    <member name="T:Rebex.Net.Imap">
      <summary>
            Provides methods for communication with IMAP servers.
            Supported IMAP versions are IMAP4 and IMAP4rev1.
            </summary>
      <remarks>All members of this class are thread-safe.</remarks>
    </member>
    <member name="F:Rebex.Net.Imap.DefaultPort">
      <summary>
            Default IMAP port (143).
            </summary>
    </member>
    <member name="F:Rebex.Net.Imap.DefaultImplicitSslPort">
      <summary>
            Default IMAP/Implicit SSL port (993).
            </summary>
    </member>
    <member name="E:Rebex.Net.Imap.ResponseRead">
      <summary>
            Occurs when a response is received from the server.
            </summary>
    </member>
    <member name="E:Rebex.Net.Imap.CommandSent">
      <summary>
            Occurs when a command is send to the server.
            </summary>
    </member>
    <member name="E:Rebex.Net.Imap.StateChanged">
      <summary>
            Occurs when the state of the <see cref="T:Rebex.Net.Imap" /> object is changed.
            </summary>
    </member>
    <member name="E:Rebex.Net.Imap.TransferProgress">
      <summary>
            Occurs when data is send or received.
            </summary>
    </member>
    <member name="E:Rebex.Net.Imap.Notification">
      <summary>
            Occurs when a notification is received from the server.
            By sending notifications, the server informs connected clients about specific actions performed by either this client, by another connected session, or the server itself.
            </summary>
      <remarks>
            It always arises during a method execution while the <see cref="T:Rebex.Net.Imap" /> object is locked.
            Therefore executing methods of the <see cref="T:Rebex.Net.Imap" /> object in the event handler is not allowed 
            (it will always fail with <see cref="F:Rebex.Net.ImapExceptionStatus.Pending" />).
            </remarks>
    </member>
    <member name="E:Rebex.Net.Imap.ValidatingCertificate">
      <summary>
            Occurs when a server certificate needs to be validated.
            </summary>
    </member>
    <member name="M:Rebex.Net.Imap.OnResponseRead(Rebex.Net.ImapResponseReadEventArgs)">
      <summary>
            Raises the <see cref="E:Rebex.Net.Imap.ResponseRead" /> event.
            </summary>
      <param name="e">A <see cref="T:Rebex.Net.ImapResponseReadEventArgs" /> that contains the event data.</param>
    </member>
    <member name="M:Rebex.Net.Imap.OnCommandSent(Rebex.Net.ImapCommandSentEventArgs)">
      <summary>
            Raises the <see cref="E:Rebex.Net.Imap.CommandSent" /> event.
            </summary>
      <param name="e">A <see cref="T:Rebex.Net.ImapCommandSentEventArgs" /> that contains the event data.</param>
    </member>
    <member name="M:Rebex.Net.Imap.OnStateChanged(Rebex.Net.ImapStateChangedEventArgs)">
      <summary>
            Raises the <see cref="E:Rebex.Net.Imap.StateChanged" /> event.
            </summary>
      <param name="e">A <see cref="T:Rebex.Net.ImapStateChangedEventArgs" /> that contains the event data.</param>
    </member>
    <member name="M:Rebex.Net.Imap.OnTransferProgress(Rebex.Net.ImapTransferProgressEventArgs)">
      <summary>
            Raises the <see cref="E:Rebex.Net.Imap.TransferProgress" /> event.
            </summary>
      <param name="e">A <see cref="T:Rebex.Net.ImapTransferProgressEventArgs" /> that contains the event data.</param>
    </member>
    <member name="M:Rebex.Net.Imap.OnNotification(Rebex.Net.ImapNotificationEventArgs)">
      <summary>
            Raises the <see cref="E:Rebex.Net.Imap.Notification" /> event.
            </summary>
      <param name="e">A <see cref="T:Rebex.Net.ImapNotificationEventArgs" /> that contains the event data.</param>
    </member>
    <member name="M:Rebex.Net.Imap.#ctor">
      <summary>
            Initializes a new instance of the Imap class.
            </summary>
    </member>
    <member name="M:Rebex.Net.Imap.Dispose">
      <summary>
            Disposes the <see cref="T:Rebex.Net.Imap" /> object and all the socket objects.
            </summary>
      <remarks>
            Calling this method ensures that all resources are freed.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.Dispose(System.Boolean)">
      <summary>
            Releases the unmanaged resources used by the <see cref="T:Rebex.Net.Imap" />
            and optionally releases the managed resources.
            </summary>
      <param name="disposing">
        <b>true</b> to release both managed and unmanaged resources; <b>false</b> to release only unmanaged resources.</param>
    </member>
    <member name="M:Rebex.Net.Imap.Finalize">
      <summary>
            Finalizer. Called by garbage collector during object destruction.
            </summary>
    </member>
    <member name="M:Rebex.Net.Imap.Abort">
      <summary>
            Aborts the current operation.
            </summary>
      <remarks>
        <p>
            The aborted operation will end either successfully, or with
            <see cref="T:Rebex.Net.ImapException" /> of status <see cref="T:Rebex.Net.ImapExceptionStatus">OperationAborted</see>
            or <see cref="T:Rebex.Net.ImapExceptionStatus">Timeout</see>.
            The <see cref="T:Rebex.Net.Imap" /> object may remain in <see cref="T:Rebex.Net.ImapState">Reading</see>,
            <see cref="T:Rebex.Net.ImapState">Sending</see> or <see cref="T:Rebex.Net.ImapState">Processing</see>
            state. In this case, the <see cref="T:Rebex.Net.Imap" /> object is not usable any more and a call
            to <see cref="M:Rebex.Net.Imap.Disconnect" /> is recommended.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.Connect(System.String)">
      <summary>
            Connects to the IMAP server.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
      <returns>The welcome message returned by the server.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.Connect(System.String,System.Int32)">
      <summary>
            Connects to the IMAP server.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
      <param name="serverPort">The server port (e.g. 143).</param>
      <returns>The welcome message returned by the server.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.Connect(System.String,Rebex.Net.SslMode)">
      <summary>
            Connects to the IMAP server. Use a port corresponding to the specified security mode.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
      <param name="security">Connection security.</param>
      <returns>The welcome message returned by the server.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.Connect(System.String,System.Int32,Rebex.Net.SslMode)">
      <summary>
            Connects to the IMAP server.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
      <param name="serverPort">The server port (e.g. 143).</param>
      <param name="security">Connection security.</param>
      <returns>The welcome message returned by the server.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.Disconnect">
      <summary>
            Disconnects from the IMAP server.
            </summary>
      <returns>The exit message returned by the server.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.Secure">
      <summary>
            Secures the connection with TLS/SSL using default parameters.
            </summary>
    </member>
    <member name="M:Rebex.Net.Imap.Login(Rebex.Net.ImapAuthentication)">
      <summary>
            Authenticates the user to the IMAP server using the specified authentication method that does not require credentials (NTLM, GSSAPI or EXTERNAL).
            Only supported on Windows.
            </summary>
      <param name="method">Authentication method.</param>
    </member>
    <member name="M:Rebex.Net.Imap.Login(Rebex.Net.GssApiProvider)">
      <summary>
            Authenticates the user to the IMAP server using the specified GSSAPI provider.
            Only supported on Windows and partially on Mono.
            </summary>
      <param name="provider">GSSAPI provider.</param>
      <remarks>
            Only supported on Windows platforms.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.Login(System.String,System.String,Rebex.Net.ImapAuthentication)">
      <summary>
            Authenticates the user to the IMAP server using the specified authentication method.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="method">Authentication method.</param>
    </member>
    <member name="M:Rebex.Net.Imap.Login(System.String,Rebex.Net.ImapAuthentication)">
      <summary>
            Authenticates the user to the IMAP server using an OAuth token.
            </summary>
      <param name="token">Authentication token.</param>
      <param name="method">Authentication method (only OAuth 2.0 is supported at the moment).</param>
    </member>
    <member name="M:Rebex.Net.Imap.CheckForUpdates(System.Int32)">
      <summary>
            Processes server notifications for the specified amount of time.
            </summary>
      <param name="duration">Duration of the idle interval, in milliseconds.</param>
      <returns>True if any new notifications were received.</returns>
      <remarks>
        <p>
            Notifications are generated when a new message arrives, when a message is deleted,
            when message flags change, etc. (see <see cref="T:Rebex.Net.ImapNotification" /> for a list of supported
            notifications).
            </p>
        <p>
            These notifications can occur during a call to any <see cref="T:Rebex.Net.Imap" /> method and are reported
            using the <see cref="E:Rebex.Net.Imap.Notification" /> event. The <see cref="M:Rebex.Net.Imap.CheckForUpdates(System.Int32)" /> method is useful
            when you need to check for any possible changes (reported using notifications) and do not
            wish to call any other method. Typically, a client application will call <see cref="M:Rebex.Net.Imap.CheckForUpdates(System.Int32)" />
            periodically while idle.
            </p>
        <p>
            To receive the notifications itself, use the <see cref="E:Rebex.Net.Imap.Notification" /> event.
            </p>
        <p>
            This method represents IMAP NOOP or IDLE commands. IDLE is used whenever the server supports this command - see <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> property.
            For duration values less than 10, NOOP is always used.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.FolderExists(System.String)">
      <summary>
            Detects whether the specified folder exists on the server. Not all IMAP servers support this!
            </summary>
      <param name="folder">The path to the folder to check.</param>
      <returns>True if the folder exists, false otherwise.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetFolderList(System.String,Rebex.Net.ImapFolderListMode,System.Boolean)">
      <summary>
            Gets the list of subfolders in the specified folder.
            </summary>
      <param name="folder">The path to folder for which a list of subfolders is returned.</param>
      <param name="mode">List mode that specifies whether to return all folders or subscribed only.</param>
      <param name="recursive">Specifies whether to return the whole subfolder tree.</param>
      <returns>A list of subfolders.</returns>
      <remarks>
        <p>
            To subscribe and unsubscribe to folders, use <see cref="M:Rebex.Net.Imap.Subscribe(System.String)" /> and <see cref="M:Rebex.Net.Imap.Unsubscribe(System.String)" /> methods.
            </p>
        <p>
            To get a list of root subfolders, use an empty string for folder.
            </p>
        <p>
            This method represents IMAP LIST and LSUB commands.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.UnselectFolder(System.Boolean)">
      <summary>
            Unselects the currently selected folder and optionally permanently removes all messages marked
            as deleted (with a Deleted flag) from the current folder.
            </summary>
      <param name="purgeDeleted">Specifies whether to purge (permanently remove) all messages marked as deleted.</param>
      <remarks>
        <p>
          <see cref="P:Rebex.Net.Imap.CurrentFolder" /> will be null (Nothing in Visual Basic) after a call to this method.
            </p>
        <p>
            This method uses IMAP CLOSE command to purge the messages.
            No purging is performed if the current folder is selected as read-only.
            </p>
      </remarks>
      <seealso cref="M:Rebex.Net.Imap.SelectFolder(System.String)" />
      <seealso cref="M:Rebex.Net.Imap.Purge" />
    </member>
    <member name="M:Rebex.Net.Imap.SelectFolder(System.String,System.Boolean)">
      <summary>
            Selects the specified folder so that its messages can be accessed.
            </summary>
      <param name="folder">Folder to be selected.</param>
      <param name="readOnly">Specifies whether the folder is to be selected as read-only.</param>
      <remarks>
        <p>
            The <see cref="P:Rebex.Net.Imap.CurrentFolder" /> property will contain an instance of <see cref="T:Rebex.Net.ImapFolder" />
            that represents the selected folder after a call to this method.
            </p>
        <p>
            Only one mailbox can be selected at a time for a single connection,
            and only the messages in currently selected folder can be accessed.
            Also, most <see cref="E:Rebex.Net.Imap.Notification">notifications</see> only occur when a folder is selected.
            </p>
        <p>
            This method represents IMAP SELECT and EXAMINE commands.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.CreateFolder(System.String)">
      <summary>
            Creates a folder with the specified name.
            </summary>
      <param name="folder">Folder to be created.</param>
      <remarks>
        <p>
            This method represents IMAP CREATE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.DeleteFolder(System.String)">
      <summary>
            Deletes a folder with the specified name.
            </summary>
      <param name="folder">Folder to be deleted.</param>
      <remarks>
        <p>
            This method represents IMAP DELETE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.RenameFolder(System.String,System.String)">
      <summary>
            Renames a specified folder to a new name.
            </summary>
      <param name="folder">Folder to be renamed.</param>
      <param name="newFolderName">New folder name.</param>
      <remarks>
        <p>
            This method represents IMAP RENAME command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.Subscribe(System.String)">
      <summary>
            Subscribes to a specified folder, adding it to a list of active folders that
            appear in the folder listings with <see cref="T:Rebex.Net.ImapFolderListMode" /> set
            to <see cref="F:Rebex.Net.ImapFolderListMode.Subscribed" />.
            </summary>
      <param name="folder">Folder to subscribe to.</param>
      <remarks>
        <p>
            The only difference between those folders that are subscribed and those that aren't
            is that a call to <see cref="M:Rebex.Net.Imap.GetFolderList(System.String,Rebex.Net.ImapFolderListMode,System.Boolean)" /> using
            the <see cref="T:Rebex.Net.ImapFolderListMode">ImapFolderListMode</see>.Subscribed will only
            return the subscribed (active) folders. This has absolutely NOTHING to do
            with <see cref="E:Rebex.Net.Imap.Notification">notifications</see>.
            </p>
        <p>
            This method represents IMAP SUBSCRIBE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.Unsubscribe(System.String)">
      <summary>
            Unsubscribes from a specified folder, removing it to a list of active folders that
            appear in the folder listings with <see cref="T:Rebex.Net.ImapFolderListMode" /> set
            to <see cref="F:Rebex.Net.ImapFolderListMode.Subscribed" />.
            </summary>
      <param name="folder">Folder to unsubscribe from.</param>
      <remarks>
        <p>
            The only difference between those folders that are subscribed and those that aren't
            is that a call to <see cref="M:Rebex.Net.Imap.GetFolderList(System.String,Rebex.Net.ImapFolderListMode,System.Boolean)" /> using
            the <see cref="T:Rebex.Net.ImapFolderListMode">ImapFolderListMode</see>.Subscribed will only
            return the subscribed (active) folders. This has absolutely NOTHING to do
            with <see cref="E:Rebex.Net.Imap.Notification">notifications</see>.
            </p>
        <p>
            This method represents IMAP UNSUBSCRIBE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.GetFolderInfo(System.String)">
      <summary>
            Returns information about the specified folder without selecting it.
            </summary>
      <param name="folder">Folder to retrieve information about.</param>
      <remarks>
        <p>
            Following <see cref="T:Rebex.Net.ImapFolder" /> properties are determined using this method:
            MessageCount, RecentCount, NotSeenCount, NextUniqueId and ValidityID.
            </p>
        <p>
            This method represents IMAP STATUS command.
            </p>
      </remarks>
      <returns>A folder info.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.RequestCheckpoint">
      <summary>
            Requests a checkpoint of the currently selected mailbox.
            mailbox.
            </summary>
      <remarks>
        <p>
            A checkpoint refers to any implementation-dependent
            housekeeping associated with the mailbox.
            </p>
        <p>
            This method represents IMAP CHECK command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.Purge(Rebex.Net.ImapMessageSet)">
      <summary>
            Permanently removes all messages marked as deleted (with a Deleted flag)
            from the current folder.
            </summary>
      <param name="messageSet">
            Message set comprised of message unique IDs to purge. Only supported by servers that
            support the UIDPLUS extension. Only the messages that are both present in the set and also have the Deleted flag
            set will be purged.
            </param>
      <remarks>
        <p>
            This method represents IMAP EXPUNGE command.
            </p>
        <p>
            This message set may be specified to ensure that the method does not remove any messages that have been marked as Deleted
            between the time that the user requested the purge operation and
            the time the server processes the command.
            </p>
      </remarks>
      <seealso cref="M:Rebex.Net.Imap.SelectFolder(System.String)" />
      <seealso cref="M:Rebex.Net.Imap.UnselectFolder(System.Boolean)" />
    </member>
    <member name="M:Rebex.Net.Imap.Search(Rebex.Net.ImapMessageSet,Rebex.Net.ImapListFields,Rebex.Net.ImapSearchParameter[])">
      <summary>
            Search the current folder for messages that match the specified searching criteria.
            </summary>
      <param name="messageSet">A set of messages to be searched.</param>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <param name="parameters">Searching criteria.</param>
      <returns>A collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects that match the specified criteria.</returns>
      <remarks>
            Searching criteria consist of one or more parameters. When multiple parameters are specified,
            the results is the intersection (AND) of all the messages that match.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.SetMessageFlags(Rebex.Net.ImapMessageSet,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags,System.String[])">
      <summary>
            Modifies the flags of messages in the current folder that belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <param name="keywords">Keywords to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.CopyMessage(Rebex.Net.ImapMessageSet,System.String)">
      <summary>
            Copies messages from the current folder that belong to a specified message set to the specified folder.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="destinationFolder">Folder that will receive copies of messages.</param>
      <returns>A list that contains the unique IDs of target messages, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            This method represents IMAP COPY command.
            </p>
        <p>
            List of unique IDs of the new messages will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus (UIDPLUS) extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,Rebex.Mime.MimeMessage,Rebex.Net.ImapMessageFlags,System.String[])">
      <summary>
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="message">Message to upload.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,Rebex.Mail.MailMessage,Rebex.Net.ImapMessageFlags,System.String[])">
      <summary>
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="message">Message to upload.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <p>
            This method represents IMAP APPEND command.
            </p>
      <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,System.String,System.String,System.String,System.String,Rebex.Net.ImapMessageFlags,System.String[])">
      <summary>
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="from">Message sender.</param>
      <param name="to">Comma-separated list of message recipients.</param>
      <param name="subject">The subject of the message.</param>
      <param name="body">The text body of the message.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <p>
            This method represents IMAP APPEND command.
            </p>
      <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,System.IO.Stream,Rebex.Net.ImapMessageFlags,System.String[])">
      <summary>
            Uploads the message read from the stream to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="input">The input stream.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            The stream must contain data in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.StoreRawMessage(System.String,System.IO.Stream,Rebex.Net.ImapMessageFlags,Rebex.Mime.Headers.MailDateTime,System.String[])">
      <summary>
            Uploads the contents of the stream to the specified folder and sets its flags and date.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="input">The input stream.</param>
      <param name="flags">Message flags.</param>
      <param name="internalDate">IMAP message date/time.</param>
      <param name="keywords">Keywords to set.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            Caution: Unlike the StoreMessage methods, StoreRawMessage does not parse the message to validate its structure and retrieve its date/time.
            User must ensure the stream supplied to this method represents a valid MIME format message.
            </p>
        <p>
            The stream must contain data in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,System.String,Rebex.Net.ImapMessageFlags,System.String[])">
      <summary>
            Uploads the message read from a local file and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="path">The path to the mail message file.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            The file must be in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.SendCommand(System.String,System.Object[])">
      <summary>
            Executes a command on the IMAP server.
            </summary>
      <param name="command">Command (e.g. "CAPABILITY").</param>
      <param name="parameters">List of parameters. Allowed types are <see cref="T:System.String" /> and a byte array.</param>
      <remarks>
        <p>
            The specified string parameters are send as is. It is caller's responsibility to properly format the parameters.<br />
            The specified byte array parameters are send as literals - binary blocks of data.<br />
            To use this method properly, some understanding of the IMAP protocol is strongly recommended.
            </p>
        <p>A call to SendCommand MUST be followed by a call to <see cref="M:Rebex.Net.Imap.ReadResponse">ReadResponse</see> method.</p>
        <p>Use <see cref="M:Rebex.Net.Imap.ReadResponse">ReadResponse</see> and SendCommand to implement various custom commands.</p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.ReadResponse">
      <summary>
            Returns the response of the IMAP server to the command.
            </summary>
      <returns>Response of the IMAP server.</returns>
      <remarks>
        <p>Use ReadResponse and <see cref="M:Rebex.Net.Imap.SendCommand(System.String,System.Object[])">SendCommand</see> to implement various custom commands.</p>
        <p>
            After a successful call to ReadResponse,
            the <see cref="T:Rebex.Net.Imap" /> object will be
            in <see cref="T:Rebex.Net.ImapState">Reading</see> state.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.CheckConnectionState">
      <summary>
            Checks whether the IMAP session is still connected. Throws an exception on error.
            </summary>
    </member>
    <member name="M:Rebex.Net.Imap.GetConnectionState">
      <summary>
            Checks whether the IMAP session is still connected and returns its state.
            </summary>
      <returns>Connection state.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.ToString">
      <summary>
            Returns a string representation of this object.
            </summary>
      <returns>A string representing this object</returns>
    </member>
    <member name="M:Rebex.Net.Imap.Login(System.String,System.String)">
      <summary>
            Authenticates the user to the IMAP server using the specified authentication method.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <remarks>
            This method tries to authenticate using the following methods,
            in this order of preference: CRAM-MD5, DIGEST-MD5, PLAIN, LOGIN, ClearText, EXTERNAL, GSSAPI, NTLM.
            The NTLM, GSSAPI and EXTERNAL methods are only attempted if no other method is available -
            please use <see cref="M:Rebex.Net.Imap.Login(System.String,System.String,Rebex.Net.ImapAuthentication)" /> and specify
            NTLM, GSSAPI or EXTERNAL directly if you wish to use them.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.CheckForUpdates">
      <summary>
            Processes server notifications.
            </summary>
      <returns>True if any new notifications were received.</returns>
      <remarks>
        <p>
            Notifications are generated when a new message arrives, when a message is deleted,
            when message flags change, etc. (see <see cref="T:Rebex.Net.ImapNotification" /> for a list of supported
            notifications).
            </p>
        <p>
            These notifications can occur during a call to any <see cref="T:Rebex.Net.Imap" /> method and are reported
            using the <see cref="E:Rebex.Net.Imap.Notification" /> event. The <see cref="M:Rebex.Net.Imap.CheckForUpdates" /> method is useful
            when you need to check for any possible changes (reported using notifications) and do not
            wish to call any other method. Typically, a client application will call <see cref="M:Rebex.Net.Imap.CheckForUpdates" />
            periodically while idle.
            </p>
        <p>
            To receive the notifications itself, use the <see cref="E:Rebex.Net.Imap.Notification" /> event.
            </p>
        <p>
            This method represents IMAP NOOP command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.Purge">
      <summary>
            Permanently removes all messages marked as deleted (with a Deleted flag)
            from the current folder.
            </summary>
      <remarks>
        <p>
            This method represents IMAP EXPUNGE command.
            </p>
      </remarks>
      <seealso cref="M:Rebex.Net.Imap.SelectFolder(System.String)" />
      <seealso cref="M:Rebex.Net.Imap.UnselectFolder(System.Boolean)" />
    </member>
    <member name="M:Rebex.Net.Imap.DeleteMessage(Rebex.Net.ImapMessageSet)">
      <summary>
            Marks messages that belong to a specified message set as deleted.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <remarks>
        <p>
            To actually remove messages marked as deleted, use the <see cref="M:Rebex.Net.Imap.Purge" /> method.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.UndeleteMessage">
      <summary>
            Marks all messages as not deleted.
            </summary>
      <remarks>
        <p>
            This only has effect on messages that were not <see cref="M:Rebex.Net.Imap.Purge">purged</see> yet.
            Both messages deleted by this session and other sessions are undeleted.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.UndeleteMessage(Rebex.Net.ImapMessageSet)">
      <summary>
            Marks messages that belong to a specified message set as not deleted.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <remarks>
        <p>
            This only has effect on messages that were not <see cref="M:Rebex.Net.Imap.Purge">purged</see> yet.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.GetFolderList(System.String,Rebex.Net.ImapFolderListMode)">
      <summary>
            Gets the list of subfolders in the specified folder.
            </summary>
      <param name="folder">The path to folder for which a list of subfolders is returned.</param>
      <param name="mode">List mode that specifies whether to return all folders or subscribed only.</param>
      <returns>A list of subfolders.</returns>
      <remarks>
        <p>
            To subscribe and unsubscribe to folders, use <see cref="M:Rebex.Net.Imap.Subscribe(System.String)" /> and <see cref="M:Rebex.Net.Imap.Unsubscribe(System.String)" /> methods.
            </p>
        <p>
            To get a list of root subfolders, use an empty string for folder.
            </p>
        <p>
            This method represents IMAP LIST and LSUB commands.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.GetFolderList(System.String)">
      <summary>
            Gets the list of subfolders in the specified folder.
            </summary>
      <param name="folder">The path to folder for which a list of subfolders is returned.</param>
      <returns>A list of subfolders.</returns>
      <remarks>
        <p>
            To get a list of root subfolders, use an empty string for folder.
            </p>
        <p>
            This method represents IMAP LIST and LSUB commands.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.GetFolderList">
      <summary>
            Gets the list of root subfolders.
            </summary>
      <returns>A list of subfolders.</returns>
      <remarks>
        <p>
            This method represents IMAP LIST and LSUB commands.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.SelectFolder(System.String)">
      <summary>
            Selects the specified folder so that its messages can be accessed.
            </summary>
      <param name="folder">Folder to be selected.</param>
      <remarks>
        <p>
            The <see cref="P:Rebex.Net.Imap.CurrentFolder" /> property will contain an instance of <see cref="T:Rebex.Net.ImapFolder" />
            that represents the selected folder after a call to this method.
            </p>
        <p>
            Only one mailbox can be selected at a time for a single connection,
            and only the messages in currently selected folder can be accessed.
            Also, most <see cref="E:Rebex.Net.Imap.Notification">notifications</see> only occur when a folder is selected.
            </p>
        <p>
            This method represents IMAP SELECT and EXAMINE commands.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.UnselectFolder">
      <summary>
            Unselects the currently selected folder. 
            Messages marked as deleted (with a Deleted flag) are not permanently removed.
            To remove them, use <see cref="M:Rebex.Net.Imap.UnselectFolder(System.Boolean)" /> or <see cref="M:Rebex.Net.Imap.Purge" /> method. 
            </summary>
      <remarks>
        <p>
          <see cref="P:Rebex.Net.Imap.CurrentFolder" /> will be null (Nothing in Visual Basic) after a call to this method.
            </p>
        <p>
            This method does not perform any IMAP command. To unselect a folder and purge deleted messages
            using the CLOSE command, use <see cref="M:Rebex.Net.Imap.UnselectFolder(System.Boolean)" /> mehod.
            </p>
      </remarks>
      <seealso cref="M:Rebex.Net.Imap.SelectFolder(System.String)" />
      <seealso cref="M:Rebex.Net.Imap.Purge" />
    </member>
    <member name="M:Rebex.Net.Imap.Search(Rebex.Net.ImapListFields,Rebex.Net.ImapSearchParameter[])">
      <summary>
            Search the current folder for messages that match the specified searching criteria.
            </summary>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <param name="parameters">Searching criteria.</param>
      <returns>A collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects that match the specified criteria.</returns>
      <remarks>
        <para>
            Searching criteria consist of one or more parameters. When multiple parameters are specified,
            the results is the intersection (AND) of all the messages that match.
            </para>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.Search(Rebex.Net.ImapSearchParameter[])">
      <summary>
            Search the current folder for messages that match the specified searching criteria.
            </summary>
      <param name="parameters">Searching criteria.</param>
      <returns>A collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects that match the specified criteria.</returns>
      <remarks>
        <para>
            Searching criteria consist of one or more parameters. When multiple parameters are specified,
            the results is the intersection (AND) of all the messages that match.
            </para>
        <para>
            The returned list will contain the envelope information about each message. To retrieve other information, use <see cref="M:Rebex.Net.Imap.Search(Rebex.Net.ImapListFields,Rebex.Net.ImapSearchParameter[])" /> method.
            </para>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessage(System.Int32,System.IO.Stream,System.Int64,System.Int32)">
      <summary>
            Downloads the specified part of the message with the specified sequence number
            and writes its data into a supplied stream.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="output">Stream that will receive the message.</param>
      <param name="remoteOffset">The starting offset of the message data to download.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end of message is reached.</param>
      <remarks>Uses IMAP FETCH command to retrieve the message.</remarks>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessage(System.String,System.IO.Stream,System.Int64,System.Int32)">
      <summary>
            Downloads the specified part of the message with the specified unique ID
            and writes its data into a supplied stream.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="output">Stream that will receive the message.</param>
      <param name="remoteOffset">The starting offset of the message data to download.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end of message is reached.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessage(System.Int32,System.IO.Stream)">
      <summary>
            Downloads the message with the specified sequence number
            and writes its data into a supplied stream.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="output">Stream that will receive the message.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessage(System.String,System.IO.Stream)">
      <summary>
            Downloads the message with the specified unique ID
            and writes its data into a supplied stream.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="output">Stream that will receive the message.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessage(System.Int32,System.String,System.Int64,System.Int32)">
      <summary>
            Downloads the message with the specified sequence number
            and writes its data into a local file.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="fileName">The path of the local file. This cannot be a directory.</param>
      <param name="remoteOffset">The starting offset of the message data to download.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end of message is reached.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessage(System.String,System.String,System.Int64,System.Int32)">
      <summary>
            Downloads the message with the specified unique ID
            and writes its data into a local file.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="fileName">The path of the local file. This cannot be a directory.</param>
      <param name="remoteOffset">The starting offset of the message data to download.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end of message is reached.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessage(System.Int32,System.String)">
      <summary>
            Downloads the message with the specified sequence number
            and writes its data into a local file.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="fileName">The path of the local file. This cannot be a directory.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessage(System.String,System.String)">
      <summary>
            Downloads the message with the specified unique ID
            and writes its data into a local file.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="fileName">The path of the local file. This cannot be a directory.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessages(Rebex.Net.ImapMessageSet,System.Action{Rebex.Net.ImapMessage})">
      <summary>
            Downloads messages in the current folder that belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="messageReceiver">A handler to process received messages. It has to process messages (and exit) quickly.
            If slow/complex processing is required, hand messages over to other thread.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve messages.</para>
        <para>By default, this method marks messages as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        <para>This method demands a lot of data to be received from the server. 
            The data has to be read from the network socket as fast as possible. 
            This places demand on <paramref name="messageReceiver" /> handler to process received messages as fast as possible. 
            If the handler slows the process too much, incoming data will not be read from the underlying network socket in sufficient speed
            and TCP internal buffers will be overfilled. This can cause strange network exceptions.
            </para>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessages(Rebex.Net.ImapMessageSet,Rebex.Net.ImapListFields,System.Action{Rebex.Net.ImapMessage})">
      <summary>
            Downloads messages in the current folder that belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <param name="messageReceiver">A handler to process received messages. It has to process messages (and exit) quickly.
            If slow/complex processing is required, hand messages over to other thread.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve messages.</para>
        <para>By default, this method marks messages as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        <para>This method demands a lot of data to be received from the server. 
            The data has to be read from the network socket as fast as possible. 
            This places demand on <paramref name="messageReceiver" /> handler to process received messages as fast as possible. 
            If the handler slows the process too much, incoming data will not be read from the underlying network socket in sufficient speed
            and TCP internal buffers will be overfilled. This can cause strange network exceptions.
            </para>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.GetMimeMessage(System.Int32)">
      <summary>
            Downloads the message with the specified sequence number
            and loads it into an instance of <see cref="T:Rebex.Mime.MimeMessage" />.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <returns>A downloaded message.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMimeMessage(System.String)">
      <summary>
            Downloads the message with the specified unique ID
            and loads it into an instance of <see cref="T:Rebex.Mime.MimeMessage" />.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <returns>A downloaded message.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMailMessage(System.Int32)">
      <summary>
            Downloads the message with the specified sequence number
            and loads it into an instance of <see cref="T:Rebex.Mail.MailMessage" />.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <returns>A downloaded message.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMailMessage(System.String)">
      <summary>
            Downloads the message with the specified unique ID
            and loads it into an instance of <see cref="T:Rebex.Mail.MailMessage" />.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <returns>A downloaded message.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageHeaders(System.Int32,System.IO.Stream)">
      <summary>
            Downloads the headers of a message with the specified sequence number
            and writes it into a supplied stream.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="output">Stream that will receive the message headers.</param>
      <remarks>Uses IMAP FETCH command to retrieve the headers.</remarks>
      <returns>The length of the headers in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageHeaders(System.String,System.IO.Stream)">
      <summary>
            Downloads the headers of a message with the specified unique ID
            and writes it into a supplied stream.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="output">Stream that will receive the message headers.</param>
      <remarks>Uses IMAP FETCH command to retrieve the headers.</remarks>
      <returns>The length of the headers in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessagePart(System.Int32,System.String)">
      <summary>
            Downloads the specified part of the message. Used to download separate attachments.
            Call <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" /> with <see cref="T:Rebex.Net.ImapListFields" />.MessageStructure argument
            to download the list of sections and access it using <see cref="M:Rebex.Net.ImapMessageInfo.GetParts" /> method.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="partId">Message section (from <see cref="P:Rebex.Net.ImapMessagePart.Id" />).</param>
      <returns>Raw data of the specified message section.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessagePart(System.String,System.String)">
      <summary>
            Downloads the specified part of the message. Used to download separate attachments.
            Call <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" /> with <see cref="T:Rebex.Net.ImapListFields" />.MessageStructure argument
            to download the list of sections and access it using <see cref="M:Rebex.Net.ImapMessageInfo.GetParts" /> method.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="partId">Message section (from <see cref="P:Rebex.Net.ImapMessagePart.Id" />).</param>
      <returns>Raw data of the specified message section.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessagePart(System.Int32,System.String,System.IO.Stream)">
      <summary>
            Downloads the specified part of the message into the specified stream. Used to download separate attachments.
            Call <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" /> with <see cref="T:Rebex.Net.ImapListFields" />.MessageStructure argument
            to download the list of sections and access it using <see cref="M:Rebex.Net.ImapMessageInfo.GetParts" /> method.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="partId">Message section (from <see cref="P:Rebex.Net.ImapMessagePart.Id" />).</param>
      <param name="output">Stream that will receive the part data.</param>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessagePart(System.String,System.String,System.IO.Stream)">
      <summary>
            Downloads the specified part of the message into the specified stream. Used to download separate attachments.
            Call <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" /> with <see cref="T:Rebex.Net.ImapListFields" />.MessageStructure argument
            to download the list of sections and access it using <see cref="M:Rebex.Net.ImapMessageInfo.GetParts" /> method.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="partId">Message section (from <see cref="P:Rebex.Net.ImapMessagePart.Id" />).</param>
      <param name="output">Stream that will receive the part data.</param>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,Rebex.Mime.MimeMessage)">
      <summary>
            Uploads the message to the specified folder.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="message">Message to upload.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,Rebex.Mail.MailMessage)">
      <summary>
            Uploads the message to the specified folder.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="message">Message to upload.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,System.String,System.String,System.String,System.String)">
      <summary>
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="from">Message sender.</param>
      <param name="to">Comma-separated list of message recipients.</param>
      <param name="subject">The subject of the message.</param>
      <param name="body">The text body of the message.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,System.IO.Stream)">
      <summary>
            Uploads the message read from the stream to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="input">The input stream.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            The stream must contain data in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,System.String)">
      <summary>
            Uploads the message read from a local file and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="path">The path to the mail message file.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            The file must be in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,Rebex.Mime.MimeMessage,Rebex.Net.ImapMessageFlags)">
      <summary>
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="message">Message to upload.</param>
      <param name="flags">Message flags.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,Rebex.Mail.MailMessage,Rebex.Net.ImapMessageFlags)">
      <summary>
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="message">Message to upload.</param>
      <param name="flags">Message flags.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <p>
            This method represents IMAP APPEND command.
            </p>
      <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,System.String,System.String,System.String,System.String,Rebex.Net.ImapMessageFlags)">
      <summary>
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="from">Message sender.</param>
      <param name="to">Comma-separated list of message recipients.</param>
      <param name="subject">The subject of the message.</param>
      <param name="body">The text body of the message.</param>
      <param name="flags">Message flags.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <p>
            This method represents IMAP APPEND command.
            </p>
      <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,System.IO.Stream,Rebex.Net.ImapMessageFlags)">
      <summary>
            Uploads the message read from the stream to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="input">The input stream.</param>
      <param name="flags">Message flags.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            The stream must contain data in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessage(System.String,System.String,Rebex.Net.ImapMessageFlags)">
      <summary>
            Uploads the message read from a local file and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="path">The path to the mail message file.</param>
      <param name="flags">Message flags.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            The file must be in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.StoreRawMessage(System.String,System.IO.Stream,Rebex.Net.ImapMessageFlags,Rebex.Mime.Headers.MailDateTime)">
      <summary>
            Uploads the contents of the stream to the specified folder and sets its flags and date.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="input">The input stream.</param>
      <param name="flags">Message flags.</param>
      <param name="internalDate">IMAP message date/time.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            Caution: Unlike the StoreMessage methods, StoreRawMessage does not parse the message to validate its structure and retrieve its date/time.
            User must ensure the stream supplied to this method represents a valid MIME format message.
            </p>
        <p>
            The stream must contain data in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageList(Rebex.Net.ImapMessageSet,Rebex.Net.ImapListFields)">
      <summary>
            Gets the list of messages in the current folder that belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <returns>A collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects.</returns>
      <remarks>
        <p>
            This method represents IMAP FETCH command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageList(Rebex.Net.ImapMessageSet)">
      <summary>
            Gets the list of messages in the current folder that belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <returns>A collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects.</returns>
      <remarks>
        <p>
            The returned list will contain the envelope information about each message.
            </p>
        <p>
            This method represents IMAP FETCH command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageList(Rebex.Net.ImapListFields)">
      <summary>
            Gets the list of messages in the current folder.
            </summary>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <returns>A collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects.</returns>
      <remarks>
        <p>
            This method represents IMAP FETCH command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageList">
      <summary>
            Gets the list of messages in the current folder.
            </summary>
      <returns>A collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects.</returns>
      <remarks>
        <p>
            The returned list will contain the envelope information about each message.
            </p>
        <p>
            This method represents IMAP FETCH command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageInfo(System.Int32,Rebex.Net.ImapListFields)">
      <summary>
            Gets information about a message with the specified sequence number.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="fields">Specifies the scope of information to determine about the message.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <returns>A message info.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)">
      <summary>
            Gets information about a message with the specified unique ID
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="fields">Specifies the scope of information to determine about the message.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <returns>A message info.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.SetMessageFlags(Rebex.Net.ImapMessageSet,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags)">
      <summary>
            Modifies the flags of messages in the current folder that belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.SetMessageFlags(System.Int32,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags)">
      <summary>
            Modifies the flags of a message with the specified sequence number.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.SetMessageFlags(System.String,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags)">
      <summary>
            Modifies the flags of a message with the specified unique ID.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.SetMessageFlags(System.Int32,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags,System.String[])">
      <summary>
            Modifies the flags of a message with the specified sequence number.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <param name="keywords">Keywords to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.SetMessageFlags(System.String,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags,System.String[])">
      <summary>
            Modifies the flags of a message with the specified unique ID.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <param name="keywords">Keywords to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.DeleteMessage(System.Int32)">
      <summary>
            Marks a message with the specified sequence number as deleted.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <remarks>
        <p>
            To actually remove messages marked as deleted, use the <see cref="M:Rebex.Net.Imap.Purge" /> method.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.DeleteMessage(System.String)">
      <summary>
            Marks a message with the specified unique ID as deleted.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <remarks>
        <p>
            To actually remove messages marked as deleted, use the <see cref="M:Rebex.Net.Imap.Purge" /> method.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.UndeleteMessage(System.Int32)">
      <summary>
            Marks a message with the specified sequence number as not deleted.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <remarks>
        <p>
            This only has effect if the message was not <see cref="M:Rebex.Net.Imap.Purge">purged</see> yet.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.UndeleteMessage(System.String)">
      <summary>
            Marks a message with the specified unique ID as not deleted.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <remarks>
        <p>
            This only has effect if the message was not <see cref="M:Rebex.Net.Imap.Purge">purged</see> yet.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.CopyMessage(System.Int32,System.String)">
      <summary>
            Copies a message with the specified sequence number to the specified folder.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="destinationFolder">Folder that will receive copies of the message.</param>
      <returns>Unique ID of the target message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            This method represents IMAP COPY command.
            </p>
        <p>
            Unique ID of the new message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.CopyMessage(System.String,System.String)">
      <summary>
            Copies a message with the specified unique ID to the specified folder.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="destinationFolder">Folder that will receive copies of the message.</param>
      <returns>Unique ID of the target message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
      <remarks>
        <p>
            This method represents IMAP COPY command.
            </p>
        <p>
            Unique ID of the new message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus (UIDPLUS) extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
    </member>
    <member name="P:Rebex.Net.Imap.CurrentFolder">
      <summary>
            Gets the <see cref="T:Rebex.Net.ImapFolder" /> object that represents the currently selected folder,
            or null if no folder is selected.
            </summary>
      <value>Currently selected folder.</value>
      <remarks>
            Use <see cref="M:Rebex.Net.Imap.SelectFolder(System.String)" /> to select a folder and <see cref="M:Rebex.Net.Imap.UnselectFolder" /> to unselect it.
            </remarks>
    </member>
    <member name="P:Rebex.Net.Imap.Proxy">
      <summary>
            Gets or sets the network proxy to use to access a remote server.
            </summary>
      <value>The <see cref="P:Rebex.Net.Imap.Proxy" /> to use to access a remote server.</value>
    </member>
    <member name="M:Rebex.Net.Imap.SetSocketFactory(Rebex.Net.ISocketFactory)">
      <summary>
            Sets the socket factory to be used to create communication sockets.
            </summary>
      <param name="factory">Socket factory.</param>
    </member>
    <member name="P:Rebex.Net.Imap.Encoding">
      <summary>
            Gets or sets the <see cref="T:System.Text.Encoding">Encoding</see> to use to encode and decode command parameters and server responses.
            </summary>
      <value>The <see cref="T:System.Text.Encoding">Encoding</see> to use to encode and decode command parameters and server responses. Default is <see cref="T:System.Text.Encoding">Encoding.Default</see>.</value>
    </member>
    <member name="P:Rebex.Net.Imap.Settings">
      <summary>
            Gets or sets IMAP object settings.
            </summary>
      <value>IMAP object settings.</value>
    </member>
    <member name="P:Rebex.Net.Imap.SupportedExtensions">
      <summary>
            Gets the bit field specifying the extensions supported by the server.
            </summary>
      <value>Extensions supported by the server.</value>
    </member>
    <member name="P:Rebex.Net.Imap.EnabledExtensions">
      <summary>
            Gets or sets the bit field specifying the enabled extensions.
            </summary>
      <value>Enabled extensions.</value>
      <remarks>
            Enabled extensions will be used when appropriate.
            By default, all extensions are enabled.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Imap.GetSupportedAuthenticationMethods">
      <summary>
            Gets the list of supported authentication methods.
            </summary>
      <returns>The list of supported authentication methods.</returns>
    </member>
    <member name="P:Rebex.Net.Imap.IsSecured">
      <summary>
            Gets the value indicating whether the control connection is secured.
            </summary>
      <value>True if secure, false if not secure.</value>
    </member>
    <member name="P:Rebex.Net.Imap.TlsSocket">
      <summary>
            Returns the TLS/SSL socket of secured control connection.
            </summary>
      <returns>The TLS/SSL socket of secured control connection, or null if the connection is not secured.</returns>
      <remarks>
            This property is intended for advanced users only.
            <see cref="T:Rebex.Net.Imap" /> class does not expect the socket to be altered in any way.
            </remarks>
    </member>
    <member name="P:Rebex.Net.Imap.Timeout">
      <summary>
            Gets or sets the length of time in milliseconds before the operation times out (specify -1 or 0 to indicate that the request does not time out).
            </summary>
      <value>
            The length of time, in milliseconds, until the operation times out,
            or the value -1 or 0 to indicate that the request does not time out.
            Default is 60000 (60 seconds).
            </value>
      <remarks>
        <p>
            The internal timeout counter is reset every time data is sent
            or received from to server.
            </p>
        <p>
            The <see cref="P:Rebex.Net.Imap.Timeout" /> property affects both synchronous and asynchronous methods.
            </p>
        <p>
            Minimal value is 1000. Setting this to a value lower than 1000 will set it to 1000.
            </p>
      </remarks>
    </member>
    <member name="P:Rebex.Net.Imap.AbortTimeout">
      <summary>
            Gets or sets the length of time before the abort operation times out.
            </summary>
      <value>The length of time, in milliseconds, until the abort operation times out.
            Default is 3000, which seems to be a reasonable value.
            </value>
      <remarks>
            Minimal value is 1000. Setting this to a value lower than 1000 will set it to 1000.
            </remarks>
    </member>
    <member name="P:Rebex.Net.Imap.State">
      <summary>
            Gets the current state of the <see cref="T:Rebex.Net.Imap" /> object.
            </summary>
      <value>The current state.</value>
    </member>
    <member name="P:Rebex.Net.Imap.LocalEndPoint">
      <summary>
            Gets the local client <see cref="T:System.Net.EndPoint" />.
            </summary>
      <value>The local client <see cref="T:System.Net.EndPoint" />.</value>
    </member>
    <member name="P:Rebex.Net.Imap.RemoteEndPoint">
      <summary>
            Gets the remote server <see cref="T:System.Net.EndPoint" />.
            </summary>
      <value>The remote server <see cref="T:System.Net.EndPoint" />.</value>
    </member>
    <member name="P:Rebex.Net.Imap.IsConnected">
      <summary>
            Gets a value indicating whether the session is connected.
            </summary>
      <remarks>
        <p>
            This property returns the latest known state of the session. 
            When it returns false, the session was either never connected, or no longer connected. 
            When it returns true, the session was connected at the time of the last I/O operation.
            </p>
        <p>
          <b>Note:</b> There is no guarantee that the session is still connected even though
            <see cref="P:Rebex.Net.Imap.IsConnected" /> returns true.
            </p>
      </remarks>
      <value>True if connected; false otherwise.</value>
    </member>
    <member name="P:Rebex.Net.Imap.IsAuthenticated">
      <summary>
            Returns a value indicating whether the session is authenticated.
            </summary>
      <value>A value indicating whether the session is authenticated.</value>
      <remarks>
            Use this to detect whether the session has been automatically preauthenticated
            prior to calling the Login method.
            </remarks>
    </member>
    <member name="P:Rebex.Net.Imap.ClearTextLoginDisabled">
      <summary>
            Returns a value indicating whether the clear text login is disabled.
            Either use one of the more secure authentication methods, or upgrade
            to TLS/SSL if you wish to perform clear text login.
            </summary>
      <value>A value indicating whether the clear text login is disabled.</value>
    </member>
    <member name="P:Rebex.Net.Imap.IsBusy">
      <summary>
            Gets a value indicating whether there is any operation (method) in progress.
            </summary>
      <returns>True if there is any operation in progress; false otherwise.</returns>
    </member>
    <member name="P:Rebex.Net.Imap.Version">
      <summary>
            Returns the version of the SMTP component.
            </summary>
      <value>The version of the SMTP component.</value>
    </member>
    <member name="M:Rebex.Net.Imap.ConnectAsync(System.String,System.Object)">
      <summary>
            Begins asynchronous Connect operation.
            Connects to the IMAP server.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The welcome message returned by the server.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.ConnectAsync(System.String,System.Int32,System.Object)">
      <summary>
            Begins asynchronous Connect operation.
            Connects to the IMAP server.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
      <param name="serverPort">The server port (e.g. 143).</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The welcome message returned by the server.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.ConnectAsync(System.String,Rebex.Net.SslMode,System.Object)">
      <summary>
            Begins asynchronous Connect operation.
            Connects to the IMAP server. Use a port corresponding to the specified security mode.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
      <param name="security">Connection security.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The welcome message returned by the server.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.ConnectAsync(System.String,System.Int32,Rebex.Net.SslMode,System.Object)">
      <summary>
            Begins asynchronous Connect operation.
            Connects to the IMAP server.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
      <param name="serverPort">The server port (e.g. 143).</param>
      <param name="security">Connection security.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The welcome message returned by the server.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.DisconnectAsync(System.Object)">
      <summary>
            Begins asynchronous Disconnect operation.
            Disconnects from the IMAP server.
            </summary>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The exit message returned by the server.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.SecureAsync(System.Object)">
      <summary>
            Begins asynchronous Secure operation.
            Secures the connection with TLS/SSL using default parameters.
            </summary>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.LoginAsync(Rebex.Net.ImapAuthentication,System.Object)">
      <summary>
            Begins asynchronous Login operation.
            Authenticates the user to the IMAP server using the specified authentication method that does not require credentials (NTLM, GSSAPI or EXTERNAL).
            Only supported on Windows.
            </summary>
      <param name="method">Authentication method.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.LoginAsync(Rebex.Net.GssApiProvider,System.Object)">
      <summary>
            Begins asynchronous Login operation.
            Authenticates the user to the IMAP server using the specified GSSAPI provider.
            Only supported on Windows and partially on Mono.
            </summary>
      <param name="provider">GSSAPI provider.</param>
      <remarks>
            Only supported on Windows platforms.
            </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.LoginAsync(System.String,System.String,Rebex.Net.ImapAuthentication,System.Object)">
      <summary>
            Begins asynchronous Login operation.
            Authenticates the user to the IMAP server using the specified authentication method.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="method">Authentication method.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.LoginAsync(System.String,Rebex.Net.ImapAuthentication,System.Object)">
      <summary>
            Begins asynchronous Login operation.
            Authenticates the user to the IMAP server using an OAuth token.
            </summary>
      <param name="token">Authentication token.</param>
      <param name="method">Authentication method (only OAuth 2.0 is supported at the moment).</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.LoginAsync(System.String,System.String,System.Object)">
      <summary>
            Begins asynchronous Login operation.
            Authenticates the user to the IMAP server using the specified authentication method.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <remarks>
            This method tries to authenticate using the following methods,
            in this order of preference: CRAM-MD5, DIGEST-MD5, PLAIN, LOGIN, ClearText, EXTERNAL, GSSAPI, NTLM.
            The NTLM, GSSAPI and EXTERNAL methods are only attempted if no other method is available -
            please use <see cref="M:Rebex.Net.Imap.Login(System.String,System.String,Rebex.Net.ImapAuthentication)" /> and specify
            NTLM, GSSAPI or EXTERNAL directly if you wish to use them.
            </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.CheckForUpdatesAsync(System.Int32,System.Object)">
      <summary>
            Begins asynchronous CheckForUpdates operation.
            Processes server notifications for the specified amount of time.
            </summary>
      <param name="duration">Duration of the idle interval, in milliseconds.</param>
      <remarks>
        <p>
            Notifications are generated when a new message arrives, when a message is deleted,
            when message flags change, etc. (see <see cref="T:Rebex.Net.ImapNotification" /> for a list of supported
            notifications).
            </p>
        <p>
            These notifications can occur during a call to any <see cref="T:Rebex.Net.Imap" /> method and are reported
            using the <see cref="E:Rebex.Net.Imap.Notification" /> event. The <see cref="M:Rebex.Net.Imap.CheckForUpdates(System.Int32)" /> method is useful
            when you need to check for any possible changes (reported using notifications) and do not
            wish to call any other method. Typically, a client application will call <see cref="M:Rebex.Net.Imap.CheckForUpdates(System.Int32)" />
            periodically while idle.
            </p>
        <p>
            To receive the notifications itself, use the <see cref="E:Rebex.Net.Imap.Notification" /> event.
            </p>
        <p>
            This method represents IMAP NOOP or IDLE commands. IDLE is used whenever the server supports this command - see <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> property.
            For duration values less than 10, NOOP is always used.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>True if any new notifications were received.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.CheckForUpdatesAsync(System.Object)">
      <summary>
            Begins asynchronous CheckForUpdates operation.
            Processes server notifications.
            </summary>
      <remarks>
        <p>
            Notifications are generated when a new message arrives, when a message is deleted,
            when message flags change, etc. (see <see cref="T:Rebex.Net.ImapNotification" /> for a list of supported
            notifications).
            </p>
        <p>
            These notifications can occur during a call to any <see cref="T:Rebex.Net.Imap" /> method and are reported
            using the <see cref="E:Rebex.Net.Imap.Notification" /> event. The <see cref="M:Rebex.Net.Imap.CheckForUpdates" /> method is useful
            when you need to check for any possible changes (reported using notifications) and do not
            wish to call any other method. Typically, a client application will call <see cref="M:Rebex.Net.Imap.CheckForUpdates" />
            periodically while idle.
            </p>
        <p>
            To receive the notifications itself, use the <see cref="E:Rebex.Net.Imap.Notification" /> event.
            </p>
        <p>
            This method represents IMAP NOOP command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>True if any new notifications were received.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.FolderExistsAsync(System.String,System.Object)">
      <summary>
            Begins asynchronous FolderExists operation.
            Detects whether the specified folder exists on the server. Not all IMAP servers support this!
            </summary>
      <param name="folder">The path to the folder to check.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>True if the folder exists, false otherwise.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetFolderListAsync(System.String,Rebex.Net.ImapFolderListMode,System.Boolean,System.Object)">
      <summary>
            Begins asynchronous GetFolderList operation.
            Gets the list of subfolders in the specified folder.
            </summary>
      <param name="folder">The path to folder for which a list of subfolders is returned.</param>
      <param name="mode">List mode that specifies whether to return all folders or subscribed only.</param>
      <param name="recursive">Specifies whether to return the whole subfolder tree.</param>
      <remarks>
        <p>
            To subscribe and unsubscribe to folders, use <see cref="M:Rebex.Net.Imap.Subscribe(System.String)" /> and <see cref="M:Rebex.Net.Imap.Unsubscribe(System.String)" /> methods.
            </p>
        <p>
            To get a list of root subfolders, use an empty string for folder.
            </p>
        <p>
            This method represents IMAP LIST and LSUB commands.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A list of subfolders.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.UnselectFolderAsync(System.Boolean,System.Object)">
      <summary>
            Begins asynchronous UnselectFolder operation.
            Unselects the currently selected folder and optionally permanently removes all messages marked
            as deleted (with a Deleted flag) from the current folder.
            </summary>
      <param name="purgeDeleted">Specifies whether to purge (permanently remove) all messages marked as deleted.</param>
      <remarks>
        <p>
          <see cref="P:Rebex.Net.Imap.CurrentFolder" /> will be null (Nothing in Visual Basic) after a call to this method.
            </p>
        <p>
            This method uses IMAP CLOSE command to purge the messages.
            No purging is performed if the current folder is selected as read-only.
            </p>
      </remarks>
      <seealso cref="M:Rebex.Net.Imap.SelectFolder(System.String)" />
      <seealso cref="M:Rebex.Net.Imap.Purge" />
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.UnselectFolderAsync(System.Object)">
      <summary>
            Begins asynchronous UnselectFolder operation.
            Unselects the currently selected folder. 
            Messages marked as deleted (with a Deleted flag) are not permanently removed.
            To remove them, use <see cref="M:Rebex.Net.Imap.UnselectFolder(System.Boolean)" /> or <see cref="M:Rebex.Net.Imap.Purge" /> method. 
            </summary>
      <remarks>
        <p>
          <see cref="P:Rebex.Net.Imap.CurrentFolder" /> will be null (Nothing in Visual Basic) after a call to this method.
            </p>
        <p>
            This method does not perform any IMAP command. To unselect a folder and purge deleted messages
            using the CLOSE command, use <see cref="M:Rebex.Net.Imap.UnselectFolder(System.Boolean)" /> mehod.
            </p>
      </remarks>
      <seealso cref="M:Rebex.Net.Imap.SelectFolder(System.String)" />
      <seealso cref="M:Rebex.Net.Imap.Purge" />
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.SelectFolderAsync(System.String,System.Boolean,System.Object)">
      <summary>
            Begins asynchronous SelectFolder operation.
            Selects the specified folder so that its messages can be accessed.
            </summary>
      <param name="folder">Folder to be selected.</param>
      <param name="readOnly">Specifies whether the folder is to be selected as read-only.</param>
      <remarks>
        <p>
            The <see cref="P:Rebex.Net.Imap.CurrentFolder" /> property will contain an instance of <see cref="T:Rebex.Net.ImapFolder" />
            that represents the selected folder after a call to this method.
            </p>
        <p>
            Only one mailbox can be selected at a time for a single connection,
            and only the messages in currently selected folder can be accessed.
            Also, most <see cref="E:Rebex.Net.Imap.Notification">notifications</see> only occur when a folder is selected.
            </p>
        <p>
            This method represents IMAP SELECT and EXAMINE commands.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.CreateFolderAsync(System.String,System.Object)">
      <summary>
            Begins asynchronous CreateFolder operation.
            Creates a folder with the specified name.
            </summary>
      <param name="folder">Folder to be created.</param>
      <remarks>
        <p>
            This method represents IMAP CREATE command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.DeleteFolderAsync(System.String,System.Object)">
      <summary>
            Begins asynchronous DeleteFolder operation.
            Deletes a folder with the specified name.
            </summary>
      <param name="folder">Folder to be deleted.</param>
      <remarks>
        <p>
            This method represents IMAP DELETE command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.RenameFolderAsync(System.String,System.String,System.Object)">
      <summary>
            Begins asynchronous RenameFolder operation.
            Renames a specified folder to a new name.
            </summary>
      <param name="folder">Folder to be renamed.</param>
      <param name="newFolderName">New folder name.</param>
      <remarks>
        <p>
            This method represents IMAP RENAME command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.SubscribeAsync(System.String,System.Object)">
      <summary>
            Begins asynchronous Subscribe operation.
            Subscribes to a specified folder, adding it to a list of active folders that
            appear in the folder listings with <see cref="T:Rebex.Net.ImapFolderListMode" /> set
            to <see cref="F:Rebex.Net.ImapFolderListMode.Subscribed" />.
            </summary>
      <param name="folder">Folder to subscribe to.</param>
      <remarks>
        <p>
            The only difference between those folders that are subscribed and those that aren't
            is that a call to <see cref="M:Rebex.Net.Imap.GetFolderList(System.String,Rebex.Net.ImapFolderListMode,System.Boolean)" /> using
            the <see cref="T:Rebex.Net.ImapFolderListMode">ImapFolderListMode</see>.Subscribed will only
            return the subscribed (active) folders. This has absolutely NOTHING to do
            with <see cref="E:Rebex.Net.Imap.Notification">notifications</see>.
            </p>
        <p>
            This method represents IMAP SUBSCRIBE command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.UnsubscribeAsync(System.String,System.Object)">
      <summary>
            Begins asynchronous Unsubscribe operation.
            Unsubscribes from a specified folder, removing it to a list of active folders that
            appear in the folder listings with <see cref="T:Rebex.Net.ImapFolderListMode" /> set
            to <see cref="F:Rebex.Net.ImapFolderListMode.Subscribed" />.
            </summary>
      <param name="folder">Folder to unsubscribe from.</param>
      <remarks>
        <p>
            The only difference between those folders that are subscribed and those that aren't
            is that a call to <see cref="M:Rebex.Net.Imap.GetFolderList(System.String,Rebex.Net.ImapFolderListMode,System.Boolean)" /> using
            the <see cref="T:Rebex.Net.ImapFolderListMode">ImapFolderListMode</see>.Subscribed will only
            return the subscribed (active) folders. This has absolutely NOTHING to do
            with <see cref="E:Rebex.Net.Imap.Notification">notifications</see>.
            </p>
        <p>
            This method represents IMAP UNSUBSCRIBE command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.GetFolderInfoAsync(System.String,System.Object)">
      <summary>
            Begins asynchronous GetFolderInfo operation.
            Returns information about the specified folder without selecting it.
            </summary>
      <param name="folder">Folder to retrieve information about.</param>
      <remarks>
        <p>
            Following <see cref="T:Rebex.Net.ImapFolder" /> properties are determined using this method:
            MessageCount, RecentCount, NotSeenCount, NextUniqueId and ValidityID.
            </p>
        <p>
            This method represents IMAP STATUS command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A folder info.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.RequestCheckpointAsync(System.Object)">
      <summary>
            Begins asynchronous RequestCheckpoint operation.
            Requests a checkpoint of the currently selected mailbox.
            mailbox.
            </summary>
      <remarks>
        <p>
            A checkpoint refers to any implementation-dependent
            housekeeping associated with the mailbox.
            </p>
        <p>
            This method represents IMAP CHECK command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.PurgeAsync(Rebex.Net.ImapMessageSet,System.Object)">
      <summary>
            Begins asynchronous Purge operation.
            Permanently removes all messages marked as deleted (with a Deleted flag)
            from the current folder.
            </summary>
      <param name="messageSet">
            Message set comprised of message unique IDs to purge. Only supported by servers that
            support the UIDPLUS extension. Only the messages that are both present in the set and also have the Deleted flag
            set will be purged.
            </param>
      <remarks>
        <p>
            This method represents IMAP EXPUNGE command.
            </p>
        <p>
            This message set may be specified to ensure that the method does not remove any messages that have been marked as Deleted
            between the time that the user requested the purge operation and
            the time the server processes the command.
            </p>
      </remarks>
      <seealso cref="M:Rebex.Net.Imap.SelectFolder(System.String)" />
      <seealso cref="M:Rebex.Net.Imap.UnselectFolder(System.Boolean)" />
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.PurgeAsync(System.Object)">
      <summary>
            Begins asynchronous Purge operation.
            Permanently removes all messages marked as deleted (with a Deleted flag)
            from the current folder.
            </summary>
      <remarks>
        <p>
            This method represents IMAP EXPUNGE command.
            </p>
      </remarks>
      <seealso cref="M:Rebex.Net.Imap.SelectFolder(System.String)" />
      <seealso cref="M:Rebex.Net.Imap.UnselectFolder(System.Boolean)" />
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.SearchAsync(Rebex.Net.ImapMessageSet,Rebex.Net.ImapListFields,Rebex.Net.ImapSearchParameter[],System.Object)">
      <summary>
            Begins asynchronous Search operation.
            Search the current folder for messages that match the specified searching criteria.
            </summary>
      <param name="messageSet">A set of messages to be searched.</param>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <param name="parameters">Searching criteria.</param>
      <remarks>
            Searching criteria consist of one or more parameters. When multiple parameters are specified,
            the results is the intersection (AND) of all the messages that match.
            </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects that match the specified criteria.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.SearchAsync(Rebex.Net.ImapListFields,Rebex.Net.ImapSearchParameter[],System.Object)">
      <summary>
            Begins asynchronous Search operation.
            Search the current folder for messages that match the specified searching criteria.
            </summary>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <param name="parameters">Searching criteria.</param>
      <remarks>
        <para>
            Searching criteria consist of one or more parameters. When multiple parameters are specified,
            the results is the intersection (AND) of all the messages that match.
            </para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects that match the specified criteria.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.SetMessageFlagsAsync(Rebex.Net.ImapMessageSet,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags,System.String[],System.Object)">
      <summary>
            Begins asynchronous SetMessageFlags operation.
            Modifies the flags of messages in the current folder that belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <param name="keywords">Keywords to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.SetMessageFlagsAsync(System.Int32,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags,System.String[],System.Object)">
      <summary>
            Begins asynchronous SetMessageFlags operation.
            Modifies the flags of a message with the specified sequence number.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <param name="keywords">Keywords to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.SetMessageFlagsAsync(System.String,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags,System.String[],System.Object)">
      <summary>
            Begins asynchronous SetMessageFlags operation.
            Modifies the flags of a message with the specified unique ID.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <param name="keywords">Keywords to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.CopyMessageAsync(Rebex.Net.ImapMessageSet,System.String,System.Object)">
      <summary>
            Begins asynchronous CopyMessage operation.
            Copies messages from the current folder that belong to a specified message set to the specified folder.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="destinationFolder">Folder that will receive copies of messages.</param>
      <remarks>
        <p>
            This method represents IMAP COPY command.
            </p>
        <p>
            List of unique IDs of the new messages will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus (UIDPLUS) extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A list that contains the unique IDs of target messages, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.CopyMessageAsync(System.Int32,System.String,System.Object)">
      <summary>
            Begins asynchronous CopyMessage operation.
            Copies a message with the specified sequence number to the specified folder.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="destinationFolder">Folder that will receive copies of the message.</param>
      <remarks>
        <p>
            This method represents IMAP COPY command.
            </p>
        <p>
            Unique ID of the new message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Unique ID of the target message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.CopyMessageAsync(System.String,System.String,System.Object)">
      <summary>
            Begins asynchronous CopyMessage operation.
            Copies a message with the specified unique ID to the specified folder.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="destinationFolder">Folder that will receive copies of the message.</param>
      <remarks>
        <p>
            This method represents IMAP COPY command.
            </p>
        <p>
            Unique ID of the new message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus (UIDPLUS) extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Unique ID of the target message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessageAsync(System.String,Rebex.Mime.MimeMessage,Rebex.Net.ImapMessageFlags,System.String[],System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="message">Message to upload.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <remarks>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessageAsync(System.String,Rebex.Mail.MailMessage,Rebex.Net.ImapMessageFlags,System.String[],System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="message">Message to upload.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <p>
            This method represents IMAP APPEND command.
            </p>
      <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessageAsync(System.String,System.String,System.String,System.String,System.String,Rebex.Net.ImapMessageFlags,System.String[],System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="from">Message sender.</param>
      <param name="to">Comma-separated list of message recipients.</param>
      <param name="subject">The subject of the message.</param>
      <param name="body">The text body of the message.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <p>
            This method represents IMAP APPEND command.
            </p>
      <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessageAsync(System.String,System.IO.Stream,Rebex.Net.ImapMessageFlags,System.String[],System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message read from the stream to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="input">The input stream.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <remarks>
        <p>
            The stream must contain data in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessageAsync(System.String,System.String,Rebex.Net.ImapMessageFlags,System.String[],System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message read from a local file and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="path">The path to the mail message file.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <remarks>
        <p>
            The file must be in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.StoreMessageAsync(System.String,Rebex.Mime.MimeMessage,Rebex.Net.ImapMessageFlags,System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="message">Message to upload.</param>
      <param name="flags">Message flags.</param>
      <remarks>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.StoreRawMessageAsync(System.String,System.IO.Stream,Rebex.Net.ImapMessageFlags,Rebex.Mime.Headers.MailDateTime,System.String[],System.Object)">
      <summary>
            Begins asynchronous StoreRawMessage operation.
            Uploads the contents of the stream to the specified folder and sets its flags and date.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="input">The input stream.</param>
      <param name="flags">Message flags.</param>
      <param name="internalDate">IMAP message date/time.</param>
      <param name="keywords">Keywords to set.</param>
      <remarks>
        <p>
            Caution: Unlike the StoreMessage methods, StoreRawMessage does not parse the message to validate its structure and retrieve its date/time.
            User must ensure the stream supplied to this method represents a valid MIME format message.
            </p>
        <p>
            The stream must contain data in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Net.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.SendCommandAsync(System.String,System.Object[],System.Object)">
      <summary>
            Begins asynchronous SendCommand operation.
            Executes a command on the IMAP server.
            </summary>
      <param name="command">Command (e.g. "CAPABILITY").</param>
      <param name="parameters">List of parameters. Allowed types are <see cref="T:System.String" /> and a byte array.</param>
      <remarks>
        <p>
            The specified string parameters are send as is. It is caller's responsibility to properly format the parameters.<br />
            The specified byte array parameters are send as literals - binary blocks of data.<br />
            To use this method properly, some understanding of the IMAP protocol is strongly recommended.
            </p>
        <p>A call to SendCommand MUST be followed by a call to <see cref="M:Rebex.Net.Imap.ReadResponse">ReadResponse</see> method.</p>
        <p>Use <see cref="M:Rebex.Net.Imap.ReadResponse">ReadResponse</see> and SendCommand to implement various custom commands.</p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.ReadResponseAsync(System.Object)">
      <summary>
            Begins asynchronous ReadResponse operation.
            Returns the response of the IMAP server to the command.
            </summary>
      <remarks>
        <p>Use ReadResponse and <see cref="M:Rebex.Net.Imap.SendCommand(System.String,System.Object[])">SendCommand</see> to implement various custom commands.</p>
        <p>
            After a successful call to ReadResponse,
            the <see cref="T:Rebex.Net.Imap" /> object will be
            in <see cref="T:Rebex.Net.ImapState">Reading</see> state.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Response of the IMAP server.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.DeleteMessageAsync(Rebex.Net.ImapMessageSet,System.Object)">
      <summary>
            Begins asynchronous DeleteMessage operation.
            Marks messages that belong to a specified message set as deleted.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <remarks>
        <p>
            To actually remove messages marked as deleted, use the <see cref="M:Rebex.Net.Imap.Purge" /> method.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.DeleteMessageAsync(System.Int32,System.Object)">
      <summary>
            Begins asynchronous DeleteMessage operation.
            Marks a message with the specified sequence number as deleted.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <remarks>
        <p>
            To actually remove messages marked as deleted, use the <see cref="M:Rebex.Net.Imap.Purge" /> method.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.DeleteMessageAsync(System.String,System.Object)">
      <summary>
            Begins asynchronous DeleteMessage operation.
            Marks a message with the specified unique ID as deleted.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <remarks>
        <p>
            To actually remove messages marked as deleted, use the <see cref="M:Rebex.Net.Imap.Purge" /> method.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.UndeleteMessageAsync(Rebex.Net.ImapMessageSet,System.Object)">
      <summary>
            Begins asynchronous UndeleteMessage operation.
            Marks messages that belong to a specified message set as not deleted.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <remarks>
        <p>
            This only has effect on messages that were not <see cref="M:Rebex.Net.Imap.Purge">purged</see> yet.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.UndeleteMessageAsync(System.Int32,System.Object)">
      <summary>
            Begins asynchronous UndeleteMessage operation.
            Marks a message with the specified sequence number as not deleted.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <remarks>
        <p>
            This only has effect if the message was not <see cref="M:Rebex.Net.Imap.Purge">purged</see> yet.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.UndeleteMessageAsync(System.String,System.Object)">
      <summary>
            Begins asynchronous UndeleteMessage operation.
            Marks a message with the specified unique ID as not deleted.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <remarks>
        <p>
            This only has effect if the message was not <see cref="M:Rebex.Net.Imap.Purge">purged</see> yet.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageAsync(System.Int32,System.IO.Stream,System.Int64,System.Int32,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the specified part of the message with the specified sequence number
            and writes its data into a supplied stream.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="output">Stream that will receive the message.</param>
      <param name="remoteOffset">The starting offset of the message data to download.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end of message is reached.</param>
      <remarks>Uses IMAP FETCH command to retrieve the message.</remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageAsync(System.String,System.IO.Stream,System.Int64,System.Int32,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the specified part of the message with the specified unique ID
            and writes its data into a supplied stream.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="output">Stream that will receive the message.</param>
      <param name="remoteOffset">The starting offset of the message data to download.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end of message is reached.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageAsync(System.Int32,System.IO.Stream,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the message with the specified sequence number
            and writes its data into a supplied stream.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="output">Stream that will receive the message.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageAsync(System.String,System.IO.Stream,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the message with the specified unique ID
            and writes its data into a supplied stream.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="output">Stream that will receive the message.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageAsync(System.Int32,System.String,System.Int64,System.Int32,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the message with the specified sequence number
            and writes its data into a local file.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="fileName">The path of the local file. This cannot be a directory.</param>
      <param name="remoteOffset">The starting offset of the message data to download.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end of message is reached.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageAsync(System.String,System.String,System.Int64,System.Int32,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the message with the specified unique ID
            and writes its data into a local file.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="fileName">The path of the local file. This cannot be a directory.</param>
      <param name="remoteOffset">The starting offset of the message data to download.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end of message is reached.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageAsync(System.Int32,System.String,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the message with the specified sequence number
            and writes its data into a local file.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="fileName">The path of the local file. This cannot be a directory.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageAsync(System.String,System.String,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the message with the specified unique ID
            and writes its data into a local file.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="fileName">The path of the local file. This cannot be a directory.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessagesAsync(Rebex.Net.ImapMessageSet,Rebex.Net.ImapListFields,System.Action{Rebex.Net.ImapMessage},System.Object)">
      <summary>
            Begins asynchronous GetMessages operation.
            Downloads messages in the current folder that belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <param name="messageReceiver">A handler to process received messages. It has to process messages (and exit) quickly.
            If slow/complex processing is required, hand messages over to other thread.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve messages.</para>
        <para>By default, this method marks messages as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        <para>This method demands a lot of data to be received from the server. 
            The data has to be read from the network socket as fast as possible. 
            This places demand on <paramref name="messageReceiver" /> handler to process received messages as fast as possible. 
            If the handler slows the process too much, incoming data will not be read from the underlying network socket in sufficient speed
            and TCP internal buffers will be overfilled. This can cause strange network exceptions.
            </para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.GetMimeMessageAsync(System.Int32,System.Object)">
      <summary>
            Begins asynchronous GetMimeMessage operation.
            Downloads the message with the specified sequence number
            and loads it into an instance of <see cref="T:Rebex.Mime.MimeMessage" />.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A downloaded message.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMimeMessageAsync(System.String,System.Object)">
      <summary>
            Begins asynchronous GetMimeMessage operation.
            Downloads the message with the specified unique ID
            and loads it into an instance of <see cref="T:Rebex.Mime.MimeMessage" />.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A downloaded message.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMailMessageAsync(System.Int32,System.Object)">
      <summary>
            Begins asynchronous GetMailMessage operation.
            Downloads the message with the specified sequence number
            and loads it into an instance of <see cref="T:Rebex.Mail.MailMessage" />.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A downloaded message.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMailMessageAsync(System.String,System.Object)">
      <summary>
            Begins asynchronous GetMailMessage operation.
            Downloads the message with the specified unique ID
            and loads it into an instance of <see cref="T:Rebex.Mail.MailMessage" />.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A downloaded message.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageHeadersAsync(System.Int32,System.IO.Stream,System.Object)">
      <summary>
            Begins asynchronous GetMessageHeaders operation.
            Downloads the headers of a message with the specified sequence number
            and writes it into a supplied stream.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="output">Stream that will receive the message headers.</param>
      <remarks>Uses IMAP FETCH command to retrieve the headers.</remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The length of the headers in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageHeadersAsync(System.String,System.IO.Stream,System.Object)">
      <summary>
            Begins asynchronous GetMessageHeaders operation.
            Downloads the headers of a message with the specified unique ID
            and writes it into a supplied stream.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="output">Stream that will receive the message headers.</param>
      <remarks>Uses IMAP FETCH command to retrieve the headers.</remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The length of the headers in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessagePartAsync(System.Int32,System.String,System.Object)">
      <summary>
            Begins asynchronous GetMessagePart operation.
            Downloads the specified part of the message. Used to download separate attachments.
            Call <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" /> with <see cref="T:Rebex.Net.ImapListFields" />.MessageStructure argument
            to download the list of sections and access it using <see cref="M:Rebex.Net.ImapMessageInfo.GetParts" /> method.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="partId">Message section (from <see cref="P:Rebex.Net.ImapMessagePart.Id" />).</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Raw data of the specified message section.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessagePartAsync(System.String,System.String,System.Object)">
      <summary>
            Begins asynchronous GetMessagePart operation.
            Downloads the specified part of the message. Used to download separate attachments.
            Call <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" /> with <see cref="T:Rebex.Net.ImapListFields" />.MessageStructure argument
            to download the list of sections and access it using <see cref="M:Rebex.Net.ImapMessageInfo.GetParts" /> method.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="partId">Message section (from <see cref="P:Rebex.Net.ImapMessagePart.Id" />).</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Raw data of the specified message section.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessagePartAsync(System.Int32,System.String,System.IO.Stream,System.Object)">
      <summary>
            Begins asynchronous GetMessagePart operation.
            Downloads the specified part of the message into the specified stream. Used to download separate attachments.
            Call <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" /> with <see cref="T:Rebex.Net.ImapListFields" />.MessageStructure argument
            to download the list of sections and access it using <see cref="M:Rebex.Net.ImapMessageInfo.GetParts" /> method.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="partId">Message section (from <see cref="P:Rebex.Net.ImapMessagePart.Id" />).</param>
      <param name="output">Stream that will receive the part data.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessagePartAsync(System.String,System.String,System.IO.Stream,System.Object)">
      <summary>
            Begins asynchronous GetMessagePart operation.
            Downloads the specified part of the message into the specified stream. Used to download separate attachments.
            Call <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" /> with <see cref="T:Rebex.Net.ImapListFields" />.MessageStructure argument
            to download the list of sections and access it using <see cref="M:Rebex.Net.ImapMessageInfo.GetParts" /> method.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="partId">Message section (from <see cref="P:Rebex.Net.ImapMessagePart.Id" />).</param>
      <param name="output">Stream that will receive the part data.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageListAsync(Rebex.Net.ImapMessageSet,Rebex.Net.ImapListFields,System.Object)">
      <summary>
            Begins asynchronous GetMessageList operation.
            Gets the list of messages in the current folder that belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <remarks>
        <p>
            This method represents IMAP FETCH command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageListAsync(Rebex.Net.ImapListFields,System.Object)">
      <summary>
            Begins asynchronous GetMessageList operation.
            Gets the list of messages in the current folder.
            </summary>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <remarks>
        <p>
            This method represents IMAP FETCH command.
            </p>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageInfoAsync(System.Int32,Rebex.Net.ImapListFields,System.Object)">
      <summary>
            Begins asynchronous GetMessageInfo operation.
            Gets information about a message with the specified sequence number.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="fields">Specifies the scope of information to determine about the message.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A message info.</returns>
    </member>
    <member name="M:Rebex.Net.Imap.GetMessageInfoAsync(System.String,Rebex.Net.ImapListFields,System.Object)">
      <summary>
            Begins asynchronous GetMessageInfo operation.
            Gets information about a message with the specified unique ID
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="fields">Specifies the scope of information to determine about the message.</param>
      <remarks>
        <para>Uses IMAP FETCH command to retrieve the message.</para>
        <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
      </remarks>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A message info.</returns>
    </member>
    <member name="T:Rebex.Net.ImapCopyResult">
      <summary>
            A result of the <see cref="M:Rebex.Net.Imap.CopyMessage(Rebex.Net.ImapMessageSet,System.String)">CopyMessage</see> method. Contains the source and target unique IDs and can map between them.
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapCopyResult.GetTargetUniqueIds">
      <summary>
            Gets and array of new unique IDs.
            </summary>
      <returns>Array of unique IDs.</returns>
    </member>
    <member name="M:Rebex.Net.ImapCopyResult.GetSourceUniqueIds">
      <summary>
            Gets and array of original unique IDs.
            </summary>
      <returns>Array of unique IDs.</returns>
    </member>
    <member name="M:Rebex.Net.ImapCopyResult.GetTargetMessageSet">
      <summary>
            Gets a message set comprised of the new unique IDs.
            </summary>
      <returns>Message set.</returns>
    </member>
    <member name="M:Rebex.Net.ImapCopyResult.GetSourceMessageSet">
      <summary>
            Gets a message set comprised of the original unique IDs.
            </summary>
      <returns>Message set.</returns>
    </member>
    <member name="M:Rebex.Net.ImapCopyResult.MapTargetToSource(System.String)">
      <summary>
            Returns a unique ID of the source message corresponding to the specified target message unique ID.
            </summary>
      <param name="targetUniqueId">Target message unique ID.</param>
      <returns>Source message unique ID, or null if not present.</returns>
    </member>
    <member name="M:Rebex.Net.ImapCopyResult.MapSourceToTarget(System.String)">
      <summary>
            Returns a unique ID of the target message corresponding to the specified source message unique ID.
            </summary>
      <param name="sourceUniqueId">Source message unique ID.</param>
      <returns>Target message unique ID, or null if not present.</returns>
    </member>
    <member name="P:Rebex.Net.ImapCopyResult.MessageCount">
      <summary>
            Get the number of copied messages.
            </summary>
      <value>Number of copied messages.</value>
    </member>
    <member name="T:Rebex.Net.ImapResponseReadEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.Imap.ResponseRead">ResponseRead</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapResponseReadEventArgs.Response">
      <summary>
            Gets the raw Imap response.
            </summary>
      <value>The raw Imap response.</value>
    </member>
    <member name="M:Rebex.Net.ImapResponseReadEventArgs.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapResponseReadEventArgs" /> class with the specified response string.
            </summary>
      <param name="response">The raw response line that was read.</param>
    </member>
    <member name="T:Rebex.Net.ImapCommandSentEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.Imap.CommandSent">CommandSent</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapCommandSentEventArgs.Command">
      <summary>
            Gets the command string.
            </summary>
      <value>The command string.</value>
    </member>
    <member name="M:Rebex.Net.ImapCommandSentEventArgs.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapCommandSentEventArgs" /> class with the specified command string.
            </summary>
      <param name="command">The command that was sent.</param>
    </member>
    <member name="T:Rebex.Net.ImapStateChangedEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.Imap.StateChanged">StateChanged</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapStateChangedEventArgs.OldState">
      <summary>
            Gets the old state.
            </summary>
      <value>The state that was changed.</value>
    </member>
    <member name="P:Rebex.Net.ImapStateChangedEventArgs.NewState">
      <summary>
            Gets the new state.
            </summary>
      <value>The new and current state.</value>
    </member>
    <member name="M:Rebex.Net.ImapStateChangedEventArgs.#ctor(Rebex.Net.ImapState,Rebex.Net.ImapState)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapStateChangedEventArgs" /> class with the specified old state and new state.
            </summary>
      <param name="oldState">The old state.</param>
      <param name="newState">The new state.</param>
    </member>
    <member name="T:Rebex.Net.ImapTransferProgressEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.Imap.TransferProgress">TransferProgress</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapTransferProgressEventArgs.State">
      <summary>
            Gets the transfer state.
            </summary>
      <value>The transfer state.</value>
    </member>
    <member name="P:Rebex.Net.ImapTransferProgressEventArgs.BytesTransferred">
      <summary>
            Gets the total number of bytes transferred during the current transfer.
            </summary>
      <value>The number of bytes transferred.</value>
      <remarks>This value is valid only when <see cref="P:Rebex.Net.ImapTransferProgressEventArgs.State" /> is not <see cref="P:Rebex.Net.ImapTransferProgressEventArgs.State">None</see>.</remarks>
    </member>
    <member name="P:Rebex.Net.ImapTransferProgressEventArgs.BytesSinceLastEvent">
      <summary>
            Gets the number of bytes transferred during the current transfer since the last time the event was raised.
            </summary>
      <value>The number of bytes transferred since the last time the event was raised.</value>
      <remarks>This value is valid only when <see cref="P:Rebex.Net.ImapTransferProgressEventArgs.State" /> is not <see cref="P:Rebex.Net.ImapTransferProgressEventArgs.State">None</see>.</remarks>
    </member>
    <member name="P:Rebex.Net.ImapTransferProgressEventArgs.BytesTotal">
      <summary>
            Gets the total number of bytes to be transferred during the current transfer.
            </summary>
      <value>The total number of bytes to be transferred during the current transfer.</value>
      <remarks>This value is valid only when <see cref="P:Rebex.Net.ImapTransferProgressEventArgs.State" /> is not <see cref="P:Rebex.Net.ImapTransferProgressEventArgs.State">None</see>.</remarks>
    </member>
    <member name="M:Rebex.Net.ImapTransferProgressEventArgs.#ctor(Rebex.Net.ImapTransferState,System.Int64,System.Int64,System.Int64)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapTransferProgressEventArgs" /> class with the specified state,
            number of bytes transferred during the current transfer and progress since the last time the event was raised.
            </summary>
      <param name="state">Current state.</param>
      <param name="bytesTransferred">Number of bytes transferred. Ignored if <b>state</b> is <see cref="T:Rebex.Net.ImapTransferState">ImapTransferState.None</see>.</param>
      <param name="bytesSinceLastEvent">Number of bytes transferred since the last time the event was raised. Ignored if <b>state</b> is <see cref="T:Rebex.Net.ImapTransferState">ImapTransferState.None</see>.</param>
      <param name="bytesTotal">Total number of bytes to be transferred during this transfer.</param>
    </member>
    <member name="T:Rebex.Net.ImapNotificationEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.Imap.Notification">Notification</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapNotificationEventArgs.Notification">
      <summary>
            Gets the notification type.
            </summary>
      <value>Notification type.</value>
    </member>
    <member name="P:Rebex.Net.ImapNotificationEventArgs.Response">
      <summary>
            Gets the IMAP response containing the notification.
            </summary>
      <value>IMAP response.</value>
    </member>
    <member name="P:Rebex.Net.ImapNotificationEventArgs.Line">
      <summary>
            Gets the index of the line in response that contains this notification.
            </summary>
      <value>Index of the line in response that contains this notification.</value>
    </member>
    <member name="P:Rebex.Net.ImapNotificationEventArgs.Solicited">
      <summary>
            Gets the value indicating whether the notification is a standard response to the requested command.
            </summary>
      <value>True if the notification was solicited, false otherwise.</value>
    </member>
    <member name="P:Rebex.Net.ImapNotificationEventArgs.Number">
      <summary>
            Gets the contents of the response line if it 
            was composed of a single integer number. Otherwise, zero is returned.
            </summary>
      <value>The contents of the response line if there was a number.</value>
      <remarks>
            This property will be set for <see cref="F:Rebex.Net.ImapNotification.MessageCount" />, 
            <see cref="F:Rebex.Net.ImapNotification.RecentMessages" /> and
            <see cref="F:Rebex.Net.ImapNotification.MessageRemoved" /> notifications.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ImapNotificationEventArgs.#ctor(Rebex.Net.ImapNotification,Rebex.Net.ImapResponse,System.Int32,System.Boolean)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapNotificationEventArgs" /> class with the specified notification type,
            response line and a value indicating whether the notification was solicited.
            </summary>
      <param name="notification">Notification type.</param>
      <param name="response">IMAP response that contains this notification.</param>
      <param name="line">Response line.</param>
      <param name="solicited">Value indicating whether the notification is a standard response to the requested command.</param>
    </member>
    <member name="T:Rebex.Net.ImapExceptionStatus">
      <summary>
            Defines status codes for the <see cref="T:Rebex.Net.ImapException" /> class.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.ConnectFailure">
      <summary>
            The remote service point could not be contacted at the transport level.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.ConnectionClosed">
      <summary>
            The connection was prematurely closed.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.SocketError">
      <summary>
            The error at transport level occurred.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.NameResolutionFailure">
      <summary>
            The name resolver service could not resolve the host name.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.Pending">
      <summary>
            An operation is pending.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.ProtocolError">
      <summary>
            The response received from the server was complete but indicated a protocol-level error.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.ProxyNameResolutionFailure">
      <summary>
            The name resolver service could not resolve the proxy host name.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.OperationAborted">
      <summary>
            The operation was aborted by a call to the <see cref="M:Rebex.Net.Imap.Abort" /> method.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.UnclassifiableError">
      <summary>
            An unclassifiable error occurred. This is the default value for <see cref="P:Rebex.Net.ImapException.Status" />.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.ServerProtocolViolation">
      <summary>
            The server response was not a valid IMAP4 response.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.Timeout">
      <summary>
            No response was received during the time-out period for a request.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.AsyncError">
      <summary>
            General exception in asynchronous call.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.LoginRequired">
      <summary>
            The operation cannot be performed before a successful login.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.OperationFailure">
      <summary>
            The requested operation could not be completed.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExceptionStatus.ParsingError">
      <summary>
            Error while parsing the server response.
            </summary>
    </member>
    <member name="T:Rebex.Net.ImapException">
      <summary>
            The exception that is thrown when an error occurs while using Imap component.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapException.Status">
      <summary>
            Gets the status of the response.
            </summary>
      <value>One of the <see cref="T:Rebex.Net.ImapExceptionStatus" /> values.</value>
    </member>
    <member name="P:Rebex.Net.ImapException.Response">
      <summary>
            Gets the <see cref="T:Rebex.Net.ImapResponse" /> of the exception.
            </summary>
      <value>The <see cref="T:Rebex.Net.ImapResponse" /> if <see cref="P:Rebex.Net.ImapException.Status" /> is <see cref="T:Rebex.Net.ImapExceptionStatus">ProtocolError</see>; <b>null</b> reference otherwise.</value>
    </member>
    <member name="M:Rebex.Net.ImapException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapException" /> class with serialized data.
            </summary>
      <param name="info">The object that holds the serialized object data.</param>
      <param name="context">The contextual information about the source or destination.</param>
    </member>
    <member name="M:Rebex.Net.ImapException.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapException" /> class.
            </summary>
      <remarks>This constructor initializes the <see cref="P:System.Exception.Message">Message</see> property of the new instance to a message that describes the general error.</remarks>
    </member>
    <member name="M:Rebex.Net.ImapException.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapException" /> class with the specified error message.
            </summary>
      <param name="message">The message that describes the error.</param>
    </member>
    <member name="M:Rebex.Net.ImapException.#ctor(System.String,Rebex.Net.ImapExceptionStatus)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapException" /> class with the specified error message and status.
            </summary>
      <param name="message">The message that describes the error.</param>
      <param name="status">One of the <see cref="T:Rebex.Net.ImapExceptionStatus" /> values.</param>
    </member>
    <member name="M:Rebex.Net.ImapException.#ctor(System.String,System.Exception)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapException" /> class with the specified error message
            and a reference to the inner exception that is the cause of this exception.
            </summary>
      <param name="message">The message that describes the error.</param>
      <param name="innerException">The exception that is the cause of the current exception. If the <i>innerException</i> parameter is not a null reference, the current exception is raised in a <b>catch</b> block that handles the inner exception.</param>
    </member>
    <member name="M:Rebex.Net.ImapException.#ctor(System.String,System.Exception,Rebex.Net.ImapExceptionStatus)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapException" /> class with the specified error message, status,
            and a reference to the inner exception that is the cause of this exception.
            </summary>
      <param name="message">The message that describes the error.</param>
      <param name="innerException">The exception that is the cause of the current exception. If the <i>innerException</i> parameter is not a null reference, the current exception is raised in a <b>catch</b> block that handles the inner exception.</param>
      <param name="status">One of the <see cref="T:Rebex.Net.ImapExceptionStatus" /> values.</param>
    </member>
    <member name="M:Rebex.Net.ImapException.#ctor(Rebex.Net.ImapResponse)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapException" /> class with the specified <see cref="T:Rebex.Net.ImapResponse" />.
            </summary>
      <param name="response">The <see cref="T:Rebex.Net.ImapResponse" />.</param>
    </member>
    <member name="T:Rebex.Net.ImapFolder">
      <summary>
            Represents an IMAP folder.
            </summary>
      <remarks>
            Instances of this class occur in a folder list returned by <see cref="M:Rebex.Net.Imap.GetFolderList" /> methods,
            are returned by <see cref="M:Rebex.Net.Imap.GetFolderInfo(System.String)" /> method and by a <see cref="P:Rebex.Net.Imap.CurrentFolder" /> property.
            Not all of these three methods/properties return the same set of information - for example, only
            <see cref="M:Rebex.Net.Imap.GetFolderList" /> methods return the <see cref="P:Rebex.Net.ImapFolder.Delimiter" />, but it
            is also the only one that doesn't return the <see cref="P:Rebex.Net.ImapFolder.TotalMessageCount" />, <see cref="P:Rebex.Net.ImapFolder.RecentMessageCount" />, etc.
            Please see the description of specific property to learn when it is available.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ImapFolder.PermanentFlags">
      <summary>
            Gets message flags that can be changed permanently.
            </summary>
      <value>Message flags that can be changed permanently.</value>
    </member>
    <member name="P:Rebex.Net.ImapFolder.SupportedFlags">
      <summary>
            Gets supported message flags.
            </summary>
      <value>Supported message flags.</value>
    </member>
    <member name="P:Rebex.Net.ImapFolder.ReadOnly">
      <summary>
            Gets a value indicating whether the folder is read-only.
            </summary>
      <value>A value indicating whether the folder is read-only.</value>
    </member>
    <member name="P:Rebex.Net.ImapFolder.IsInteresting">
      <summary>
            Gets a value indicating whether this folder contains messages
            that have been added since the last time the folder was selected.
            </summary>
      <value>Value indicating whether this folder contains any new messages.</value>
    </member>
    <member name="P:Rebex.Net.ImapFolder.IsSelectable">
      <summary>
            Gets a value indicating whether it is possible to select this folder.
            </summary>
      <value>A value indicating whether it is possible to select this folder.</value>
    </member>
    <member name="P:Rebex.Net.ImapFolder.CanContainInferiors">
      <summary>
            Gets a value indicating whether any subfolders can exist
            under this folder. This value is only set for <see cref="T:Rebex.Net.ImapFolder">folders</see>
            returned by a call to <see cref="M:Rebex.Net.Imap.GetFolderList" /> methods.
            </summary>
      <value>Value indicating whether any child folders can exist under this folder.</value>
    </member>
    <member name="P:Rebex.Net.ImapFolder.TotalMessageCount">
      <summary>
            Gets the number of messages in the folder.
            </summary>
      <value>Number of messages in the folder.</value>
      <remarks>
            This property is not set for <see cref="T:Rebex.Net.ImapFolder">folders</see>
            returned by a call to <see cref="M:Rebex.Net.Imap.GetFolderList" /> methods
            and will contain a value of 0.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ImapFolder.RecentMessageCount">
      <summary>
            Gets the number of messages that arrived recently.
            This property is not set for <see cref="T:Rebex.Net.ImapFolder">folders</see>
            returned by a call to <see cref="M:Rebex.Net.Imap.GetFolderList" /> methods
            and will contain a value of 0.
            </summary>
      <value>Number of messages that arrived recently.</value>
      <remarks>
            If multiple sessions are accessing the mailbox simultaneously,
            only one of them will be informed about each recently arrived messages.
            Also, the only reliable way to identify the recent messages is to look
            at the message flags or to do a <see cref="M:Rebex.Net.Imap.Search(Rebex.Net.ImapSearchParameter[])">Search</see> for them.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ImapFolder.FirstUnseenMessageNumber">
      <summary>
            Gets the number of messages that have not been read.
            This property is not set for <see cref="T:Rebex.Net.ImapFolder">folders</see>
            returned by a call to <see cref="M:Rebex.Net.Imap.GetFolderList" /> 
            and <see cref="M:Rebex.Net.Imap.GetFolderInfo(System.String)" /> methods and will contain a value of 0.
            </summary>
      <value>Sequence number of the first message that has not been read.</value>
    </member>
    <member name="P:Rebex.Net.ImapFolder.NotSeenMessageCount">
      <summary>
            Gets the number of messages that have not been read.
            This property is not set for <see cref="T:Rebex.Net.ImapFolder">folders</see>
            returned by a call to <see cref="M:Rebex.Net.Imap.GetFolderList" /> methods
            and will contain a value of 0.
            </summary>
      <value>Number of messages that have not been read.</value>
    </member>
    <member name="P:Rebex.Net.ImapFolder.NextUniqueId">
      <summary>
            Gets the unique ID to be assigned to a next message that arrives into this folder.
            This property is not set for <see cref="T:Rebex.Net.ImapFolder">folders</see>
            returned by a call to <see cref="M:Rebex.Net.Imap.GetFolderList" /> methods
            and will contain a value of 0. Also, some servers don't support this,
            and null (Nothing in Visual Basic) will be returned for these as well.
            </summary>
      <value>Unique ID of the next message.</value>
    </member>
    <member name="P:Rebex.Net.ImapFolder.ValidityId">
      <summary>
            Gets the validity ID of the mailbox.
            This property is not set for <see cref="T:Rebex.Net.ImapFolder">folders</see>
            returned by a call to <see cref="M:Rebex.Net.Imap.GetFolderList" /> methods
            and will contain a value of 0.
            </summary>
      <value>The validity ID of the mailbox.</value>
    </member>
    <member name="P:Rebex.Net.ImapFolder.Name">
      <summary>
            Gets the name of the folder.
            </summary>
      <value>Name of the folder.</value>
    </member>
    <member name="P:Rebex.Net.ImapFolder.Delimiter">
      <summary>
            Gets a string that is used to delimit levels of hierarchy under
            this folder. It usually contains either '/' or '.'.
            This value is only set for <see cref="T:Rebex.Net.ImapFolder">folders</see>
            returned by a call to <see cref="M:Rebex.Net.Imap.GetFolderList" /> methods.
            For <see cref="M:Rebex.Net.Imap.GetFolderInfo(System.String)" /> method and <see cref="P:Rebex.Net.Imap.CurrentFolder" />
            property, this will throw an exception.
            </summary>
      <value>Hierarchy delimiter.</value>
    </member>
    <member name="P:Rebex.Net.ImapFolder.SpecialUse">
      <summary>
            Returns folder purpose if known. This property only contains useful information if
            the IMAP server supports the XLIST command or extended LIST command (RFC 6154) and the folder list was returned using the <see cref="M:Rebex.Net.Imap.GetFolderList" /> method.
            At the moment, this is not suppored in <see cref="T:Rebex.Net.ImapFolderListMode" />.Subscribed mode.
            </summary>
      <value>Folder purpose.</value>
    </member>
    <member name="T:Rebex.Net.ImapFolderCollection">
      <summary>
            Provides a container for a collection of <see cref="T:Rebex.Net.ImapFolder" /> objects.
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapFolderCollection.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapFolderCollection" /> class.
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapFolderCollection.Clone">
      <summary>
            Creates a shallow copy of the <see cref="T:Rebex.Net.ImapFolderCollection" />.
            </summary>
      <returns>A shallow copy of the <see cref="T:Rebex.Net.ImapFolderCollection" />.</returns>
      <remarks>
            A shallow copy of a collection copies only the elements
            of the collection, whether they are reference types or value
            types, but it does not copy the objects that the references
            refer to. The references in the new collection point to the same
            objects that the references in the original collection point to.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ImapFolderCollection.GetEnumerator">
      <summary>
            Gets an <see cref="T:System.Collections.Generic.IEnumerator`1" /> for the <see cref="T:Rebex.Net.ImapFolderCollection" /> collection.
            </summary>
      <returns>An <see cref="T:System.Collections.Generic.IEnumerator`1" /> for the collection.</returns>
    </member>
    <member name="P:Rebex.Net.ImapFolderCollection.SyncRoot">
      <summary>
            Gets an object that can be used to synchronize access to the <see cref="T:Rebex.Net.ImapFolderCollection" />.
            </summary>
      <value>An object that can be used to synchronize access to the <see cref="T:Rebex.Net.ImapFolderCollection" />.</value>
    </member>
    <member name="M:Rebex.Net.ImapFolderCollection.Add(Rebex.Net.ImapFolder)">
      <summary>
            Adds the <see cref="T:Rebex.Net.ImapFolder" /> to the <see cref="T:Rebex.Net.ImapFolderCollection" />.
            </summary>
      <param name="item">The <see cref="T:Rebex.Net.ImapFolder" /> to be added to the <see cref="T:Rebex.Net.ImapFolderCollection" />.</param>
    </member>
    <member name="M:Rebex.Net.ImapFolderCollection.RemoveAt(System.Int32)">
      <summary>
            Removes the <see cref="T:Rebex.Net.ImapFolder" /> at the specified index from the <see cref="T:Rebex.Net.ImapFolderCollection" />.
            </summary>
      <param name="index">The zero-based index of the <see cref="T:Rebex.Net.ImapFolder" /> to remove.</param>
    </member>
    <member name="P:Rebex.Net.ImapFolderCollection.Count">
      <summary>
            Gets the number of elements contained in the <see cref="T:Rebex.Net.ImapFolderCollection" />.
            </summary>
      <value>The number of elements contained in the <see cref="T:Rebex.Net.ImapFolderCollection" />.</value>
    </member>
    <member name="P:Rebex.Net.ImapFolderCollection.Item(System.Int32)">
      <summary>
            Gets the <see cref="T:Rebex.Net.ImapFolder" /> at the specified index.
            </summary>
      <param name="index">The zero-based index of the <see cref="T:Rebex.Net.ImapFolder" /> to get.</param>
      <value>
        <see cref="T:Rebex.Net.ImapFolder" /> of the specified index.</value>
    </member>
    <member name="T:Rebex.Net.ImapMessageCollection">
      <summary>
            Provides a container for a collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects.
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ImapMessageCollection" /> class.
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.Clone">
      <summary>
            Creates a shallow copy of the <see cref="T:Rebex.Net.ImapMessageCollection" />.
            </summary>
      <returns>A shallow copy of the <see cref="T:Rebex.Net.ImapMessageCollection" />.</returns>
      <remarks>
            A shallow copy of a collection copies only the elements
            of the collection, whether they are reference types or value
            types, but it does not copy the objects that the references
            refer to. The references in the new collection point to the same
            objects that the references in the original collection point to.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.GetEnumerator(System.Int32,System.Int32)">
      <summary>
            Returns an enumerator for a section of the <see cref="T:Rebex.Net.ImapMessageCollection" />.
            </summary>
      <param name="index">The zero-based starting index of the <see cref="T:Rebex.Net.ImapMessageCollection" /> section that the enumerator should refer to.</param>
      <param name="count">The number of elements in the <see cref="T:Rebex.Net.ImapMessageCollection" /> section that the enumerator should refer to.</param>
      <returns>An <see cref="T:System.Collections.IEnumerator" /> for the specified section of the ArrayList.</returns>
      <remarks>Not supported by Rebex IMAP for .NET Compact Framework.</remarks>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.GetEnumerator">
      <summary>
            Gets an <see cref="T:System.Collections.Generic.IEnumerator`1" /> for the <see cref="T:Rebex.Net.ImapMessageCollection" /> collection.
            </summary>
      <returns>An <see cref="T:System.Collections.Generic.IEnumerator`1" /> for the collection.</returns>
    </member>
    <member name="P:Rebex.Net.ImapMessageCollection.SyncRoot">
      <summary>
            Gets an object that can be used to synchronize access to the <see cref="T:Rebex.Net.ImapMessageCollection" />.
            </summary>
      <value>An object that can be used to synchronize access to the <see cref="T:Rebex.Net.ImapMessageCollection" />.</value>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.Insert(System.Int32,Rebex.Net.ImapMessageInfo)">
      <summary>
            Inserts the <see cref="T:Rebex.Net.ImapMessageInfo" /> at the specified position in the <see cref="T:Rebex.Net.ImapMessageCollection" />.
            </summary>
      <param name="index">The zero-based index at which the item is to be inserted.</param>
      <param name="item">The <see cref="T:Rebex.Net.ImapMessageInfo" /> to be inserted to the <see cref="T:Rebex.Net.ImapMessageCollection" />.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.Add(Rebex.Net.ImapMessageInfo)">
      <summary>
            Adds the <see cref="T:Rebex.Net.ImapMessageInfo" /> to the <see cref="T:Rebex.Net.ImapMessageCollection" />.
            </summary>
      <param name="item">The <see cref="T:Rebex.Net.ImapMessageInfo" /> to be added to the <see cref="T:Rebex.Net.ImapMessageCollection" />.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.Remove(Rebex.Net.ImapMessageInfo)">
      <summary>
            Removes the specified <see cref="T:Rebex.Net.ImapMessageInfo" /> from the <see cref="T:Rebex.Net.ImapMessageCollection" />.
            </summary>
      <param name="item">The <see cref="T:Rebex.Net.ImapMessageInfo" /> to remove from the <see cref="T:Rebex.Net.ImapMessageCollection" />.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.Remove(System.String)">
      <summary>
            Removes <see cref="T:Rebex.Net.ImapMessageInfo" /> from the <see cref="T:Rebex.Net.ImapMessageCollection" /> having specified unique id.
            </summary>
      <param name="uniqueId">Unique id of the <see cref="T:Rebex.Net.ImapMessageInfo" /> to remove from the <see cref="T:Rebex.Net.ImapMessageCollection" />.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.Remove(System.Int32)">
      <summary>
            Removes <see cref="T:Rebex.Net.ImapMessageInfo" /> from the <see cref="T:Rebex.Net.ImapMessageCollection" /> having specified sequence number.
            </summary>
      <param name="sequenceNumber">Sequence number of the <see cref="T:Rebex.Net.ImapMessageInfo" /> to remove from the <see cref="T:Rebex.Net.ImapMessageCollection" />.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.RemoveAt(System.Int32)">
      <summary>
            Removes the <see cref="T:Rebex.Net.ImapMessageInfo" /> at the specified index from the <see cref="T:Rebex.Net.ImapMessageCollection" />.
            </summary>
      <param name="index">The zero-based index of the <see cref="T:Rebex.Net.ImapMessageInfo" /> to remove.</param>
    </member>
    <member name="P:Rebex.Net.ImapMessageCollection.Count">
      <summary>
            Gets the number of elements contained in the <see cref="T:Rebex.Net.ImapMessageCollection" />.
            </summary>
      <value>The number of elements contained in the <see cref="T:Rebex.Net.ImapMessageCollection" />.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageCollection.Item(System.Int32)">
      <summary>
            Gets the <see cref="T:Rebex.Net.ImapMessageInfo" /> at the specified index.
            </summary>
      <param name="index">The zero-based index of the <see cref="T:Rebex.Net.ImapMessageInfo" /> to get.</param>
      <value>
        <see cref="T:Rebex.Net.ImapMessageInfo" /> of the specified index.</value>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.Find(System.String)">
      <summary>
            Returns the <see cref="T:Rebex.Net.ImapMessageInfo" /> of the specified unique id.
            </summary>
      <param name="uniqueId">The unique ID of the <see cref="T:Rebex.Net.ImapMessageInfo" /> to get.</param>
      <returns>
        <see cref="T:Rebex.Net.ImapMessageInfo" /> of the specified name.</returns>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.Find(System.Int32)">
      <summary>
            Returns the <see cref="T:Rebex.Net.ImapMessageInfo" /> of the specified id.
            </summary>
      <param name="sequenceNumber">The ID of the <see cref="T:Rebex.Net.ImapMessageInfo" /> to get.</param>
      <returns>
        <see cref="T:Rebex.Net.ImapMessageInfo" /> of the specified name.</returns>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.ToUniqueIdMessageSet">
      <summary>
            Returns an <see cref="T:Rebex.Net.ImapMessageSet" /> that contains unique IDs of messages in this collection.
            </summary>
      <returns>IMAP message set.</returns>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.ToSequenceNumberMessageSet">
      <summary>
            Returns an <see cref="T:Rebex.Net.ImapMessageSet" /> that contains sequence numbers of messages in this collection.
            </summary>
      <returns>IMAP message set.</returns>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.Sort">
      <summary>
            Sorts the messages in the entire <see cref="T:Rebex.Net.ImapMessageCollection" /> by sequence number ascending.
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.Sort(System.Collections.IComparer)">
      <summary>
            Sorts the elements in the entire <see cref="T:Rebex.Net.ImapMessageCollection" /> using the specified comparer.
            </summary>
      <param name="comparer">The <see cref="T:System.Collections.IComparer" /> implementation to use when comparing elements, or a null reference to sort by sequence number ascending.</param>
      <remarks>This method uses <see cref="M:System.Collections.ArrayList.Sort(System.Collections.IComparer)" />, which uses QuickSort algorithm. See its description for more information.</remarks>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.Sort(System.Int32,System.Int32,System.Collections.IComparer)">
      <summary>
            Sorts the elements in a section of <see cref="T:Rebex.Net.ImapMessageCollection" /> using the specified comparer.
            </summary>
      <param name="index">The zero-based starting index of the range to sort.</param>
      <param name="count">The length of the range to sort.</param>
      <param name="comparer">The <see cref="T:System.Collections.IComparer" /> implementation to use when comparing elements, or a null reference to sort by sequence number ascending.</param>
      <remarks>This method uses <see cref="M:System.Collections.ArrayList.Sort(System.Int32,System.Int32,System.Collections.IComparer)" />, which uses QuickSort algorithm. See its description for more information.</remarks>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.Clear">
      <summary>
            Removes all items from the collection.
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.CopyTo(Rebex.Net.ImapMessageInfo[],System.Int32)">
      <summary>
            Copies the range of elements from the <see cref="T:Rebex.Net.ImapMessageCollection" /> to a one-dimensional
            <see cref="T:Rebex.Net.ImapMessageInfo" /> array, starting at the specified index of the target array.
            </summary>
      <param name="array">One-dimensional zero-based <see cref="T:Rebex.Net.ImapMessageInfo" /> array that is the destination of the elements copied from the collection.</param>
      <param name="arrayIndex">A zero-based index in the destination array at which copying begins.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.IndexOf(Rebex.Net.ImapMessageInfo)">
      <summary>
            Returns a zero-based index of the specified item within the <see cref="T:Rebex.Net.ImapMessageCollection" />, or -1 if not found.
            </summary>
      <param name="item">The <see cref="T:Rebex.Net.ImapMessageInfo" /> to locate.</param>
      <returns>Zero-based index of the specified item within the collection, or -1.</returns>
    </member>
    <member name="M:Rebex.Net.ImapMessageCollection.Contains(Rebex.Net.ImapMessageInfo)">
      <summary>
            Determines whether the specified item is present in the <see cref="T:Rebex.Net.ImapMessageCollection" />.
            </summary>
      <param name="item">The <see cref="T:Rebex.Net.ImapMessageInfo" /> to locate.</param>
      <returns>True if present, false otherwise.</returns>
    </member>
    <member name="T:Rebex.Net.ImapMessageInfo">
      <summary>
            Contains information about a single mail message on the IMAP server.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.ValidFields">
      <summary>
            Returns a bit mask specifying which fields are valid.
            </summary>
      <value>A bit mask.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.HeadersParsingError">
      <summary>
            Gets an error that occurred during message headers parsing.
            </summary>
      <value>An error that occurred during message headers parsing.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.BodyParsingError">
      <summary>
            Gets an error that occurred during message body parsing.
            </summary>
      <value>An error that occurred during message body parsing.</value>
    </member>
    <member name="M:Rebex.Net.ImapMessageInfo.GetRawHeaders">
      <summary>
            Returns the raw form of the message headers, if available.
            </summary>
      <value>Raw message headers; or null if not available.</value>
      <remarks>
            This field is only set if the <see cref="T:Rebex.Net.ImapListFields">ImapListFields.FullHeaders</see> options
            was specified in a call to <see cref="M:Rebex.Net.Imap.GetMessageList(Rebex.Net.ImapListFields)" /> or <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" />.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.SequenceNumber">
      <summary>
            Gets the message sequence number.
            </summary>
      <value>Sequence number.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.UniqueId">
      <summary>
            Gets the message unique ID (case-sensitive string). 
            Note that it can contain a slash '/' - unsuitable to be used as a filename.
            </summary>
      <value>Unique ID.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.Flags">
      <summary>
            Gets the message flags.
            </summary>
      <value>Message flags.</value>
    </member>
    <member name="M:Rebex.Net.ImapMessageInfo.GetKeywords">
      <summary>
            Gets the list of keywords (custom flags) associated with the message.
            </summary>
      <returns>List of keywords.</returns>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.IsAnswered">
      <summary>
            Returns true if the <see cref="P:Rebex.Net.ImapMessageInfo.Flags" /> property contains the <see cref="P:Rebex.Net.ImapMessageInfo.Flags">Answered</see> flag.
            </summary>
      <value>True if answered.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.IsDeleted">
      <summary>
            Returns true if the <see cref="P:Rebex.Net.ImapMessageInfo.Flags" /> property contains the <see cref="P:Rebex.Net.ImapMessageInfo.Flags">Deleted</see> flag.
            </summary>
      <value>True if deleted.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.IsDraft">
      <summary>
            Returns true if the <see cref="P:Rebex.Net.ImapMessageInfo.Flags" /> property contains the <see cref="P:Rebex.Net.ImapMessageInfo.Flags">Draft</see> flag.
            </summary>
      <value>True if draft.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.IsFlagged">
      <summary>
            Returns true if the <see cref="P:Rebex.Net.ImapMessageInfo.Flags" /> property contains the <see cref="P:Rebex.Net.ImapMessageInfo.Flags">Flagged</see> flag.
            </summary>
      <value>True if flagged.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.IsRecent">
      <summary>
            Returns true if the <see cref="T:Rebex.Net.ImapMessageFlags" /> property contains the <see cref="F:Rebex.Net.ImapMessageFlags.Recent" /> flag.  
            This flag is set if the message has arrived during the current session and it is the first active session to see the message.
            </summary>
      <value>True if recent.</value>
      <remarks>
            Subsequent sessions won't see the flag (unless the folder was selected as read-only during the
            first session). This flag cannot be altered by the client.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.IsSeen">
      <summary>
            Returns true if the <see cref="P:Rebex.Net.ImapMessageInfo.Flags" /> property contains the <see cref="P:Rebex.Net.ImapMessageInfo.Flags">Seen</see> flag.
            This flag is set if the message has been read.
            </summary>
      <value>True if seen (read).</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.Length">
      <summary>
            Gets the length of the message.
            </summary>
      <value>Message length.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.Date">
      <summary>
            Gets the origination date of this message.
            </summary>
      <value>The origination date.</value>
      <remarks>
            The origination date specifies the date and time at which the creator
            of the message indicated that the message was complete and ready to enter
            the mail delivery system.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.ReceivedDate">
      <summary>
            Gets the received date of this message.
            </summary>
      <value>The received date.</value>
      <remarks>
            The received date specifies the date and time at which the message
            was received.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.From">
      <summary>
            Gets the list of authors of this message.
            </summary>
      <value>The list of authors.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.Sender">
      <summary>
            Gets the sender of this message. May be null.
            </summary>
      <value>The sender of this message.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.ReplyTo">
      <summary>
            Gets the list of addresses that should receive replies
            to this message.
            </summary>
      <value>The list of addresses that should receive replies.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.To">
      <summary>
            Gets the list of addresses of primary recipients of the message.
            </summary>
      <value>The list of primary recipients.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.CC">
      <summary>
            Gets the list of addresses of others who are to receive the message.
            </summary>
      <value>The list of other recipients.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.Bcc">
      <summary>
            Gets the list of addresses of recipients that are not to be revealed to other recipients of the message.
            </summary>
      <value>The list of recipients.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.MessageId">
      <summary>
            Gets the unique identifier of the message.
            </summary>
      <value>The unique identifier.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.InReplyTo">
      <summary>
            Gets the list of identifiers of messages to which the message is a reply.
            </summary>
      <value>The list of message identifiers.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.Subject">
      <summary>
            Gets the subject of the message.
            </summary>
      <value>The subject.</value>
      <remarks>
            This property contains a short string identifying the topic
            of the message.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.Headers">
      <summary>
            Gets the list of headers of this entity.
            </summary>
      <value>The list of headers.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.HasBodyHtml">
      <summary>
            Gets the value indicating whether the HTML body of the message was retrieved.
            </summary>
      <value>A value indicating whether the HTML body of the message was retrieved.</value>
      <remarks>
            This field is only set if the <see cref="T:Rebex.Net.ImapListFields">ImapListFields.Body</see> options
            was specified in a call to <see cref="M:Rebex.Net.Imap.GetMessageList(Rebex.Net.ImapListFields)" /> or <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" />.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.HasBodyText">
      <summary>
            Gets the value indicating whether the text body of the message was retrieved.
            </summary>
      <value>A value indicating whether the text body of the message was retrieved.</value>
      <remarks>
            This field is only set if the <see cref="T:Rebex.Net.ImapListFields">ImapListFields.Body</see> options
            was specified in a call to <see cref="M:Rebex.Net.Imap.GetMessageList(Rebex.Net.ImapListFields)" /> or <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" />.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.BodyHtml">
      <summary>
            Gets the HTML body of the message, or an empty string if no HTML body was retrieved
            </summary>
      <value>The HTML body of the message.</value>
      <remarks>
            This field is only set if the <see cref="T:Rebex.Net.ImapListFields">ImapListFields.Body</see> options
            was specified in a call to <see cref="M:Rebex.Net.Imap.GetMessageList(Rebex.Net.ImapListFields)" /> or <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" />.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.BodyText">
      <summary>
            Gets the text body of the message, or an empty string if no text bodywas retrieved.
            </summary>
      <value>The text body of the message.</value>
      <remarks>
            This field is only set if the <see cref="T:Rebex.Net.ImapListFields">ImapListFields.Body</see> options
            was specified in a call to <see cref="M:Rebex.Net.Imap.GetMessageList(Rebex.Net.ImapListFields)" /> or <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" />.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.HasAttachment">
      <summary>
            Returns a value indicating whether the message has an attachment (or more attachments).
            </summary>
      <value>True if message has attachment; false if no attachments.</value>
      <remarks>
            This field is only set if the <see cref="T:Rebex.Net.ImapListFields">ImapListFields.AttachmentInfo</see> option
            was specified in a call to <see cref="M:Rebex.Net.Imap.GetMessageList(Rebex.Net.ImapListFields)" /> or <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" />.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.HasResources">
      <summary>
            Returns a value indicating whether the message has a linked resource (or more linked resources).
            </summary>
      <value>True if message has linked resource; false if no linked resources.</value>
      <remarks>
            This field is only set if the <see cref="T:Rebex.Net.ImapListFields">ImapListFields.AttachmentInfo</see> option
            was specified in a call to <see cref="M:Rebex.Net.Imap.GetMessageList(Rebex.Net.ImapListFields)" /> or <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" />.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ImapMessageInfo.GetParts">
      <summary>
            Returns a list of message parts. This includes body views, attachments and linked resources.
            </summary>
      <returns>List of message parts.</returns>
    </member>
    <member name="P:Rebex.Net.ImapMessageInfo.IsSignedOrEncrypted">
      <summary>
            Returns a value indicating whether the message is signed or encrypted.
            </summary>
      <value>True if message is signed or encrypted; false if not signed or encrypted.</value>
      <remarks>
            This field is only set if the <see cref="T:Rebex.Net.ImapListFields">ImapListFields.AttachmentInfo</see> option
            was specified in a call to <see cref="M:Rebex.Net.Imap.GetMessageList(Rebex.Net.ImapListFields)" /> or <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" />.
            </remarks>
    </member>
    <member name="T:Rebex.Net.ImapMessagePartKind">
      <summary>
            Specifies IMAP message part kind.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapMessagePartKind.Text">
      <summary>
            Text view (body).
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapMessagePartKind.LinkedResource">
      <summary>
            Linked resource.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapMessagePartKind.Attachment">
      <summary>
            Attachment.
            </summary>
    </member>
    <member name="T:Rebex.Net.ImapMessagePart">
      <summary>
            Represents information about message part (body view, attachment or linked resource).
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapMessagePart.ContentId">
      <summary>
            Gets part's content ID, if available.
            </summary>
      <value>Content ID or null.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessagePart.FileName">
      <summary>
            Gets part's file name, if available.
            </summary>
      <value>File name or null.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessagePart.Length">
      <summary>
            Part's length.
            </summary>
      <value>Length.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessagePart.Kind">
      <summary>
            Gets a value indicating the part's kind.
            </summary>
      <value>Part kind.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessagePart.ContentType">
      <summary>
            Gets part's content type.
            </summary>
      <value>Content type.</value>
    </member>
    <member name="P:Rebex.Net.ImapMessagePart.Id">
      <summary>
            Gets part ID. This is used by <see cref="M:Rebex.Net.Imap.GetMessagePart(System.String,System.String)" />.
            </summary>
      <value>Part ID.</value>
    </member>
    <member name="T:Rebex.Net.ImapMessageInfoComparerType">
      <summary>
            List of possible compare types for the ImapMessageInfoComparer class.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageInfoComparerType.SequenceNumber">
      <summary>
            Sequence number.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageInfoComparerType.OriginationDate">
      <summary>
            Origination date.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageInfoComparerType.ReceivedDate">
      <summary>
            Received date.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageInfoComparerType.From">
      <summary>
            From.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageInfoComparerType.To">
      <summary>
            To.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageInfoComparerType.Subject">
      <summary>
            Subject.
            </summary>
    </member>
    <member name="T:Rebex.Net.ImapMessageInfoComparer">
      <summary>
            Class used to compare ImapMessageInfo objects. 
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapMessageInfoComparer.#ctor">
      <summary>
            Creates a new instance of ImapMessageInfoComparer with default sorting by sequence number name and with ascending sort mode.
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapMessageInfoComparer.#ctor(Rebex.Net.ImapMessageInfoComparerType)">
      <summary>
            Creates a new instance of ImapMessageInfoComparer with specified comparer type and ascending sort mode.
            </summary>
      <param name="comparerType">Type of comparer.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageInfoComparer.#ctor(Rebex.Net.ImapMessageInfoComparerType,Rebex.SortingOrder)">
      <summary>
            Creates a new instance of ImapMessageInfoComparer with specified comparer type and sort mode.
            </summary>
      <param name="comparerType">Type of comparer.</param>
      <param name="sortOrder">Sort order to use.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageInfoComparer.Compare(System.Object,System.Object)">
      <summary>
            IComparer interface implementation. Compares two instances of ImapMessageInfo.
            </summary>
      <param name="x">First object to compare.</param>
      <param name="y">Second object to compare.</param>
      <returns>Value greater than zero when x is greater then y, zero when they are equal a or less than zero when x is lesser than y.</returns>
    </member>
    <member name="T:Rebex.Net.ImapMessageSet">
      <summary>
            Represents either a set of message unique IDs or a set of sequence numbers.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapMessageSet.All">
      <summary>
            Returns a message set that specifies all messages in a folder.
            </summary>
      <value>Message set that contains all messages.</value>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.ToString">
      <summary>
            Returns a string representation of this message set.
            </summary>
      <returns>String representation of this message set.</returns>
    </member>
    <member name="P:Rebex.Net.ImapMessageSet.IsUniqueIdSet">
      <summary>
            Returns a value indicating whether this is a unique ID set.
            </summary>
      <value>True if this is a unique ID set; false otherwise.</value>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.Add(System.Int32)">
      <summary>
            Adds a message with the specified sequence number to the message set.
            </summary>
      <param name="sequenceNumber">Sequence number.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.Add(System.String)">
      <summary>
            Adds a message with the specified unique ID to the message set.
            </summary>
      <param name="uniqueId">Unique ID.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.AddRange(System.Int32,System.Int32)">
      <summary>
            Adds messages in the specified sequence number range to the message set.
            </summary>
      <param name="from">Lower bound of the range.</param>
      <param name="to">Upper bound of the range (or Int32.MaxValue if all messages above 'from' are to be included).</param>
      <remarks>Bounds are also a part of the range.</remarks>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.AddRangeFrom(System.Int32)">
      <summary>
            Adds messages in the specified sequence number range to the message set.
            </summary>
      <param name="from">Lower bound of the range.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.AddRangeFrom(System.Int32,Rebex.IntervalBoundMode)">
      <summary>
            Adds messages in the specified sequence number range to the message set.
            </summary>
      <param name="from">Lower bound of the range.</param>
      <param name="mode">Specifies whether the <paramref name="from" /> parameter is included in the message set; 
            if it is excluded, add range from next message.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.AddRangeTo(System.Int32)">
      <summary>
            Adds messages in the specified sequence number range to the message set.
            </summary>
      <param name="to">Upper bound of the range.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.AddRangeTo(System.Int32,Rebex.IntervalBoundMode)">
      <summary>
            Adds messages in the specified sequence number range to the message set.
            </summary>
      <param name="to">Upper bound of the range.</param>
      <param name="mode">Specifies whether the <paramref name="mode" /> parameter is included in the message set; 
            if it is excluded, add range to previous message.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.AddRange(System.String,System.String)">
      <summary>
            Adds messages in the specified unique ID range to the message set.
            </summary>
      <param name="first">Lower bound of the range.</param>
      <param name="last">Upper bound of the range.</param>
      <remarks>Bounds are also a part of the range.</remarks>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.AddRangeFrom(System.String)">
      <summary>
            Adds messages in the specified unique ID range to the message set.
            </summary>
      <param name="from">Lower bound of the range.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.AddRangeFrom(System.String,Rebex.IntervalBoundMode)">
      <summary>
            Adds messages in the specified unique ID range to the message set.
            </summary>
      <param name="from">Lower bound of the range.</param>
      <param name="mode">Specifies whether the <paramref name="from" /> parameter is included in the message set; 
            if it is excluded, add range from next message.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.AddRangeTo(System.String)">
      <summary>
            Adds messages in the specified unique ID range to the message set.
            </summary>
      <param name="to">Upper bound of the range.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.AddRangeTo(System.String,Rebex.IntervalBoundMode)">
      <summary>
            Adds messages in the specified unique ID range to the message set.
            </summary>
      <param name="to">Upper bound of the range.</param>
      <param name="mode">Specifies whether the <paramref name="mode" /> parameter is included in the message set; 
            if it is excluded, add range to previous message.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.#ctor">
      <summary>
            Creates an empty message ID set.
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.#ctor(System.Int32[])">
      <summary>
            Creates a new message ID set that contains all messages in the specified array.
            </summary>
      <param name="sequenceNumbers">An array of message sequence numbers.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.ParseUniqueId(System.String,System.Int64@,System.Int64@)">
      <summary>
            Converts the combined 'unique ID' value used by Rebex IMAP into its distinct parts. Please consult the IMAP RFC for details on unique ID and validity ID.
            </summary>
      <param name="uniqueId">Unique ID string.</param>
      <param name="validity">Folder validity ID.</param>
      <param name="id">Message unique ID.</param>
      <returns>True if parsed successfully; false if unable to parse.</returns>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.BuildUniqueId(System.Int64,System.Int64)">
      <summary>
            Converts the two distinct message ID parts into the combined 'unique ID' used by Rebex IMAP. Please consult the IMAP RFC for details on unique ID and validity ID.
            </summary>
      <param name="validity">Folder validity ID.</param>
      <param name="id">Message unique ID.</param>
      <returns>Combined 'unique ID' value.</returns>
    </member>
    <member name="M:Rebex.Net.ImapMessageSet.#ctor(System.String[])">
      <summary>
            Creates a new message ID set that contains all messages in the specified array.
            </summary>
      <param name="uniqueIds">An array of message unique IDs.</param>
    </member>
    <member name="T:Rebex.Net.ImapExtensions">
      <summary>
            IMAP extensions.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExtensions.UniqueIdPlus">
      <summary>
            UIDPLUS extension support. If this extension is supported, <see cref="M:Rebex.Net.Imap.StoreMessage(System.String,Rebex.Mail.MailMessage)" /> methods
            will return unique ID of the message at the server.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExtensions.LiteralPlus">
      <summary>
            LITERAL+ extension support.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExtensions.Idle">
      <summary>
            IDLE/DONE command support.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExtensions.Xlist">
      <summary>
            XLIST command support. This is an extension created by Google for GMail's IMAP.
            It is used to retrieve information about folder purpose using the <see cref="M:Rebex.Net.Imap.GetFolderList" /> method.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExtensions.Compression">
      <summary>
            Deflate compression (COMPRESS=DEFLATE) extension support.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExtensions.ExplicitSecurity">
      <summary>
            Explicit TLS/SSL support (STARTTLS).
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapExtensions.All">
      <summary>
            All extensions.
            </summary>
    </member>
    <member name="T:Rebex.Net.ImapFolderListMode">
      <summary>
            Specifies which folders to include in a list returned by <see cref="M:Rebex.Net.Imap.GetFolderList" /> method.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapFolderListMode.All">
      <summary>
            Include all folders.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapFolderListMode.Subscribed">
      <summary>
            Include subscribed folders only.
            </summary>
    </member>
    <member name="T:Rebex.Net.ImapFolderSpecialUse">
      <summary>
            Specifies special use flags for extended LIST command (RFC 6154) or XLIST extension.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapFolderSpecialUse.None">
      <summary>No special use.</summary>
    </member>
    <member name="F:Rebex.Net.ImapFolderSpecialUse.Inbox">
      <summary>The folder is an inbox.</summary>
    </member>
    <member name="F:Rebex.Net.ImapFolderSpecialUse.All">
      <summary>The folder presents all messages in the user's message store (with a possible exception of trash and junk mail). It is usually a virtual folder.</summary>
    </member>
    <member name="F:Rebex.Net.ImapFolderSpecialUse.Archive">
      <summary>The folder is used to archive messages.</summary>
    </member>
    <member name="F:Rebex.Net.ImapFolderSpecialUse.Drafts">
      <summary>The folder is used to hold draft messages - messages that are being composed but have not yet been sent.</summary>
    </member>
    <member name="F:Rebex.Net.ImapFolderSpecialUse.Flagged">
      <summary>The folder presents all messages marked in some way as 'important'. It is usually a virtual folder.</summary>
    </member>
    <member name="F:Rebex.Net.ImapFolderSpecialUse.Junk">
      <summary>The folder is where messages deemed to be junk (spam) mail are held.</summary>
    </member>
    <member name="F:Rebex.Net.ImapFolderSpecialUse.Sent">
      <summary>The folder is used to hold copies of messages that have been sent. Some server implementations might put messages here automatically.</summary>
    </member>
    <member name="F:Rebex.Net.ImapFolderSpecialUse.Trash">
      <summary>The folder is used to hold messages that have been deleted. Alternatively, it might be a virtual folder that presents messages marked for deletion.</summary>
    </member>
    <member name="F:Rebex.Net.ImapFolderSpecialUse.Important">
      <summary>The folder presents all messages marked by the server as 'important'. It is usually a virtual folder.</summary>
    </member>
    <member name="T:Rebex.Net.ImapAuthentication">
      <summary>
            IMAP authentication methods.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapAuthentication.Auto">
      <summary>
            Choose automatically.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapAuthentication.Plain">
      <summary>
            RFC 2595 TLS plaintext authentication.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapAuthentication.DigestMD5">
      <summary>
            RFC 2831 DIGEST-MD5 authentication.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapAuthentication.CramMD5">
      <summary>
            RFC 2195 CRAM-MD5 authentication.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapAuthentication.Login">
      <summary>
            Login authentication.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapAuthentication.ClearText">
      <summary>
            Clear text USER/PASS login.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapAuthentication.Ntlm">
      <summary>
            NTLM authentication.
            Only supported on Windows and on Mono.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapAuthentication.External">
      <summary>
            External authentication.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapAuthentication.GssApi">
      <summary>
            GSSAPI/SSPI authentication.
            Kerberos and Negotiate (SPNEGO) are only supported on Windows.
            NTLM is supported on Windows and Mono.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapAuthentication.OAuth20">
      <summary>
            OAuth 2.0 authentication defined by https://developers.google.com/google-apps/gmail/xoauth2_protocol#imap_protocol_exchange
            </summary>
    </member>
    <member name="T:Rebex.Net.ImapState">
      <summary>
            State of the <see cref="T:Rebex.Net.Imap" /> object.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapState.Disconnected">
      <summary>Client is not connected.</summary>
    </member>
    <member name="F:Rebex.Net.ImapState.Connecting">
      <summary>Connecting to server.</summary>
    </member>
    <member name="F:Rebex.Net.ImapState.Ready">
      <summary>Server is ready and awaiting commands.</summary>
    </member>
    <member name="F:Rebex.Net.ImapState.Sending">
      <summary>Sending command or data to the server.</summary>
    </member>
    <member name="F:Rebex.Net.ImapState.Reading">
      <summary>Waiting for response or receiving response or data.</summary>
    </member>
    <member name="F:Rebex.Net.ImapState.Disposed">
      <summary>Object is disposed and must not be used.</summary>
    </member>
    <member name="T:Rebex.Net.ImapTransferState">
      <summary>
            State of the IMAP transfer.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapTransferState.None">
      <summary>No transfer pending.</summary>
    </member>
    <member name="F:Rebex.Net.ImapTransferState.Downloading">
      <summary>Downloading mail message.</summary>
    </member>
    <member name="F:Rebex.Net.ImapTransferState.Uploading">
      <summary>Downloading mail message.</summary>
    </member>
    <member name="T:Rebex.Net.ImapMessageFlags">
      <summary>
            IMAP message flags.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageFlags.None">
      <summary>None.</summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageFlags.Seen">
      <summary>Message has been read.</summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageFlags.Answered">
      <summary>Message has been answered.</summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageFlags.Flagged">
      <summary>Message is flagged for special attention.</summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageFlags.Deleted">
      <summary>Message is marked as deleted for removal by <see cref="M:Rebex.Net.Imap.Purge" />.</summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageFlags.Draft">
      <summary>Message is a draft - not fully composed yet.</summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageFlags.Recent">
      <summary>
            Message has recently arrived and this is the first and only session notified about this.
            This flag cannot be modified by the client.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapMessageFlags.Keywords">
      <summary>
            Message may have keyword (custom flags).
            </summary>
    </member>
    <member name="T:Rebex.Net.ImapFlagAction">
      <summary>
            Specifies possible actions of <see cref="M:Rebex.Net.Imap.SetMessageFlags(Rebex.Net.ImapMessageSet,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags)" /> method.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapFlagAction.Add">
      <summary>Adds the specified flags to the message.</summary>
    </member>
    <member name="F:Rebex.Net.ImapFlagAction.Remove">
      <summary>Removes the specified flags from the message.</summary>
    </member>
    <member name="F:Rebex.Net.ImapFlagAction.Replace">
      <summary>Replace the message flags by the specified flags.</summary>
    </member>
    <member name="T:Rebex.Net.ImapListFields">
      <summary>
            Specifies what information to include in a <see cref="T:Rebex.Net.ImapMessageCollection">message list</see>.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapListFields.SequenceNumber">
      <summary>Sequence number. Only valid during the current session.</summary>
    </member>
    <member name="F:Rebex.Net.ImapListFields.UniqueId">
      <summary>Unique ID. Does not change between sessions.</summary>
    </member>
    <member name="F:Rebex.Net.ImapListFields.Length">
      <summary>Message size in bytes.</summary>
    </member>
    <member name="F:Rebex.Net.ImapListFields.Flags">
      <summary>Message flags.</summary>
    </member>
    <member name="F:Rebex.Net.ImapListFields.ReceivedDate">
      <summary>Date and time at which the message was received by the mail server.</summary>
    </member>
    <member name="F:Rebex.Net.ImapListFields.Fast">
      <summary>Sequence number, unique ID, length, flags and received date.</summary>
    </member>
    <member name="F:Rebex.Net.ImapListFields.Envelope">
      <summary>Envelope (date, subject, from, sender, reply-to, to, cc, in-reply-to, message ID), sequence number, unique ID, length, flags and received date.</summary>
    </member>
    <member name="F:Rebex.Net.ImapListFields.FullHeaders">
      <summary>All message headers, sequence number, unique ID, length, flags and received date.</summary>
      <remarks>
        <para>
            Same as <see cref="F:Rebex.Net.ImapListFields.Fast" />, but also downloads complete message headers of each message.
            </para>
        <para>
            This variant is the most verbose, but also the slowest, and in fact seldom needed, because nearly 
            all interesting information about the message is already returned by <see cref="F:Rebex.Net.ImapListFields.Envelope" />. 
            </para>
      </remarks>
    </member>
    <member name="F:Rebex.Net.ImapListFields.Body">
      <summary>Text and HTML bodies.</summary>
      <remarks>
            Retrieving the message body marks unread messages as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.
            </remarks>
    </member>
    <member name="F:Rebex.Net.ImapListFields.MessageStructure">
      <summary>Information about the message structure including attachment names. To retrieve the info, use <see cref="M:Rebex.Net.ImapMessageInfo.GetParts" />.</summary>
      <remarks>
            Retrieving the message body marks unread messages as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.
            </remarks>
    </member>
    <member name="T:Rebex.Net.ImapNotification">
      <summary>
            Defines notification messages that can be received from the server using the <see cref="E:Rebex.Net.Imap.Notification" /> event.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapNotification.None">
      <summary>
            Represents the empty state.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapNotification.MessageCount">
      <summary>
            Message count was received. Occurs when the number of messages in the folder has changed.
            </summary>
      <remarks>Represents EXISTS response.</remarks>
    </member>
    <member name="F:Rebex.Net.ImapNotification.RecentMessages">
      <summary>
            Recent message count was received. Occurs when the number of messages with the <see cref="F:Rebex.Net.ImapMessageFlags.Recent">Recent</see> flag set has changed.
            </summary>
      <remarks>Represents RECENT response.</remarks>
    </member>
    <member name="F:Rebex.Net.ImapNotification.MessageRemoved">
      <summary>
            Message was removed from the folder. Occurs when messages have been deleted.
            </summary>
      <remarks>Represents EXPUNGE response.</remarks>
    </member>
    <member name="F:Rebex.Net.ImapNotification.MessageInfo">
      <summary>
            Message info changed. Occurs when messages flags have changed.
            </summary>
      <remarks>Represents FETCH response.</remarks>
    </member>
    <member name="F:Rebex.Net.ImapNotification.Failure">
      <summary>
            Failure.
            </summary>
      <remarks>Represents NO response.</remarks>
    </member>
    <member name="F:Rebex.Net.ImapNotification.ProtocolError">
      <summary>
            Protocol error occurred.
            </summary>
      <remarks>Represents BAD response.</remarks>
    </member>
    <member name="F:Rebex.Net.ImapNotification.Success">
      <summary>
            Success.
            </summary>
      <remarks>Represents OK response.</remarks>
    </member>
    <member name="F:Rebex.Net.ImapNotification.ClosingConnection">
      <summary>
            Connection is being closed.
            </summary>
      <remarks>Represents BYE response.</remarks>
    </member>
    <member name="F:Rebex.Net.ImapNotification.Alert">
      <summary>
            Alert.
            </summary>
      <remarks>Represents ALERT response.</remarks>
    </member>
    <member name="F:Rebex.Net.ImapNotification.ValidityId">
      <summary>
            Folder validity ID was received.
            </summary>
      <remarks>Represents OK UIDVALIDITY response.</remarks>
    </member>
    <member name="T:Rebex.Net.ImapConnectionState">
      <summary>
            Represents the Imap object connection state.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapConnectionState.Connected">
      <summary>
            Returns a value indicating whether the object is connected.
            </summary>
      <value>True if connected; otherwise false.</value>
    </member>
    <member name="P:Rebex.Net.ImapConnectionState.NativeErrorCode">
      <summary>
            Gets the Win32 socket error code.
            </summary>
      <value>Win32 error code.</value>
      <remarks>Returns 0 if no socket error code is available.</remarks>
    </member>
    <member name="T:Rebex.Net.ImapMessage">
      <summary>
            Provides data for handling messages received by the <see cref="O:Rebex.Net.Imap.GetMessages">GetMessages</see> method.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapMessage.Info">
      <summary>
            Gets the message info initialized by values received form the server.
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapMessage.ToArray">
      <summary>
            Gets the raw MIME data of the received message.
            </summary>
      <value>An array of bytes that represent the message data.</value>
    </member>
    <member name="M:Rebex.Net.ImapMessage.CopyTo(System.IO.Stream)">
      <summary>
            Copies raw MIME data of the received message into the supplied stream.
            </summary>
      <param name="output">Stream into which the message will be written.</param>
    </member>
    <member name="M:Rebex.Net.ImapMessage.ToMailMessage">
      <summary>
            Parses raw data of the received message into an instance of <see cref="T:Rebex.Mail.MailMessage" /> object.
            </summary>
      <returns>Mail message instance.</returns>
    </member>
    <member name="M:Rebex.Net.ImapMessage.ToMimeMessage">
      <summary>
            Parses raw data of the received message into an instance of <see cref="T:Rebex.Mime.MimeMessage" /> object.
            </summary>
      <returns>Mime message instance.</returns>
    </member>
    <member name="T:Rebex.Net.ImapResponseCode">
      <summary>
            Represents possible IMAP response codes.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapResponseCode.Unknown">
      <summary>Indicates an unknown response code.</summary>
    </member>
    <member name="F:Rebex.Net.ImapResponseCode.Ok">
      <summary>Indicates success.</summary>
    </member>
    <member name="F:Rebex.Net.ImapResponseCode.ContinuationRequest">
      <summary>Continuation request.</summary>
    </member>
    <member name="F:Rebex.Net.ImapResponseCode.Unsolicited">
      <summary>Unsolicited and untagged response.</summary>
    </member>
    <member name="F:Rebex.Net.ImapResponseCode.No">
      <summary>Indicates failure.</summary>
    </member>
    <member name="F:Rebex.Net.ImapResponseCode.Bad">
      <summary>Indicates a protocol error such as unrecognized command or syntax error.</summary>
    </member>
    <member name="T:Rebex.Net.ImapResponseLine">
      <summary>
            Contains a single line of the IMAP response.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapResponseLine.Raw">
      <summary>
            Gets the raw unparsed data of the response line.
            </summary>
      <value>Raw unparsed line.</value>
    </member>
    <member name="P:Rebex.Net.ImapResponseLine.Code">
      <summary>
            Gets the response code.
            </summary>
      <value>Response code.</value>
    </member>
    <member name="P:Rebex.Net.ImapResponseLine.OptionalCode">
      <summary>
            Gets the optional response code.
            </summary>
      <value>Optional response code, or null if there isn't any.</value>
    </member>
    <member name="P:Rebex.Net.ImapResponseLine.Parameters">
      <summary>
            Gets the parameters.
            </summary>
      <value>Parameters.</value>
    </member>
    <member name="P:Rebex.Net.ImapResponseLine.Description">
      <summary>
            Gets the description.
            </summary>
      <value>Description.</value>
    </member>
    <member name="T:Rebex.Net.ImapResponse">
      <summary>
            Contains the response of the IMAP server.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapResponse.Description">
      <summary>
            Gets the description of the IMAP response.
            </summary>
      <value>The description of the IMAP response.</value>
    </member>
    <member name="P:Rebex.Net.ImapResponse.Code">
      <summary>
            Gets the IMAP response code.
            </summary>
      <value>IMAP response code.</value>
    </member>
    <member name="M:Rebex.Net.ImapResponse.GetLines">
      <summary>
            Gets all the untagged IMAP response lines that were part of this response.
            </summary>
      <returns>Untagged IMAP responses.</returns>
      <remarks>A single line represents a single response.</remarks>
    </member>
    <member name="T:Rebex.Net.ImapSearchParameterType">
      <summary>
            Type of the ImapSearchParameter node.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapSearchParameterType.And">
      <summary>
            ImapSearchParameter node is AND inner node.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapSearchParameterType.Or">
      <summary>
            ImapSearchParameter node is OR inner node.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapSearchParameterType.Not">
      <summary>
            ImapSearchParameter node is NOT inner node.
            </summary>
    </member>
    <member name="F:Rebex.Net.ImapSearchParameterType.Leaf">
      <summary>
            ImapSearchParameter node is leaf node.
            </summary>
    </member>
    <member name="T:Rebex.Net.ImapSearchParameter">
      <summary>
            Represents a single IMAP search criterion.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapSearchParameter.Type">
      <summary>
            Gets a type of the current node.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapSearchParameter.ChildCount">
      <summary>
            Gets a count of the child nodes.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapSearchParameter.Item(System.Int32)">
      <summary>
            Gets a child node at the specified index.
            </summary>
      <param name="index">Index of the child node.</param>
      <returns>A child node.</returns>
    </member>
    <member name="P:Rebex.Net.ImapSearchParameter.Name">
      <summary>
            Gets a name (keyword of the search criteria) of the current leaf node. Calling on the inner node returns null (Nothing in VB.NET).
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapSearchParameter.Value">
      <summary>
            Gets a value (argument of the search criteria) of the current leaf node. Calling on the inner node returns null (Nothing in VB.NET).
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.ToString">
      <summary>
            Returns a string representing this IMAP search criterion.
            </summary>
      <returns>A string representing this IMAP search criterion.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.And(Rebex.Net.ImapSearchParameter[])">
      <summary>
            Multiple criteria combined using the AND operator - only messages that match all the criteria are matched.
            </summary>
      <param name="parameters">List of search parameters.</param>
      <returns>An aggregate search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.Or(Rebex.Net.ImapSearchParameter[])">
      <summary>
            Multiple criteria combined using the OR operator - messages that match any of the criteria are matched.
            </summary>
      <param name="parameters">List of search parameters.</param>
      <returns>An aggregate search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.Not(Rebex.Net.ImapSearchParameter)">
      <summary>
            Only match messages that don't match the specified criteria.
            </summary>
      <param name="parameter">Parameter not to match.</param>
      <returns>An aggregate search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.Arrived(System.DateTime)">
      <summary>
            Messages that arrived on the specified date (disregarding time).
            </summary>
      <param name="on">Date. Time and time zone are ignored.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.Arrived(System.DateTime,System.DateTime)">
      <summary>
            Messages that arrived in the specified date interval (disregarding time).
            </summary>
      <param name="since">The lower bound of the date interval, or <see cref="F:System.DateTime.MinValue" />. Time and time zone are ignored.</param>
      <param name="before">The upper bound of the date interval, or <see cref="F:System.DateTime.MaxValue" />. Time and time zone are ignored.</param>
      <returns>A search parameter.</returns>
      <remarks>
            The bounds are also included in the interval.
            Time and time zone are ignored.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.Sent(System.DateTime)">
      <summary>
            Messages that were sent on the specified date (disregarding time).
            </summary>
      <param name="on">Date. Time and time zone are ignored.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.Sent(System.DateTime,System.DateTime)">
      <summary>
            Messages that were sent in the specified date interval (disregarding time).
            </summary>
      <param name="since">The lower bound of the date interval, or <see cref="F:System.DateTime.MinValue" />.</param>
      <param name="before">The upper bound of the date interval, or <see cref="F:System.DateTime.MaxValue" />.</param>
      <returns>A search parameter.</returns>
      <remarks>
            The bounds are also included in the interval.
            Time and time zone are ignored.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.Size(System.Int64,System.Int64)">
      <summary>
            Messages with a size within the specified interval.
            </summary>
      <param name="min">The lower bound of interval, or 0. In bytes.</param>
      <param name="max">The upper bound of interval, or <see cref="F:System.Int64.MaxValue" />. In bytes.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.Subject(System.String)">
      <summary>
            Messages that contain the specified string in its Subject field.
            </summary>
      <param name="queryTerm">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.FullText(System.String)">
      <summary>
            Messages that contain the specified string in its headers or body.
            </summary>
      <param name="queryTerm">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.Body(System.String)">
      <summary>
            Messages that contain the specified string in its body.
            </summary>
      <param name="queryTerm">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.Header(System.String,System.String)">
      <summary>
            Messages that contain the specified string in the specified header.
            </summary>
      <param name="headerName">Header name to search, or an empty string to search all headers.</param>
      <param name="queryTerm">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.From(System.String)">
      <summary>
            Messages that contain the specified string in its From field.
            </summary>
      <param name="address">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.To(System.String)">
      <summary>
            Messages that contain the specified string in its To field.
            </summary>
      <param name="address">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.CC(System.String)">
      <summary>
            Messages that contain the specified string in its CC field.
            </summary>
      <param name="address">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.Bcc(System.String)">
      <summary>
            Messages that contain the specified string in its Bcc field.
            </summary>
      <param name="address">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.Keyword(System.String)">
      <summary>
            Messages with the specified keyword flag set.
            </summary>
      <param name="keyword">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.NotKeyword(System.String)">
      <summary>
            Messages that do not have the specified keyword flag set.
            </summary>
      <param name="keyword">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.MessageSet(Rebex.Net.ImapMessageSet)">
      <summary>
            Messages which belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.NotFrom(System.String)">
      <summary>
            Messages that do not contain the specified string in its From field.
            </summary>
      <param name="address">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.NotTo(System.String)">
      <summary>
            Messages that do not contain the specified string in its To field.
            </summary>
      <param name="address">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.NotCC(System.String)">
      <summary>
            Messages that do not contain the specified string in its CC field.
            </summary>
      <param name="address">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.NotBcc(System.String)">
      <summary>
            Messages that do not contain the specified string in its Bcc field.
            </summary>
      <param name="address">String to search for. Cannot be empty.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.HasFlagsAllOf(Rebex.Net.ImapMessageFlags)">
      <summary>
            Messages with all the specified flags set.
            </summary>
      <param name="flags">Flags that have to be set.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="M:Rebex.Net.ImapSearchParameter.HasFlagsNoneOf(Rebex.Net.ImapMessageFlags)">
      <summary>
            Messages with none of the specified flags set.
            </summary>
      <param name="flags">Flags that must not be set.</param>
      <returns>A search parameter.</returns>
    </member>
    <member name="P:Rebex.Net.ImapSearchParameter.Recent">
      <summary>
            Messages that have the <see cref="F:Rebex.Net.ImapMessageFlags.Recent">Recent</see> flag set.
            </summary>
      <value>A search parameter.</value>
    </member>
    <member name="P:Rebex.Net.ImapSearchParameter.Deleted">
      <summary>
            Messages that have the <see cref="F:Rebex.Net.ImapMessageFlags.Deleted">Deleted</see> flag set.
            </summary>
      <value>A search parameter.</value>
    </member>
    <member name="P:Rebex.Net.ImapSearchParameter.New">
      <summary>
            Messages that have the <see cref="F:Rebex.Net.ImapMessageFlags.Recent">Recent</see> flag set
            and <see cref="F:Rebex.Net.ImapMessageFlags.Seen">Seen</see> flag not set.
            </summary>
      <value>A search parameter.</value>
    </member>
    <member name="P:Rebex.Net.ImapSearchParameter.NotRecent">
      <summary>
            Messages that don't have the <see cref="F:Rebex.Net.ImapMessageFlags.Recent">Recent</see> flag set.
            </summary>
      <value>A search parameter.</value>
    </member>
    <member name="P:Rebex.Net.ImapSearchParameter.NotSeen">
      <summary>
            Messages that don't have the <see cref="F:Rebex.Net.ImapMessageFlags.Seen">Seen</see> flag set. Equivalent too <see cref="P:Rebex.Net.ImapSearchParameter.Unread" /></summary>
      <value>A search parameter.</value>
    </member>
    <member name="P:Rebex.Net.ImapSearchParameter.Unread">
      <summary>
            Messages that don't have the <see cref="F:Rebex.Net.ImapMessageFlags.Seen">Seen</see> flag set. Equivalent too <see cref="P:Rebex.Net.ImapSearchParameter.NotSeen" /></summary>
      <value>A search parameter.</value>
    </member>
    <member name="P:Rebex.Net.ImapSearchParameter.All">
      <summary>
            All messages.
            </summary>
      <value>A search parameter.</value>
    </member>
    <member name="T:Rebex.Net.ImapSettings">
      <summary>
            Specifies various IMAP settings.
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapSettings.#ctor">
      <summary>
            Creates an instance of <see cref="T:Rebex.Net.ImapSettings" />.
            </summary>
    </member>
    <member name="M:Rebex.Net.ImapSettings.Clone">
      <summary>
            Creates a new object that is a copy of the current instance.
            </summary>
      <returns>A new object that is a copy of the current instance.</returns>
    </member>
    <member name="P:Rebex.Net.ImapSettings.IgnoreUnparsableHeaders">
      <summary>
            Ignore unparsable headers when parsing mail message.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapSettings.NormalizeInboxName">
      <summary>
            Specifies whether to normalize 'Inbox' folder name casing.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapSettings.IgnoreUnparsableSignatures">
      <summary>
            Ignore unparsable S/MIME signature entities when parsing mail message.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapSettings.UsePeekForGetMessage">
      <summary>
            Use BODY.PEEK instead of BODY in <see cref="T:Rebex.Net.Imap" /> object's GetMessage, GetsMessageInfo, GetMailMessage, GetMimeMessage, GetMessageList and Search methods.
            Unlike BODY, BODY.PEEK doesn't set the message's Seen flag.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapSettings.DisableStatusOnSelectFolder">
      <summary>
            Specifies a value indicating whether to disable execution of 'STATUS' command before selecting a folder to determine a number of not-seen messages.
            </summary>
    </member>
    <member name="P:Rebex.Net.ImapSettings.RaiseEventsFromCurrentThread">
      <summary>
            Specifies whether to raise asynchronous events from the current working thread or 
            whether to raise them using a <see cref="T:System.Threading.SynchronizationContext" /> available when an asynchronous operation was started.
            </summary>
      <value>False (default) to raise events using <see cref="T:System.Threading.SynchronizationContext" />; true to raise them directly form the current working thread.</value>
      <remarks>Events of synchronous methods are always raised from the current working thread.</remarks>
    </member>
    <member name="P:Rebex.Net.ImapSettings.EnableKeywordCheck">
      <summary>
            Specifies whether to enable FLAGS and PERMANENTFLAGS keyword check.
            </summary>
      <value>False (default) to disable keyword check; true to enable the keyword check.</value>
      <remarks>The keyword check is disabled by default due to non-standard behavior of IMAP servers including GMail, FastMail and others that enable '[' and ']' in keywords.</remarks>
    </member>
    <member name="P:Rebex.Net.ImapSettings.UseLargeBuffers">
      <summary>
            Use larger receive buffer for incoming and outgoing data.
            </summary>
      <remarks>Not supported on Universal Windows Platform.</remarks>
    </member>
    <member name="T:Rebex.Legacy.ImapExtensions">
      <summary>
            Extension class for Imap.
            </summary>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginConnect(Rebex.Net.Imap,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Connect operation.
            Connects to the IMAP server.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginConnect(Rebex.Net.Imap,System.String,System.Int32,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Connect operation.
            Connects to the IMAP server.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
      <param name="serverPort">The server port (e.g. 143).</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginConnect(Rebex.Net.Imap,System.String,Rebex.Net.SslMode,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Connect operation.
            Connects to the IMAP server. Use a port corresponding to the specified security mode.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
      <param name="security">Connection security.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginConnect(Rebex.Net.Imap,System.String,System.Int32,Rebex.Net.SslMode,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Connect operation.
            Connects to the IMAP server.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
      <param name="serverPort">The server port (e.g. 143).</param>
      <param name="security">Connection security.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndConnect(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginConnect operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>The welcome message returned by the server.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginDisconnect(Rebex.Net.Imap,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Disconnect operation.
            Disconnects from the IMAP server.
            </summary>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndDisconnect(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginDisconnect operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>The exit message returned by the server.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginSecure(Rebex.Net.Imap,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Secure operation.
            Secures the connection with TLS/SSL using default parameters.
            </summary>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndSecure(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginSecure operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginLogin(Rebex.Net.Imap,Rebex.Net.ImapAuthentication,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Login operation.
            Authenticates the user to the IMAP server using the specified authentication method that does not require credentials (NTLM, GSSAPI or EXTERNAL).
            Only supported on Windows.
            </summary>
      <param name="method">Authentication method.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginLogin(Rebex.Net.Imap,Rebex.Net.GssApiProvider,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Login operation.
            Authenticates the user to the IMAP server using the specified GSSAPI provider.
            Only supported on Windows and partially on Mono.
            </summary>
      <param name="provider">GSSAPI provider.</param>
      <remarks>
        <p>Only supported on Windows platforms.</p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginLogin(Rebex.Net.Imap,System.String,System.String,Rebex.Net.ImapAuthentication,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Login operation.
            Authenticates the user to the IMAP server using the specified authentication method.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="method">Authentication method.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginLogin(Rebex.Net.Imap,System.String,Rebex.Net.ImapAuthentication,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Login operation.
            Authenticates the user to the IMAP server using an OAuth token.
            </summary>
      <param name="token">Authentication token.</param>
      <param name="method">Authentication method (only OAuth 2.0 is supported at the moment).</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginLogin(Rebex.Net.Imap,System.String,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Login operation.
            Authenticates the user to the IMAP server using the specified authentication method.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <remarks>
        <p>This method tries to authenticate using the following methods,
            in this order of preference: CRAM-MD5, DIGEST-MD5, PLAIN, LOGIN, ClearText, EXTERNAL, GSSAPI, NTLM.
            The NTLM, GSSAPI and EXTERNAL methods are only attempted if no other method is available -
            please use <see cref="M:Rebex.Net.Imap.Login(System.String,System.String,Rebex.Net.ImapAuthentication)" /> and specify
            NTLM, GSSAPI or EXTERNAL directly if you wish to use them.</p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndLogin(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginLogin operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginCheckForUpdates(Rebex.Net.Imap,System.Int32,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous CheckForUpdates operation.
            Processes server notifications for the specified amount of time.
            </summary>
      <param name="duration">Duration of the idle interval, in milliseconds.</param>
      <remarks>
        <p>
            Notifications are generated when a new message arrives, when a message is deleted,
            when message flags change, etc. (see <see cref="T:Rebex.Net.ImapNotification" /> for a list of supported
            notifications).
            </p>
        <p>
            These notifications can occur during a call to any <see cref="T:Rebex.Net.Imap" /> method and are reported
            using the <see cref="E:Rebex.Net.Imap.Notification" /> event. The <see cref="M:Rebex.Net.Imap.CheckForUpdates(System.Int32)" /> method is useful
            when you need to check for any possible changes (reported using notifications) and do not
            wish to call any other method. Typically, a client application will call <see cref="M:Rebex.Net.Imap.CheckForUpdates(System.Int32)" />
            periodically while idle.
            </p>
        <p>
            To receive the notifications itself, use the <see cref="E:Rebex.Net.Imap.Notification" /> event.
            </p>
        <p>
            This method represents IMAP NOOP or IDLE commands. IDLE is used whenever the server supports this command - see <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> property.
            For duration values less than 10, NOOP is always used.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginCheckForUpdates(Rebex.Net.Imap,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous CheckForUpdates operation.
            Processes server notifications.
            </summary>
      <remarks>
        <p>
            Notifications are generated when a new message arrives, when a message is deleted,
            when message flags change, etc. (see <see cref="T:Rebex.Net.ImapNotification" /> for a list of supported
            notifications).
            </p>
        <p>
            These notifications can occur during a call to any <see cref="T:Rebex.Net.Imap" /> method and are reported
            using the <see cref="E:Rebex.Net.Imap.Notification" /> event. The <see cref="M:Rebex.Net.Imap.CheckForUpdates" /> method is useful
            when you need to check for any possible changes (reported using notifications) and do not
            wish to call any other method. Typically, a client application will call <see cref="M:Rebex.Net.Imap.CheckForUpdates" />
            periodically while idle.
            </p>
        <p>
            To receive the notifications itself, use the <see cref="E:Rebex.Net.Imap.Notification" /> event.
            </p>
        <p>
            This method represents IMAP NOOP command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndCheckForUpdates(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginCheckForUpdates operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>True if any new notifications were received.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginFolderExists(Rebex.Net.Imap,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous FolderExists operation.
            Detects whether the specified folder exists on the server. Not all IMAP servers support this!
            </summary>
      <param name="folder">The path to the folder to check.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndFolderExists(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginFolderExists operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>True if the folder exists, false otherwise.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetFolderList(Rebex.Net.Imap,System.String,Rebex.Net.ImapFolderListMode,System.Boolean,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetFolderList operation.
            Gets the list of subfolders in the specified folder.
            </summary>
      <param name="folder">The path to folder for which a list of subfolders is returned.</param>
      <param name="mode">List mode that specifies whether to return all folders or subscribed only.</param>
      <param name="recursive">Specifies whether to return the whole subfolder tree.</param>
      <remarks>
        <p>
            To subscribe and unsubscribe to folders, use <see cref="M:Rebex.Net.Imap.Subscribe(System.String)" /> and <see cref="M:Rebex.Net.Imap.Unsubscribe(System.String)" /> methods.
            </p>
        <p>
            To get a list of root subfolders, use an empty string for folder.
            </p>
        <p>
            This method represents IMAP LIST and LSUB commands.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndGetFolderList(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginGetFolderList operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>A list of subfolders.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginUnselectFolder(Rebex.Net.Imap,System.Boolean,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous UnselectFolder operation.
            Unselects the currently selected folder and optionally permanently removes all messages marked
            as deleted (with a Deleted flag) from the current folder.
            </summary>
      <param name="purgeDeleted">Specifies whether to purge (permanently remove) all messages marked as deleted.</param>
      <remarks>
        <p>
          <see cref="P:Rebex.Net.Imap.CurrentFolder" /> will be null (Nothing in Visual Basic) after a call to this method.
            </p>
        <p>
            This method uses IMAP CLOSE command to purge the messages.
            No purging is performed if the current folder is selected as read-only.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <seealso cref="M:Rebex.Net.Imap.SelectFolder(System.String)" />
      <seealso cref="M:Rebex.Net.Imap.Purge" />
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginUnselectFolder(Rebex.Net.Imap,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous UnselectFolder operation.
            Unselects the currently selected folder. 
            Messages marked as deleted (with a Deleted flag) are not permanently removed.
            To remove them, use <see cref="M:Rebex.Net.Imap.UnselectFolder(System.Boolean)" /> or <see cref="M:Rebex.Net.Imap.Purge" /> method. 
            </summary>
      <remarks>
        <p>
          <see cref="P:Rebex.Net.Imap.CurrentFolder" /> will be null (Nothing in Visual Basic) after a call to this method.
            </p>
        <p>
            This method does not perform any IMAP command. To unselect a folder and purge deleted messages
            using the CLOSE command, use <see cref="M:Rebex.Net.Imap.UnselectFolder(System.Boolean)" /> mehod.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <seealso cref="M:Rebex.Net.Imap.SelectFolder(System.String)" />
      <seealso cref="M:Rebex.Net.Imap.Purge" />
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndUnselectFolder(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginUnselectFolder operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginSelectFolder(Rebex.Net.Imap,System.String,System.Boolean,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous SelectFolder operation.
            Selects the specified folder so that its messages can be accessed.
            </summary>
      <param name="folder">Folder to be selected.</param>
      <param name="readOnly">Specifies whether the folder is to be selected as read-only.</param>
      <remarks>
        <p>
            The <see cref="P:Rebex.Net.Imap.CurrentFolder" /> property will contain an instance of <see cref="T:Rebex.Net.ImapFolder" />
            that represents the selected folder after a call to this method.
            </p>
        <p>
            Only one mailbox can be selected at a time for a single connection,
            and only the messages in currently selected folder can be accessed.
            Also, most <see cref="E:Rebex.Net.Imap.Notification">notifications</see> only occur when a folder is selected.
            </p>
        <p>
            This method represents IMAP SELECT and EXAMINE commands.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndSelectFolder(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginSelectFolder operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginCreateFolder(Rebex.Net.Imap,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous CreateFolder operation.
            Creates a folder with the specified name.
            </summary>
      <param name="folder">Folder to be created.</param>
      <remarks>
        <p>
            This method represents IMAP CREATE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndCreateFolder(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginCreateFolder operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginDeleteFolder(Rebex.Net.Imap,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous DeleteFolder operation.
            Deletes a folder with the specified name.
            </summary>
      <param name="folder">Folder to be deleted.</param>
      <remarks>
        <p>
            This method represents IMAP DELETE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndDeleteFolder(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginDeleteFolder operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginRenameFolder(Rebex.Net.Imap,System.String,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous RenameFolder operation.
            Renames a specified folder to a new name.
            </summary>
      <param name="folder">Folder to be renamed.</param>
      <param name="newFolderName">New folder name.</param>
      <remarks>
        <p>
            This method represents IMAP RENAME command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndRenameFolder(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginRenameFolder operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginSubscribe(Rebex.Net.Imap,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Subscribe operation.
            Subscribes to a specified folder, adding it to a list of active folders that
            appear in the folder listings with <see cref="T:Rebex.Net.ImapFolderListMode" /> set
            to <see cref="F:Rebex.Net.ImapFolderListMode.Subscribed" />.
            </summary>
      <param name="folder">Folder to subscribe to.</param>
      <remarks>
        <p>
            The only difference between those folders that are subscribed and those that aren't
            is that a call to <see cref="M:Rebex.Net.Imap.GetFolderList(System.String,Rebex.Net.ImapFolderListMode,System.Boolean)" /> using
            the <see cref="T:Rebex.Net.ImapFolderListMode">ImapFolderListMode</see>.Subscribed will only
            return the subscribed (active) folders. This has absolutely NOTHING to do
            with <see cref="E:Rebex.Net.Imap.Notification">notifications</see>.
            </p>
        <p>
            This method represents IMAP SUBSCRIBE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndSubscribe(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginSubscribe operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginUnsubscribe(Rebex.Net.Imap,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Unsubscribe operation.
            Unsubscribes from a specified folder, removing it to a list of active folders that
            appear in the folder listings with <see cref="T:Rebex.Net.ImapFolderListMode" /> set
            to <see cref="F:Rebex.Net.ImapFolderListMode.Subscribed" />.
            </summary>
      <param name="folder">Folder to unsubscribe from.</param>
      <remarks>
        <p>
            The only difference between those folders that are subscribed and those that aren't
            is that a call to <see cref="M:Rebex.Net.Imap.GetFolderList(System.String,Rebex.Net.ImapFolderListMode,System.Boolean)" /> using
            the <see cref="T:Rebex.Net.ImapFolderListMode">ImapFolderListMode</see>.Subscribed will only
            return the subscribed (active) folders. This has absolutely NOTHING to do
            with <see cref="E:Rebex.Net.Imap.Notification">notifications</see>.
            </p>
        <p>
            This method represents IMAP UNSUBSCRIBE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndUnsubscribe(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginUnsubscribe operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetFolderInfo(Rebex.Net.Imap,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetFolderInfo operation.
            Returns information about the specified folder without selecting it.
            </summary>
      <param name="folder">Folder to retrieve information about.</param>
      <remarks>
        <p>
            Following <see cref="T:Rebex.Net.ImapFolder" /> properties are determined using this method:
            MessageCount, RecentCount, NotSeenCount, NextUniqueId and ValidityID.
            </p>
        <p>
            This method represents IMAP STATUS command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndGetFolderInfo(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginGetFolderInfo operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>A folder info.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginRequestCheckpoint(Rebex.Net.Imap,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous RequestCheckpoint operation.
            Requests a checkpoint of the currently selected mailbox.
            mailbox.
            </summary>
      <remarks>
        <p>
            A checkpoint refers to any implementation-dependent
            housekeeping associated with the mailbox.
            </p>
        <p>
            This method represents IMAP CHECK command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndRequestCheckpoint(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginRequestCheckpoint operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginPurge(Rebex.Net.Imap,Rebex.Net.ImapMessageSet,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Purge operation.
            Permanently removes all messages marked as deleted (with a Deleted flag)
            from the current folder.
            </summary>
      <param name="messageSet">
            Message set comprised of message unique IDs to purge. Only supported by servers that
            support the UIDPLUS extension. Only the messages that are both present in the set and also have the Deleted flag
            set will be purged.
            </param>
      <remarks>
        <p>
            This method represents IMAP EXPUNGE command.
            </p>
        <p>
            This message set may be specified to ensure that the method does not remove any messages that have been marked as Deleted
            between the time that the user requested the purge operation and
            the time the server processes the command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <seealso cref="M:Rebex.Net.Imap.SelectFolder(System.String)" />
      <seealso cref="M:Rebex.Net.Imap.UnselectFolder(System.Boolean)" />
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginPurge(Rebex.Net.Imap,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Purge operation.
            Permanently removes all messages marked as deleted (with a Deleted flag)
            from the current folder.
            </summary>
      <remarks>
        <p>
            This method represents IMAP EXPUNGE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <seealso cref="M:Rebex.Net.Imap.SelectFolder(System.String)" />
      <seealso cref="M:Rebex.Net.Imap.UnselectFolder(System.Boolean)" />
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndPurge(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginPurge operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginSearch(Rebex.Net.Imap,Rebex.Net.ImapMessageSet,Rebex.Net.ImapListFields,Rebex.Net.ImapSearchParameter[],System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Search operation.
            Search the current folder for messages that match the specified searching criteria.
            </summary>
      <param name="messageSet">A set of messages to be searched.</param>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <param name="parameters">Searching criteria.</param>
      <remarks>
        <p>Searching criteria consist of one or more parameters. When multiple parameters are specified,
            the results is the intersection (AND) of all the messages that match.</p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginSearch(Rebex.Net.Imap,Rebex.Net.ImapListFields,Rebex.Net.ImapSearchParameter[],System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Search operation.
            Search the current folder for messages that match the specified searching criteria.
            </summary>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <param name="parameters">Searching criteria.</param>
      <remarks>
        <p>
          <para>
            Searching criteria consist of one or more parameters. When multiple parameters are specified,
            the results is the intersection (AND) of all the messages that match.
            </para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndSearch(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginSearch operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>A collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects that match the specified criteria.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginSetMessageFlags(Rebex.Net.Imap,Rebex.Net.ImapMessageSet,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags,System.String[],System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous SetMessageFlags operation.
            Modifies the flags of messages in the current folder that belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <param name="keywords">Keywords to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginSetMessageFlags(Rebex.Net.Imap,Rebex.Net.ImapMessageSet,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous SetMessageFlags operation.
            Modifies the flags of messages in the current folder that belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginSetMessageFlags(Rebex.Net.Imap,System.Int32,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous SetMessageFlags operation.
            Modifies the flags of a message with the specified sequence number.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginSetMessageFlags(Rebex.Net.Imap,System.String,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous SetMessageFlags operation.
            Modifies the flags of a message with the specified unique ID.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginSetMessageFlags(Rebex.Net.Imap,System.Int32,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags,System.String[],System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous SetMessageFlags operation.
            Modifies the flags of a message with the specified sequence number.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <param name="keywords">Keywords to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginSetMessageFlags(Rebex.Net.Imap,System.String,Rebex.Net.ImapFlagAction,Rebex.Net.ImapMessageFlags,System.String[],System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous SetMessageFlags operation.
            Modifies the flags of a message with the specified unique ID.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="action">The action to take.</param>
      <param name="flags">Flags to add, remove or set.</param>
      <param name="keywords">Keywords to add, remove or set.</param>
      <remarks>
        <p>
            This method represents IMAP STORE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndSetMessageFlags(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginSetMessageFlags operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginCopyMessage(Rebex.Net.Imap,Rebex.Net.ImapMessageSet,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous CopyMessage operation.
            Copies messages from the current folder that belong to a specified message set to the specified folder.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="destinationFolder">Folder that will receive copies of messages.</param>
      <remarks>
        <p>
            This method represents IMAP COPY command.
            </p>
        <p>
            List of unique IDs of the new messages will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus (UIDPLUS) extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginCopyMessage(Rebex.Net.Imap,System.Int32,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous CopyMessage operation.
            Copies a message with the specified sequence number to the specified folder.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="destinationFolder">Folder that will receive copies of the message.</param>
      <remarks>
        <p>
            This method represents IMAP COPY command.
            </p>
        <p>
            Unique ID of the new message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginCopyMessage(Rebex.Net.Imap,System.String,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous CopyMessage operation.
            Copies a message with the specified unique ID to the specified folder.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="destinationFolder">Folder that will receive copies of the message.</param>
      <remarks>
        <p>
            This method represents IMAP COPY command.
            </p>
        <p>
            Unique ID of the new message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus (UIDPLUS) extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndCopyMessage(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginCopyMessage operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>Unique ID of the target message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginStoreMessage(Rebex.Net.Imap,System.String,Rebex.Mime.MimeMessage,Rebex.Net.ImapMessageFlags,System.String[],System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="message">Message to upload.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <remarks>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginStoreMessage(Rebex.Net.Imap,System.String,Rebex.Mail.MailMessage,Rebex.Net.ImapMessageFlags,System.String[],System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="message">Message to upload.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <p>
            This method represents IMAP APPEND command.
            </p>
      <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginStoreMessage(Rebex.Net.Imap,System.String,System.String,System.String,System.String,System.String,Rebex.Net.ImapMessageFlags,System.String[],System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="from">Message sender.</param>
      <param name="to">Comma-separated list of message recipients.</param>
      <param name="subject">The subject of the message.</param>
      <param name="body">The text body of the message.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <p>
            This method represents IMAP APPEND command.
            </p>
      <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginStoreMessage(Rebex.Net.Imap,System.String,System.IO.Stream,Rebex.Net.ImapMessageFlags,System.String[],System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message read from the stream to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="input">The input stream.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <remarks>
        <p>
            The stream must contain data in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginStoreMessage(Rebex.Net.Imap,System.String,System.String,Rebex.Net.ImapMessageFlags,System.String[],System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message read from a local file and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="path">The path to the mail message file.</param>
      <param name="flags">Message flags.</param>
      <param name="keywords">Keywords to set.</param>
      <remarks>
        <p>
            The file must be in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginStoreMessage(Rebex.Net.Imap,System.String,Rebex.Mime.MimeMessage,Rebex.Net.ImapMessageFlags,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="message">Message to upload.</param>
      <param name="flags">Message flags.</param>
      <remarks>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginStoreMessage(Rebex.Net.Imap,System.String,Rebex.Mail.MailMessage,Rebex.Net.ImapMessageFlags,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="message">Message to upload.</param>
      <param name="flags">Message flags.</param>
      <p>
            This method represents IMAP APPEND command.
            </p>
      <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginStoreMessage(Rebex.Net.Imap,System.String,System.String,System.String,System.String,System.String,Rebex.Net.ImapMessageFlags,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="from">Message sender.</param>
      <param name="to">Comma-separated list of message recipients.</param>
      <param name="subject">The subject of the message.</param>
      <param name="body">The text body of the message.</param>
      <param name="flags">Message flags.</param>
      <p>
            This method represents IMAP APPEND command.
            </p>
      <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginStoreMessage(Rebex.Net.Imap,System.String,System.IO.Stream,Rebex.Net.ImapMessageFlags,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message read from the stream to the specified folder and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="input">The input stream.</param>
      <param name="flags">Message flags.</param>
      <remarks>
        <p>
            The stream must contain data in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginStoreMessage(Rebex.Net.Imap,System.String,System.String,Rebex.Net.ImapMessageFlags,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous StoreMessage operation.
            Uploads the message read from a local file and sets its flags.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="path">The path to the mail message file.</param>
      <param name="flags">Message flags.</param>
      <remarks>
        <p>
            The file must be in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndStoreMessage(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginStoreMessage operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginStoreRawMessage(Rebex.Net.Imap,System.String,System.IO.Stream,Rebex.Net.ImapMessageFlags,Rebex.Mime.Headers.MailDateTime,System.String[],System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous StoreRawMessage operation.
            Uploads the contents of the stream to the specified folder and sets its flags and date.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="input">The input stream.</param>
      <param name="flags">Message flags.</param>
      <param name="internalDate">IMAP message date/time.</param>
      <param name="keywords">Keywords to set.</param>
      <remarks>
        <p>
            Caution: Unlike the StoreMessage methods, StoreRawMessage does not parse the message to validate its structure and retrieve its date/time.
            User must ensure the stream supplied to this method represents a valid MIME format message.
            </p>
        <p>
            The stream must contain data in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginStoreRawMessage(Rebex.Net.Imap,System.String,System.IO.Stream,Rebex.Net.ImapMessageFlags,Rebex.Mime.Headers.MailDateTime,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous StoreRawMessage operation.
            Uploads the contents of the stream to the specified folder and sets its flags and date.
            </summary>
      <param name="folder">Folder that will receive the message.</param>
      <param name="input">The input stream.</param>
      <param name="flags">Message flags.</param>
      <param name="internalDate">IMAP message date/time.</param>
      <remarks>
        <p>
            Caution: Unlike the StoreMessage methods, StoreRawMessage does not parse the message to validate its structure and retrieve its date/time.
            User must ensure the stream supplied to this method represents a valid MIME format message.
            </p>
        <p>
            The stream must contain data in MIME format, other formats are not supported.
            MIME files often have the '.eml' extension and are produced by Outlook Express.
            In contrast, Outlook produces '.msg' files that are not MIME files and therefore
            cannot be uploaded using this method.
            </p>
        <p>
            This method represents IMAP APPEND command.
            </p>
        <p>
            Unique ID of the message will be returned if the server supports the <see cref="T:Rebex.Legacy.ImapExtensions" />.UniqueIdPlus extension
            and it is enabled. See <see cref="P:Rebex.Net.Imap.SupportedExtensions" /> and <see cref="P:Rebex.Net.Imap.EnabledExtensions" />.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndStoreRawMessage(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginStoreRawMessage operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>Unique ID of the message, or null (Nothing in Visual Basic) if the server does not support the UIDPLUS extension.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginSendCommand(Rebex.Net.Imap,System.String,System.Object[],System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous SendCommand operation.
            Executes a command on the IMAP server.
            </summary>
      <param name="command">Command (e.g. "CAPABILITY").</param>
      <param name="parameters">List of parameters. Allowed types are <see cref="T:System.String" /> and a byte array.</param>
      <remarks>
        <p>
            The specified string parameters are send as is. It is caller's responsibility to properly format the parameters.<br />
            The specified byte array parameters are send as literals - binary blocks of data.<br />
            To use this method properly, some understanding of the IMAP protocol is strongly recommended.
            </p>
        <p>A call to SendCommand MUST be followed by a call to <see cref="M:Rebex.Net.Imap.ReadResponse">ReadResponse</see> method.</p>
        <p>Use <see cref="M:Rebex.Net.Imap.ReadResponse">ReadResponse</see> and SendCommand to implement various custom commands.</p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndSendCommand(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginSendCommand operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginReadResponse(Rebex.Net.Imap,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous ReadResponse operation.
            Returns the response of the IMAP server to the command.
            </summary>
      <remarks>
        <p>Use ReadResponse and <see cref="M:Rebex.Net.Imap.SendCommand(System.String,System.Object[])">SendCommand</see> to implement various custom commands.</p>
        <p>
            After a successful call to ReadResponse,
            the <see cref="T:Rebex.Net.Imap" /> object will be
            in <see cref="T:Rebex.Net.ImapState">Reading</see> state.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndReadResponse(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginReadResponse operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>Response of the IMAP server.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginDeleteMessage(Rebex.Net.Imap,Rebex.Net.ImapMessageSet,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous DeleteMessage operation.
            Marks messages that belong to a specified message set as deleted.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <remarks>
        <p>
            To actually remove messages marked as deleted, use the <see cref="M:Rebex.Net.Imap.Purge" /> method.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginDeleteMessage(Rebex.Net.Imap,System.Int32,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous DeleteMessage operation.
            Marks a message with the specified sequence number as deleted.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <remarks>
        <p>
            To actually remove messages marked as deleted, use the <see cref="M:Rebex.Net.Imap.Purge" /> method.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginDeleteMessage(Rebex.Net.Imap,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous DeleteMessage operation.
            Marks a message with the specified unique ID as deleted.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <remarks>
        <p>
            To actually remove messages marked as deleted, use the <see cref="M:Rebex.Net.Imap.Purge" /> method.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndDeleteMessage(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginDeleteMessage operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginUndeleteMessage(Rebex.Net.Imap,Rebex.Net.ImapMessageSet,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous UndeleteMessage operation.
            Marks messages that belong to a specified message set as not deleted.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <remarks>
        <p>
            This only has effect on messages that were not <see cref="M:Rebex.Net.Imap.Purge">purged</see> yet.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginUndeleteMessage(Rebex.Net.Imap,System.Int32,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous UndeleteMessage operation.
            Marks a message with the specified sequence number as not deleted.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <remarks>
        <p>
            This only has effect if the message was not <see cref="M:Rebex.Net.Imap.Purge">purged</see> yet.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginUndeleteMessage(Rebex.Net.Imap,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous UndeleteMessage operation.
            Marks a message with the specified unique ID as not deleted.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <remarks>
        <p>
            This only has effect if the message was not <see cref="M:Rebex.Net.Imap.Purge">purged</see> yet.
            </p>
        <p>
            This method represents IMAP STORE command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndUndeleteMessage(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginUndeleteMessage operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessage(Rebex.Net.Imap,System.Int32,System.IO.Stream,System.Int64,System.Int32,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the specified part of the message with the specified sequence number
            and writes its data into a supplied stream.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="output">Stream that will receive the message.</param>
      <param name="remoteOffset">The starting offset of the message data to download.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end of message is reached.</param>
      <remarks>
        <p>Uses IMAP FETCH command to retrieve the message.</p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessage(Rebex.Net.Imap,System.String,System.IO.Stream,System.Int64,System.Int32,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the specified part of the message with the specified unique ID
            and writes its data into a supplied stream.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="output">Stream that will receive the message.</param>
      <param name="remoteOffset">The starting offset of the message data to download.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end of message is reached.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve the message.</para>
          <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessage(Rebex.Net.Imap,System.Int32,System.IO.Stream,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the message with the specified sequence number
            and writes its data into a supplied stream.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="output">Stream that will receive the message.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve the message.</para>
          <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessage(Rebex.Net.Imap,System.String,System.IO.Stream,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the message with the specified unique ID
            and writes its data into a supplied stream.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="output">Stream that will receive the message.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve the message.</para>
          <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessage(Rebex.Net.Imap,System.Int32,System.String,System.Int64,System.Int32,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the message with the specified sequence number
            and writes its data into a local file.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="fileName">The path of the local file. This cannot be a directory.</param>
      <param name="remoteOffset">The starting offset of the message data to download.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end of message is reached.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve the message.</para>
          <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessage(Rebex.Net.Imap,System.String,System.String,System.Int64,System.Int32,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the message with the specified unique ID
            and writes its data into a local file.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="fileName">The path of the local file. This cannot be a directory.</param>
      <param name="remoteOffset">The starting offset of the message data to download.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end of message is reached.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve the message.</para>
          <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessage(Rebex.Net.Imap,System.Int32,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the message with the specified sequence number
            and writes its data into a local file.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="fileName">The path of the local file. This cannot be a directory.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve the message.</para>
          <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessage(Rebex.Net.Imap,System.String,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessage operation.
            Downloads the message with the specified unique ID
            and writes its data into a local file.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="fileName">The path of the local file. This cannot be a directory.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve the message.</para>
          <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndGetMessage(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginGetMessage operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>The length of the message in bytes.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessages(Rebex.Net.Imap,Rebex.Net.ImapMessageSet,Rebex.Net.ImapListFields,System.Action{Rebex.Net.ImapMessage},System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessages operation.
            Downloads messages in the current folder that belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <param name="messageReceiver">A handler to process received messages. It has to process messages (and exit) quickly.
            If slow/complex processing is required, hand messages over to other thread.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve messages.</para>
          <para>By default, this method marks messages as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
          <para>This method demands a lot of data to be received from the server. 
            The data has to be read from the network socket as fast as possible. 
            This places demand on <paramref name="messageReceiver" /> handler to process received messages as fast as possible. 
            If the handler slows the process too much, incoming data will not be read from the underlying network socket in sufficient speed
            and TCP internal buffers will be overfilled. This can cause strange network exceptions.
            </para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndGetMessages(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginGetMessages operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMimeMessage(Rebex.Net.Imap,System.Int32,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMimeMessage operation.
            Downloads the message with the specified sequence number
            and loads it into an instance of <see cref="T:Rebex.Mime.MimeMessage" />.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve the message.</para>
          <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMimeMessage(Rebex.Net.Imap,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMimeMessage operation.
            Downloads the message with the specified unique ID
            and loads it into an instance of <see cref="T:Rebex.Mime.MimeMessage" />.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve the message.</para>
          <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndGetMimeMessage(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginGetMimeMessage operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>A downloaded message.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMailMessage(Rebex.Net.Imap,System.Int32,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMailMessage operation.
            Downloads the message with the specified sequence number
            and loads it into an instance of <see cref="T:Rebex.Mail.MailMessage" />.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve the message.</para>
          <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMailMessage(Rebex.Net.Imap,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMailMessage operation.
            Downloads the message with the specified unique ID
            and loads it into an instance of <see cref="T:Rebex.Mail.MailMessage" />.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve the message.</para>
          <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndGetMailMessage(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginGetMailMessage operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>A downloaded message.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessageHeaders(Rebex.Net.Imap,System.Int32,System.IO.Stream,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessageHeaders operation.
            Downloads the headers of a message with the specified sequence number
            and writes it into a supplied stream.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="output">Stream that will receive the message headers.</param>
      <remarks>
        <p>Uses IMAP FETCH command to retrieve the headers.</p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessageHeaders(Rebex.Net.Imap,System.String,System.IO.Stream,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessageHeaders operation.
            Downloads the headers of a message with the specified unique ID
            and writes it into a supplied stream.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="output">Stream that will receive the message headers.</param>
      <remarks>
        <p>Uses IMAP FETCH command to retrieve the headers.</p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndGetMessageHeaders(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginGetMessageHeaders operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>The length of the headers in bytes.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessagePart(Rebex.Net.Imap,System.Int32,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessagePart operation.
            Downloads the specified part of the message. Used to download separate attachments.
            Call <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" /> with <see cref="T:Rebex.Net.ImapListFields" />.MessageStructure argument
            to download the list of sections and access it using <see cref="M:Rebex.Net.ImapMessageInfo.GetParts" /> method.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="partId">Message section (from <see cref="P:Rebex.Net.ImapMessagePart.Id" />).</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessagePart(Rebex.Net.Imap,System.String,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessagePart operation.
            Downloads the specified part of the message. Used to download separate attachments.
            Call <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" /> with <see cref="T:Rebex.Net.ImapListFields" />.MessageStructure argument
            to download the list of sections and access it using <see cref="M:Rebex.Net.ImapMessageInfo.GetParts" /> method.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="partId">Message section (from <see cref="P:Rebex.Net.ImapMessagePart.Id" />).</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessagePart(Rebex.Net.Imap,System.Int32,System.String,System.IO.Stream,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessagePart operation.
            Downloads the specified part of the message into the specified stream. Used to download separate attachments.
            Call <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" /> with <see cref="T:Rebex.Net.ImapListFields" />.MessageStructure argument
            to download the list of sections and access it using <see cref="M:Rebex.Net.ImapMessageInfo.GetParts" /> method.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="partId">Message section (from <see cref="P:Rebex.Net.ImapMessagePart.Id" />).</param>
      <param name="output">Stream that will receive the part data.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessagePart(Rebex.Net.Imap,System.String,System.String,System.IO.Stream,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessagePart operation.
            Downloads the specified part of the message into the specified stream. Used to download separate attachments.
            Call <see cref="M:Rebex.Net.Imap.GetMessageInfo(System.String,Rebex.Net.ImapListFields)" /> with <see cref="T:Rebex.Net.ImapListFields" />.MessageStructure argument
            to download the list of sections and access it using <see cref="M:Rebex.Net.ImapMessageInfo.GetParts" /> method.
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="partId">Message section (from <see cref="P:Rebex.Net.ImapMessagePart.Id" />).</param>
      <param name="output">Stream that will receive the part data.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndGetMessagePart(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginGetMessagePart operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessageList(Rebex.Net.Imap,Rebex.Net.ImapMessageSet,Rebex.Net.ImapListFields,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessageList operation.
            Gets the list of messages in the current folder that belong to a specified message set.
            </summary>
      <param name="messageSet">A set of messages.</param>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <remarks>
        <p>
            This method represents IMAP FETCH command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessageList(Rebex.Net.Imap,Rebex.Net.ImapListFields,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessageList operation.
            Gets the list of messages in the current folder.
            </summary>
      <param name="fields">Specifies the scope of information to determine about each message.</param>
      <remarks>
        <p>
            This method represents IMAP FETCH command.
            </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndGetMessageList(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginGetMessageList operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>A collection of <see cref="T:Rebex.Net.ImapMessageInfo" /> objects.</returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessageInfo(Rebex.Net.Imap,System.Int32,Rebex.Net.ImapListFields,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessageInfo operation.
            Gets information about a message with the specified sequence number.
            </summary>
      <param name="sequenceNumber">Message sequence number.</param>
      <param name="fields">Specifies the scope of information to determine about the message.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve the message.</para>
          <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.BeginGetMessageInfo(Rebex.Net.Imap,System.String,Rebex.Net.ImapListFields,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous GetMessageInfo operation.
            Gets information about a message with the specified unique ID
            </summary>
      <param name="uniqueId">Message unique ID.</param>
      <param name="fields">Specifies the scope of information to determine about the message.</param>
      <remarks>
        <p>
          <para>Uses IMAP FETCH command to retrieve the message.</para>
          <para>By default, this method marks the message as read. To prevent this behavior, set the <see cref="P:Rebex.Net.ImapSettings.UsePeekForGetMessage" /> to <c>true</c>.</para>
        </p>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Legacy.ImapExtensions.EndGetMessageInfo(Rebex.Net.Imap,System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginGetMessageInfo operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <param name="instance">Instance of Imap.</param>
      <returns>A message info.</returns>
    </member>
  </members>
</doc>