MailKit保存附件

ser*_*gpc 16 .net c# mailkit mimekit

我正在尝试从邮件中保存附件

foreach(MimeKit.MimeEntity at message.Attachments) 
{
    at.WriteTo("nameFile");
}
Run Code Online (Sandbox Code Playgroud)

文件保存,但是当我打开时我得到错误文件已损坏或太大此文件的大小为88 kb,但文件大小应等于55 kb.

我认为在所有录制的消息文件中.

我如何只记录附件?

MailKit v1.2.0.0 MimeKit 1.2.0.0

jst*_*ast 37

您正在保存整个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.Content.DecodeTo (stream);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.

  • `message.Attachments`枚举中的每个'MimeEntity`可以是`MimePart`或`MessagePart`.`MessagePart`项具有表示内容的`.Message`属性,而`MimePart`对象具有表示内容的`ContentObject`. (3认同)