web-dev-qa-db-ja.com

MailKit添付ファイルの保存

メッセージから添付ファイルを保存してみます

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

ファイルは保存されましたが、開くときにエラーが発生します。ファイルが破損しているか、大きすぎます。このファイルのサイズは88 kbですが、ファイルのサイズは55 kbである必要があります。

録音したすべてのメッセージファイルにあると思います。

添付ファイルのみを記録するにはどうすればよいですか?

MailKit v1.2.0.0 MimeKit 1.2.0.0

16
sergpc

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

お役に立てば幸いです。

38
jstedfast