none
HTML形式メールの表示・編集 RRS feed

  • 質問

  • VB.NET2008で、HTML形式のメールを表示・編集したいのですが、
    何かヒントはありませんでしょうか?

    普通にRichTextBoxを配置して出来るかと思ってたんですが、、
    rtf形式しか扱えないんですね、、、

    実装したいのは、OutlookExpressなどのHTML形式メールの作成
    表示と同じイメージです。

    何でもいいので、宜しくお願い致します。

    2009年5月19日 10:00

回答

  • WINAMAさんは、HTML形式のメールを作ることができるエディタを作りたいのですか?

    簡単なものでいいのなら、RichTextBoxから

    RichTextBox.SelectionColor
    RichTextBox.SelectionFont

    などを使ってそれをHTMLに変換するとか。
    (SelectionColor = Color.Red ⇒ <span style="color : red;">赤で修飾された文字の範囲</span> に変換 )

    でもまずはみなさんがおっしゃるように、
    エディタよりもHTMLメールを送れるように内部を先に実装してから、だと思います。

    いろいろ試してみるといいですよ。

    • 回答としてマーク WINAMA 2009年5月27日 3:54
    2009年5月26日 9:44

すべての返信

  • 表示だけでなく編集、つまりメール作成もしたいということでしょうか。

    編集した後に、メールサーバに対してどのようなデータを投げればいいのかは理解していますか? そこも何らかのライブラリに任せるという考えでしょうか。
    というのも、何らかのエディタが利用可能だったとしてもその出力htmlをメールサーバに渡すためにどうする必要があるのかを知っていないと扱えませんので。
    (htmlとは別にplain textも用意すべきだし、CSSや画像が付属する場合htmlの書き方が変わるし)

    質問文に書かれている内容からの勝手な推測ですが、一度、メールを見ることから始めることをおすすめします。
    単にメールソフトの表示結果を見るのではなく、ネットワーク的にどんなバイト列がやり取りされ、それを受け取ったメールソフトがどのように表示しているのか。
    そうすることによってどんなバイト列を用意すればメールが作成できるのかがわかると思います。
    その上でこの部分を担当するコンポーネントを、という探し方をするといいでしょう。
    # バイト列と言っても単なるテキストなんですけどね…テキストでなく読めないバイト列を送りつける悪質なメールソフトもたまにありますが…。
    • 編集済み 佐祐理 2009年5月19日 14:06 加筆
    2009年5月19日 13:59
  • 表示だけでなく編集、つまりメール作成もしたいということでしょうか。

    編集した後に、メールサーバに対してどのようなデータを投げればいいのかは理解していますか? そこも何らかのライブラリに任せるという考えでしょうか。
    お察しのとおり、メールの送受信は外部コンポーネントにお任せです。
    でもこのあたり、詳しくはないですが、少しは実践したことがあるので何もわからないってわけではないです。
    あくまでHTML形式のメールをどう、編集・表示するか、エディタ機能?をどう実装したらいいのか、
    もしくはこちらも何か良いコンポーネントがあるか、ヒントをいただければと思い投稿しました。。。

    質問が悪くてすみません、、、
    2009年5月22日 11:21
  • んー本当にHTML形式のメールを理解しているのかなぁ?
    先のコメントにも書いたけど、もう少し詳しく書くと
    text/htmlの他にもtext/plainが必要になる
    →mime multipartが必要になる
    →メールヘッダにcontent-type: multipart/alternative; boundary="ここ"を書く必要がある
    →multipartやメールヘッダは誰が作るんだろう?

    と気になるわけです。やり出すとメール編集とメール送信が不可分に。でもそれってOutlookとかをそのまま使うことでは? と。

    まぁMailMessageクラスなんかの場合はMailMessage.AlternateViews があるのでなんとかなるのかな。
    2009年5月23日 1:32
  • WINAMAさんは、HTML形式のメールを作ることができるエディタを作りたいのですか?

    簡単なものでいいのなら、RichTextBoxから

    RichTextBox.SelectionColor
    RichTextBox.SelectionFont

    などを使ってそれをHTMLに変換するとか。
    (SelectionColor = Color.Red ⇒ <span style="color : red;">赤で修飾された文字の範囲</span> に変換 )

    でもまずはみなさんがおっしゃるように、
    エディタよりもHTMLメールを送れるように内部を先に実装してから、だと思います。

    いろいろ試してみるといいですよ。

    • 回答としてマーク WINAMA 2009年5月27日 3:54
    2009年5月26日 9:44
  • WINAMAさんは、HTML形式のメールを作ることができるエディタを作りたいのですか?

    簡単なものでいいのなら、RichTextBoxから

    RichTextBox.SelectionColor
    RichTextBox.SelectionFont

    などを使ってそれをHTMLに変換するとか。
    (SelectionColor = Color.Red ⇒ <span style="color : red;">赤で修飾された文字の範囲</span> に変換 )

    ご指摘ごもっともです。
    あれからメールの送受信部分は実装してみました(外部コンポ使ってですが)

    お察しのとおり、HTML形式のメールを作ることができるエディタの実装に悩んでいました。
    まだ、編集時に画像の挿入などをどうするかという問題は残ってますが、上記方法を検討してみたいと思います。

    ありがとうございました。
    2009年5月27日 3:57