MailKit сохранить вложения

Я пытаюсь сохранить вложения из сообщения

foreach(MimeKit.MimeEntity at message.Attachments) 
{
    at.WriteTo("nameFile");
}

файл сохранен, но когда я открываю, я получаю ошибку файл поврежден или слишком велик Размер файла 88 КБ, но размер файла должен быть равен 55 КБ.

Я думаю, что во всех записанных файлов сообщений.

Как записать только вложение?

MailKit v1.2.0.0 MimeKit 1.2.0.0

1 ответов


вы сохраняете весь объект MIME (включая заголовки). Что вам нужно сделать, так это сохранить содержимое.

foreach (var attachment in message.Attachments) {
    using (var stream = File.Create ("fileName")) {
        if (attachment is MessagePart) {
            var part = (MessagePart) attachment;

            part.Message.WriteTo (stream);
        } else {
            var part = (MimePart) attachment;

            part.ContentObject.DecodeTo (stream);
        }
    }
}

надеюсь, что это поможет.