IMailFolderGetMessageAsync(Int32, CancellationToken, ITransferProgress) Method

Asynchronously get the specified message.

Definition

Namespace: MailKit
Assembly: MailKit (in MailKit.dll) Version: 5.0.0
C#
Task<MimeMessage> GetMessageAsync(
	int index,
	CancellationToken cancellationToken = default,
	ITransferProgress? progress = null
)

Parameters

index  Int32
The index of the message.
cancellationToken  CancellationToken  (Optional)
The cancellation token.
progress  ITransferProgress  (Optional)
The progress reporting mechanism.

Return Value

TaskMimeMessage
The message.

Remarks

Asynchronously gets the specified message.

Example

C#
                    public static void DownloadMessages ()
{
    using (var client = new ImapClient ()) {
        client.Connect ("imap.gmail.com", 993, SecureSocketOptions.SslOnConnect);

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

        client.Inbox.Open (FolderAccess.ReadOnly);

        for (int index = 0; index < client.Inbox.Count; index++) {
            var message = client.Inbox.GetMessage (index);

            // write the message to a file
            message.WriteTo (string.Format ("{0}.eml", index));
        }

        client.Disconnect (true);
    }
}
                  

Exceptions

ArgumentOutOfRangeException index is out of range.
ObjectDisposedException The IMailStore has been disposed.
ServiceNotConnectedException The IMailStore is not connected.
ServiceNotAuthenticatedException The IMailStore is not authenticated.
FolderNotOpenException The folder is not currently open.
MessageNotFoundException The IMailStore did not return the requested message.
OperationCanceledException The operation was canceled via the cancellation token.
IOException An I/O error occurred.
ProtocolException The server's response contained unexpected tokens.
CommandException The command failed.

See Also