Estoy usando MailKit/MimeKit 1.2.7 (última versión de NuGet).
Traté de incrustar una imagen en el cuerpo HTML de mi correo electrónico siguiendo el ejemplo de la documentación de la API (sección "Uso de un BodyBuilder").
Mi código actual se ve así:
var builder = new BodyBuilder(); builder.HtmlBody = @"<p>Hey!</p><img src=""Image.png"">"; var pathImage = Path.Combine(Misc.GetPathOfExecutingAssembly(), "Image.png"); builder.LinkedResources.Add(pathLogoFile); message.Body = builder.ToMessageBody();Puedo enviar este correo electrónico y, de hecho, la imagen se adjunta al correo electrónico. Pero no está incrustado.
¿Me estoy perdiendo de algo? ¿O es culpa de Apple Mail (este es el cliente de correo electrónico que estoy usando para recibir correos electrónicos)?
Estoy agradecido por cualquier idea (¡y muchas gracias a Jeffrey Stedfast por proporcionar un conjunto de herramientas tan bueno!).
Ingmar
Prueba algo un poco más como esto:
var builder = new BodyBuilder (); var pathImage = Path.Combine (Misc.GetPathOfExecutingAssembly (), "Image.png"); var image = builder.LinkedResources.Add (pathLogoFile); image.ContentId = MimeUtils.GenerateMessageId (); builder.HtmlBody = string.Format (@"<p>Hey!</p><img src=""cid:{0}"">", image.ContentId); message.Body = builder.ToMessageBody ();Si esto funciona para usted, actualizaré la documentación.
El problema podría ser que la implementación multipart/related de Apple no resuelve la referencia Image.png usando el encabezado Content-Location en la parte mime de la imagen (posiblemente porque es una URL relativa).
Sin embargo, el tipo de URL cid: debería funcionar, pero es un poco más complicado de construir, ya que necesita conocer los valores de Content-Id para cada archivo adjunto de imagen.
Solo como referencia, esto se puede encontrar en http://www.mimekit.net/docs/html/Creating-Messages.htm ahora. El enlace en la respuesta original está roto.