IMailFolderGetStream(UniqueId, CancellationToken, ITransferProgress) Method

Get a message stream.

Definition

Namespace: MailKit
Assembly: MailKit (in MailKit.dll) Version: 5.0.0
C#
Stream GetStream(
	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

Stream
The message stream.

Remarks

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);
    }
}
                  

Exceptions

ArgumentException uid is invalid.
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 stream.
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