2016-04-29 16 views
1

私はHTMLに自分のコンピュータ上で持っていると、電子メールにそれを埋め込む画像を変換しようとしている:画像を電子メールに埋め込むためのHTML形式でコンピュータに保存しますか?

これは私がこれまで試したものです:

chart1.SaveImage("C:\\My Chart\\mychart.png", ChartImageFormat.Png); 


OutlookApp outlookApp = new OutlookApp(); 
MailItem mailItem = outlookApp.CreateItem(OlItemType.olMailItem); 

mailItem.Subject = "This is the subject"; 
var bytes = File.ReadAllBytes("C:\\My Chart\\mychart.png"); 
var b64String = Convert.ToBase64String(bytes); 
var dataUrl = "data:image/png;base64," + b64String; 
mailItem.HTMLBody = dataUrl ; 


//Set a high priority to the message 
mailItem.Importance = OlImportance.olImportanceHigh; 
mailItem.To = "[email protected]"; 
mailItem.Display(false); 

は、これは動作しません。あなたが<img>タグを構築しようと、HTMLとして身体を送信するように見えるので、それは実際の電子メール

+1

ロット表示インラインbase64で画像を習慣、最後に私が含ま見通し –

+0

は別の質問からこの回答を見てみましょうということだった:[リンク] (http://stackoverflow.com/a/9110164/6220820)添付ファイルとして埋め込む必要があるようです。 –

+0

@AlexK。これは今、なぜ動作していないのかを説明しています。( – Sewder

答えて

4

構築適切なHTML

のコードの束として表示されますそして、あなたのベース64でエンコードされた画像データに、それのsrc設定:

// Set the body of your email to an image that contains your Base64-encoded image 
mailItem.HTMLBody = String.Format("<img src='{0}' />",dataUrl); 

これは予想通り、しかし場合は、サポートの問題になります表示されたりしませんあなたの<img>タグを構築する必要があります。

チェックブラウザとクライアントサポート

それは、while most major browsers will support Base64 URLs, many have issues and limitationsことは注目に値します。さらに、いくつかの電子メールクライアントは、下図のようにmay not support them either:電子メールクライアントの

enter image description here

+0

これは電子メールに画像を取得しますが、エラーメッセージが表示された赤いxです。画像を読み込めません。 – Sewder

+0

これはおそらくサポートの問題です。私は、Outlook 2007年以降、このような問題で画像が表示されることをネイティブでブロックする可能性があります。これを扱う別のアプローチについては、[Vortexのコメントで提供されているリンク](http://stackoverflow.com/a/9110164/6220820)に似たアプローチを考えてみてください。 –

関連する問題