2011-08-11 19 views
0

というように、MemoryStreamをコンテンツソースとして使用してファイルを添付しようとすると、電子メールにファイルを添付するときにContentStreamとしてMemoryStreamを使用すると、C#

今、リモートWebサーバーからイメージを取得し、日次レポートとして機能する電子メールにそれらをパッケージ化しようとしています。

フェッチ、解析、イメージの抽出がすべてダウンしていて、それが機能することをテストしました。私が直面している問題は、ContentStream/ContentストリームとしてMemoryStreamを使用してAttachmentオブジェクトを作成すると、電子メールに空白のファイル/イメージが含まれていることです。ただし、ハードドライブにある実際のファイルを指定すると、問題なくメッセージに添付され、受信したメッセージは完璧です。

明らかに、ファイルを添付して送信する前に、イメージをローカルにキャッシュする必要はなく、キャッシュで不要なオーバーヘッドが発生してパージするためです。しかし、必要があれば、私はこれを私の最後の手段にすることができます。

私の質問は、Attachmentオブジェクトの作成時にContentStreamとしてMemoryStreamを使用することで、または忘れてしまったことがある場合、既知の問題があるかどうかです。

ありがとうございます!

+1

コードの関連する部分が機能していないことを通知し、電子メールの作成に使用しているものを追加します。見通し? EWS?他のライブラリですか? – Eddy

答えて

6

私は精神的なデバッグ能力を試しています。MemoryStreamにデータをロードし、読み込み前に位置をゼロにリセットするのを忘れてしまいました。その場合は、

myMemoryStream.Position = 0 

の戦術的な立場にあるかもしれません。

+0

これはすぐに私の心に来たものです。 –

+0

+1。代わりに、元のMemoryStreamと同じバイト配列上にクローンされたr/oメモリストリームを作成するためにPosition = 0を設定することをお勧めします。 –

+0

男、あなたの力は素晴らしいです!これはまさに問題の原因です。しかし男ああ、私は今、愚かな気がするのですか? – user711330

関連する問題