2016-03-25 19 views
8

私は、ファイルが保存されて は、添付ファイル

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

メッセージ

から添付ファイルを保存しようと、私は開いたときに、私は ファイルが破損しているエラーや、このファイルのサイズが88キロバイトである 大きすぎるの取得を保存MailKitファイルのサイズは55 kbに等しくなければなりません。

すべてのメッセージファイルに記録されていると思います。

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

MailKitのv1.2.0.0のMimeKit 1.2.0.0

答えて

21

あなたは(ヘッダを含む)全体の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); 
     } 
    } 
} 

希望します。

+0

var部分=(MimeKit.MessagePart)添付; ここで例外が発生しました "オブジェクトタイプMimeKit.MimePartタイプのMimeKit.MessagePartを取得できません – sergpc

+0

part.ContentObject.DecodeTo(ストリーム); ここで私はエラーが発生します:" MimeKit.MessageParts "には" Content_Object "拡張" ContentObject "のメソッドを見つけられませんでした。" MimeKit.MessagePart "型の最初の引数を受け取りました(ディレクティブまたはアセンブリ参照を使用していません) バージョンに問題がありますか? – sergpc

+0

MimeKitおよびMailKit ? – sergpc