こんばんは、メール送信プログラムを改良しています。
テキストを飛ばすものから、HTML形式で画像を埋め込むようにしました。
AlternateViewsクラスを使用すれば
HTML対応のメーラーではHTML用に用意したテキストと画像が表示され
HTML非対応のメーラーでは別途用意したプレーンテキストが表示されます。
その機能には大変満足なのですが
HTML非対応のメーラーで開いた際に
HTML用として準備していた画像が添付ファイルとして来ます。
HTML非対応の場合は、画像など一切でなくていいのですが
これに関して何か解決策はありますでしょうか?
HTML非対応を想定している方が少なく、情報がありません。
何時間も調べ、試行錯誤していますが、上手くいきません。
string html = "<a href=\"index.html\"><img src=\"cid:dbs1\"></a>"; System.Net.Mail.AlternateView htmlView = System.Net.Mail.AlternateView.CreateAlternateViewFromString( html, null, MediaTypeNames.Text.Html); string text = "text body not html"; oMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(text, null, MediaTypeNames.Text.Plain)); System.Net.Mail.LinkedResource res = new System.Net.Mail.LinkedResource("C:/***/***/***/img/***.png", "image/png");
HTML対応しているか、していないかは受信側での話で送信側は知らない話なので、画像を添付しないとHTML対応時に画像が表示できないのではないでしょうか?画像を添付したくないのであれば、画像をどこかのサーバへアップして、オンラインコンテンツとして表示するとかになるのではないかと思います。
AlternateViewクラスがHTML対応・非対応を判断したとき、HTML非対応だった場合、画像を消去・非表示するなどは不可能でしょうか?
AlternateViewクラスが受信側のメーラーを判断しているのではなく、HTML部分とプレーンテキスト部分の両方を送っている形になります。送信時に受信側のことは知ることはできません。
HTML対応しているメーラーで受信した際に、HTML非対応用のメッセージが表示されない理由はなんですか?