Click or drag to resize
MimeKit

IMailFolderGetStreamAsync(UniqueId, CancellationToken, ITransferProgress) Method

Asynchronously get a message stream.

Namespace: MailKit
Assembly: MailKit (in MailKit.dll) Version: 4.7.1
Syntax
C#
Task<Stream> GetStreamAsync(
	UniqueId uid,
	CancellationToken cancellationToken = default,
	ITransferProgress progress = null
)

Parameters

uid  UniqueId
The UID of the message.
cancellationToken  CancellationToken  (Optional)
The cancellation token.
progress  ITransferProgress  (Optional)
The progress reporting mechanism.

Return Value

TaskStream
The message stream.
Remarks
Asynchronously gets a message stream.
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);

        var uids = client.Inbox.Search (SearchQuery.All);

        foreach (var uid in uids) {
            using (var stream = client.Inbox.GetStream (uid)) {
                using (var output = File.Create ($"{uid}.eml"))
                    stream.CopyTo (output);
            }
        }

        client.Disconnect (true);
    }
}
See Also