2017-11-28 23 views
2

私は単純な.net MailKit IMAPクライアントを構築しています。 IMAPサーバから何度も電子メールを引き出すのではなく、MailKit MIMEメッセージ全体(添付ファイルを含めて)をバイト配列として保存することは可能ですか?もしそうなら、どうですか?MailKit mimeメッセージ全体をバイト配列として保存するには

次に、MySqlまたはファイルに書き込んでコード変更のテスト用に再利用することができました。

+1

'MimeMessage.WriteTo'と' MimeMessage.Load' –

答えて

3

Lucasが指摘するように、MimeMessage.WriteTo()メソッドを使用して、ファイル名またはストリーム(MemoryStreamなど)のいずれかにメッセージを書き込むことができます。あなたがSQLデータベースに保存するために、バイト配列としてメッセージをしたい場合は

、あなたがこれを行うことができます:

using (var memory = new MemoryStream()) { 
    message.WriteTo (memory); 

    var blob = memory.ToArray(); 
    // now save the blob to the database 
} 

は、データベースから戻ってそれを読むには、最初のブロブを読みましたバイト[]として指定し、次にこれを行います:

using (var memory = new MemoryStream (blob, false)) { 
    message = MimeMessage.Load (memory); 
} 
関連する問題