2011-08-19 40 views
6

He creado un programa C Webform para enviar correos electrónicos recordatorios a clientes en mi página web.Incrustar imágenes en correos electrónicos

Funciona bien en Outlook. y en Gmail en FireFox.

Acabo de descubrir (no uso IE) que en IE 8 en gmail no muestra la imagen?

Simplemente tiene un texto X y alt.

No puedo entender por qué IE 8 y gmail no muestran las imágenes y he jugado un poco con ellas.

en C#:

LinkedResource emo2 = new LinkedResource(logoPath); 
emo2.ContentId = "logo"; 
emo2.TransferEncoding = System.Net.Mime.TransferEncoding.Base64; 
htmlView.LinkedResources.Add(emo2); 

y en mi archivo HTML:

<img id="header" alt="MyWebpage" src="cid:logo" /> 

envío de boletines por correo electrónico es muy frustrante con todos los clientes differnent. ¡pero nunca pensé que Gmail sería mi problema!

+0

¿Cómo es la estructura MIME resultante? – tripleee

Respuesta

0

Trate de añadir esto al final de LinkedResource:

logoPath, MediaTypeNames.Image.Jpeg); 

Asumiendo que su logotipo es un archivo JPG, por supuesto! Además, ¿es htmlView y AlternateView?

+0

sí htmlview es una vista alternativa ...es en realidad un PNG, pero intento mal que gracias! (el peor de los casos se convertirá a jpg) – michael

+0

Lo convertí a jpg y lo cambié pero sigue mostrándose como X en Gmail con IE :( – michael

+0

Oh, es una pena, esa es la única diferencia entre el código que publicaste anteriormente y el código lo usamos en producción –

3

Teníamos un requisito similar para incrustar imágenes en el correo electrónico HTML en lugar de vincularlas a las imágenes alojadas en nuestro sitio web. La principal diferencia es que el usuario no necesita hacer clic en "mostrar todas las imágenes" en su cliente de correo electrónico, es decir, el correo electrónico debe aparecer inmediatamente rendido al destinatario.

Creamos las imágenes incrustadas y funcionó muy bien en Outlook y algunos otros clientes de correo electrónico, pero descubrimos que a algunos clientes de correo electrónico no les gustan como lo ha notado con gmail. Después de un par de días investigando e intentando diferentes cosas, llegamos a la conclusión de que no hay una solución mágica para que su correo electrónico muestre correctamente que se trata de imágenes incrustadas en todos los principales clientes de correo electrónico.

Nos instalamos y apenas recibieron a los imágenes en nuestro sitio web (lo que significa que el usuario recibe el "show todas las imágenes" botón ...), y se utiliza algo como:

<img src="http://website/image.jpg"/> 

Si usted tiene la paciencia, podría incrustar imágenes para todas las direcciones de correo electrónico, excepto para ciertas direcciones (como @ gmail.com), pero mi preferencia sería la coherencia y, por lo tanto, solo vincular las imágenes.

0

Respuesta muy tardía, pero apuesto a que el jpg que está incrustando no es un jpg RBG, probablemente sea CMYK.

0

Descubrí el problema mirando un correo electrónico existente con imágenes incrustadas que funcionaba en IE. Aparentemente, IE es muy exigente con el contenido que debe mostrarse. Aunque estaba agregando contenido tipo

var imgContentType = new ContentType(MediaTypeNames.Image.Jpeg); 

No aparecía en IE. Luego miré un correo electrónico existente y la imagen contenía el tipo de contenido "image/png; name =" image1.png ". Una vez que agregué el nombre al tipo de contenido, las imágenes comenzaron a aparecer. Supongo que IE necesita la extensión de la imagen para saber qué hacer con la imagen src

Cuestiones relacionadas