2009-08-24 21 views
0

エクスポートから取得したHTMLがロードされたストリームがあります。私はこのストリームをバイト[](別の方法はありますか?)のストリームから取ることができ、このバイト[]をhtmlメール本体に書きたいと思います。ストリームを使用してメールにHTMLコンテンツを書き込む

これを行う理由は、レポートをhtmlにエクスポートし、このデータをpdfにエクスポートして添付ファイルとして送信する代わりに、メールの本文で使用することです。

希望があれば、何かを追加する必要があるかどうかを教えてください。

ありがとうございました

+0

OK、あなたの質問は何ですが? – Cleiton

答えて

0

見つかりました。それは非常に簡単ですが、私が望む結果を見つけられませんでしたが、フォーマットされた出力を直接メールに送っていましたが、ストリームに格納されたバイトを使用してhtmlを出力する方法についての質問がありました。

私はストリームを取り、StreamReaderを作成します。

mail.Body = reader.ReadToEnd(); 

すべてです:メールオブジェクトの本文に、次に

  stream.Position = 0; 
      StreamReader reader = new StreamReader(stream); 

を、私は、StreamReaderをを使用して、ストリームの内容を読み取ります。どう思いますか?

0

Multipart Mimeメッセージを使用して、ストリームをAlternateViewコンストラクタに渡すこともできます。ストリームを閉じたり、メッセージを送信してからMailMessage.Dispose()を呼び出してあなたのためにあなたのためのクリーンアップ)。あなたのソリューションに行くならば、Content Typeが正しく設定されるためには、mail.IsBodyHtmlをtrueに設定してください。さもなければ、受信側のメールクライアントはプレーンテキストだと思うのでHTMLをHTMLとして表示しないかもしれません。メールの出力があなたのメールクライアントで面白そうに見えたら、それはおそらく理由でしょう。

(関連部分のみに切り捨て)このようなものになりますコード:

MailMessage message = new MailMessage(); 
message.AlternateViews.Add(new AlternateView(stream, new ContentType("text/HTML")); 
// do NOT set Body, IsBodyHtml, or ContentType on MailMessage or 
// you'll mess up the mime types 

smtpClient.Send(message); 
関連する問題