Click or drag to resize
MimeKit

MimeContentDecodeTo Method

Decode the content stream into another stream.

Namespace: MimeKit
Assembly: MimeKit (in MimeKit.dll) Version: 4.7.1
Syntax
C#
public void DecodeTo(
	Stream stream,
	CancellationToken cancellationToken = default
)

Parameters

stream  Stream
The output stream.
cancellationToken  CancellationToken  (Optional)
The cancellation token.

Implements

IMimeContentDecodeTo(Stream, CancellationToken)
Exceptions
ExceptionCondition
ArgumentNullExceptionstream is null.
ObjectDisposedException The MimeContent has been disposed.
OperationCanceledException The operation was canceled via the cancellation token.
IOException An I/O error occurred.
Remarks
If the content stream is encoded, this method will decode it into the output stream using a suitable decoder based on the Encoding property, otherwise the stream will be copied into the output stream as-is.
Example
C#
foreach (var attachment in message.Attachments) {
    if (attachment is MessagePart) {
        var fileName = attachment.ContentDisposition?.FileName;
        var rfc822 = (MessagePart) attachment;

        if (string.IsNullOrEmpty (fileName))
            fileName = "attached-message.eml";

        using (var stream = File.Create (fileName))
            rfc822.Message.WriteTo (stream);
    } else {
        var part = (MimePart) attachment;
        var fileName = part.FileName;

        using (var stream = File.Create (fileName))
            part.Content.DecodeTo (stream);
    }
}
See Also