トップ回答者
HTML形式メールの表示・編集

質問
回答
-
WINAMAさんは、HTML形式のメールを作ることができるエディタを作りたいのですか?
簡単なものでいいのなら、RichTextBoxから
RichTextBox.SelectionColor
RichTextBox.SelectionFont
などを使ってそれをHTMLに変換するとか。
(SelectionColor = Color.Red ⇒ <span style="color : red;">赤で修飾された文字の範囲</span> に変換 )
でもまずはみなさんがおっしゃるように、
エディタよりもHTMLメールを送れるように内部を先に実装してから、だと思います。
いろいろ試してみるといいですよ。- 回答としてマーク WINAMA 2009年5月27日 3:54
すべての返信
-
表示だけでなく編集、つまりメール作成もしたいということでしょうか。
編集した後に、メールサーバに対してどのようなデータを投げればいいのかは理解していますか? そこも何らかのライブラリに任せるという考えでしょうか。
というのも、何らかのエディタが利用可能だったとしてもその出力htmlをメールサーバに渡すためにどうする必要があるのかを知っていないと扱えませんので。
(htmlとは別にplain textも用意すべきだし、CSSや画像が付属する場合htmlの書き方が変わるし)
質問文に書かれている内容からの勝手な推測ですが、一度、メールを見ることから始めることをおすすめします。
単にメールソフトの表示結果を見るのではなく、ネットワーク的にどんなバイト列がやり取りされ、それを受け取ったメールソフトがどのように表示しているのか。
そうすることによってどんなバイト列を用意すればメールが作成できるのかがわかると思います。
その上でこの部分を担当するコンポーネントを、という探し方をするといいでしょう。
# バイト列と言っても単なるテキストなんですけどね…テキストでなく読めないバイト列を送りつける悪質なメールソフトもたまにありますが…。- 編集済み 佐祐理 2009年5月19日 14:06 加筆
-
表示だけでなく編集、つまりメール作成もしたいということでしょうか。
お察しのとおり、メールの送受信は外部コンポーネントにお任せです。
編集した後に、メールサーバに対してどのようなデータを投げればいいのかは理解していますか? そこも何らかのライブラリに任せるという考えでしょうか。
でもこのあたり、詳しくはないですが、少しは実践したことがあるので何もわからないってわけではないです。
あくまでHTML形式のメールをどう、編集・表示するか、エディタ機能?をどう実装したらいいのか、
もしくはこちらも何か良いコンポーネントがあるか、ヒントをいただければと思い投稿しました。。。
質問が悪くてすみません、、、 -
んー本当にHTML形式のメールを理解しているのかなぁ?
先のコメントにも書いたけど、もう少し詳しく書くと
text/htmlの他にもtext/plainが必要になる
→mime multipartが必要になる
→メールヘッダにcontent-type: multipart/alternative; boundary="ここ"を書く必要がある
→multipartやメールヘッダは誰が作るんだろう?
と気になるわけです。やり出すとメール編集とメール送信が不可分に。でもそれってOutlookとかをそのまま使うことでは? と。
まぁMailMessageクラスなんかの場合はMailMessage.AlternateViews があるのでなんとかなるのかな。 -
WINAMAさんは、HTML形式のメールを作ることができるエディタを作りたいのですか?
簡単なものでいいのなら、RichTextBoxから
RichTextBox.SelectionColor
RichTextBox.SelectionFont
などを使ってそれをHTMLに変換するとか。
(SelectionColor = Color.Red ⇒ <span style="color : red;">赤で修飾された文字の範囲</span> に変換 )
でもまずはみなさんがおっしゃるように、
エディタよりもHTMLメールを送れるように内部を先に実装してから、だと思います。
いろいろ試してみるといいですよ。- 回答としてマーク WINAMA 2009年5月27日 3:54
-
WINAMAさんは、HTML形式のメールを作ることができるエディタを作りたいのですか?
簡単なものでいいのなら、RichTextBoxから
RichTextBox.SelectionColor
RichTextBox.SelectionFont
などを使ってそれをHTMLに変換するとか。
(SelectionColor = Color.Red ⇒ <span style="color : red;">赤で修飾された文字の範囲</span> に変換 )
ご指摘ごもっともです。
あれからメールの送受信部分は実装してみました(外部コンポ使ってですが)
お察しのとおり、HTML形式のメールを作ることができるエディタの実装に悩んでいました。
まだ、編集時に画像の挿入などをどうするかという問題は残ってますが、上記方法を検討してみたいと思います。
ありがとうございました。