Las imágenes y los estilos no aparecen en el correo electrónico HTML

Mi imagen y mis estilos no aparecen en el correo electrónico (en Outlook 2016). Así es como lo estoy haciendo:

do#:

var body = File.ReadAllText("c:/emailtemplate.html"); MailMessage msg = new MailMessage("noreply@mycompany.com", "you@outlook.com", "test", body); msg.IsBodyHtml = true; var client = new SmtpClient(SmtpHost); client.Send(msg); 

emailtemplate.html

 

Thanks for signing up!

https://stackoverflow.com/questions/37398374/images-and-styles-are-not-appearing-in-html-email/logo.png está en la misma ubicación que emailtemplate.html

¿Alguna idea de cómo puedo incluir la imagen y aplicar los estilos a mi mensaje de correo electrónico?

Use URL completa para la imagen y no su URL relativa.

Algo como: http://www.example.com/logo.gif

Su img src debe ser al menos absoluto para tener la posibilidad de ser visible.
Para garantizar img visible, LinkedResource cadena base64 y cree LinkedResource .
También cree AlternateView y conéctelo a la instancia de MailMessage . Todas estas características están en el espacio de nombres System.Net.Mail . Aquí hay un ejemplo en VB.NET para ayudarte.

 

Thanks for signing up!

Dim lnkRcs As New List(Of Net.Mail.LinkedResource) Dim match As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(msgBody, "src=""(?data:(?.+?);base64,(?.+?))""") Dim a As Integer = 0 While match.Success Dim stm = Convert.FromBase64String(match.Groups("data").Value) Dim rc As New Net.Mail.LinkedResource(New System.IO.MemoryStream(stm), match.Groups("mime").Value) rc.ContentId = "rc" & a rc.TransferEncoding = Net.Mime.TransferEncoding.Base64 msgBody = msgBody.Replace(match.Groups("src").Value, "cid:" & rc.ContentId) lnkRcs.Add(rc) a += 1 match = match.NextMatch() End While Dim altHtml As Net.Mail.AlternateView = Net.Mail.AlternateView.CreateAlternateViewFromString(msgBody, Nothing, "text/html") For Each rc As Net.Mail.LinkedResource In lnkRcs altHtml.LinkedResources.Add(rc) Next msg.AlternateViews.Add(altHtml)