1
メッセージの本文に画像が埋め込まれたメールを送信しようとしています。埋め込みBase64イメージをGmailでデコードするためにC#で電子メールに送信
イメージはBase64文字列としてエンコードされます。内容は次のようになります。
"<p><span>My Name</span></p><img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA..." width=\"167\" height=\"167\" />"
この例では、base64文字列が切り捨てられています。
私は添付ファイルとしてhtmlを送信するために次のコードを使用していますが、例の画像は電子メールプロバイダ(gmail/outlook)によってデコードされたままです。私はそれを正しくやっていないのか分かりません。
string htmlBody = "<p><span>My Name</span></p><img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA..." width=\"167\" height=\"167\" />";
AlternateView avHtml = AlternateView.CreateAlternateViewFromString
(htmlBody, null, MediaTypeNames.Text.Html);
var mailTo = Config.Debug ? new MailAddress(Config.DebugEmailAddress) : new MailAddress("[email protected]");
var mailFrom = new MailAddress("[email protected]");
var mailMessage = new MailMessage(mailFrom, mailTo) { Subject = "hola q tal", Body = "holaaa", IsBodyHtml = true };
mailMessage.To.Add("[email protected]");
mailMessage.AlternateViews.Add(avHtml);
var sender1 = new SmtpClient
{
Host = Config.SmtpHost,
Port = 25,
Credentials = new NetworkCredential(Config.SmtpHostUserName, Config.SmtpHostPassword)
};
sender1.Send(mailMessage);
私はどんなsugesstionsもありがとう。
私が到達しようとしているのは、メッセージの本文のコンテンツに埋め込まれた画像を表示できることだけです。私はそれを行うために、私は添付ファイルとして本文のコンテンツ(HTML)を送信する必要があり、私はAlternateViewメッセージに追加する必要がありますので、私はちょっと混乱しています。たぶんあなたのアプローチの例がありますか? –
@ D.B Chekcこの答え:http://stackoverflow.com/questions/18358534/send-inline-image-in-email – mybirthname
はい。私はその例で自分のコードベースを構築しました。しかし、彼らはサーバー上にあるローカルファイルイメージを使用していて、明らかにそれらをbase64文字列に変換します。しかし私の場合、私はすでにbase64文字列を持っています。だから私はそれを動作させることができませんでした。 –