2011-08-19 3 views
6

Ho creato un programma Webform C# per l'invio di e-mail di promemoria ai clienti sulla mia pagina web.Incorporamento di immagini alle email

Funziona bene in Outlook. e in Gmail su FireFox.

Ho appena scoperto (non uso IE) che in IE 8 in gmail non visualizza l'immagine?

Ha solo un X e un testo alternativo.

Non riesco a capire perché IE 8 e Gmail non dispongano delle immagini e ho giocato un po 'con esso.

in C#:

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

e nel mio file HTML:

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

Invio di newsletter via e-mail è così frustrante con tutti i clienti differnent. ma non avrei mai pensato che Gmail sarebbe stato il mio problema!

+0

Che cosa la struttura MIME risultante assomiglia? – tripleee

risposta

0

Prova ad aggiungere questo al fine LinkedResource:

logoPath, MediaTypeNames.Image.Jpeg); 

Assumendo che il logo è un JPG, naturalmente! Inoltre, htmlView e AlternateView?

+0

sì HTMLView è un AlternateView ...è in realtà un png ma mal provato che grazie! (il caso peggiore si convertirà in jpg) – michael

+0

L'ho convertito in jpg e dded che però sta ancora mostrando una X in gmail con IE :( – michael

+0

Oh, è un peccato, questa è l'unica differenza tra il codice che hai postato in precedenza e qualche codice usiamo in produzione. –

3

Abbiamo avuto un requisito simile per incorporare le immagini nell'e-mail HTML anziché il collegamento alle immagini ospitate sul nostro sito web. La differenza principale è che l'utente non ha bisogno di fare clic su "mostra tutte le immagini" nel proprio client di posta elettronica, cioè l'e-mail dovrebbe apparire immediatamente visualizzata al destinatario.

Abbiamo creato le immagini incorporate e ha funzionato perfettamente in Outlook e in alcuni altri client di posta elettronica, ma abbiamo scoperto che alcuni client di posta elettronica non li apprezzano come hai notato con gmail. Dopo un paio di giorni di ricerche e tentativi diversi, abbiamo concluso che non esiste una pallottola d'argento per far sì che la tua email visualizzi correttamente le sue immagini incorporate in tutti i principali client di posta elettronica.

abbiamo optato e appena ospitato le immagini sul nostro sito web (il che significa che l'utente ottiene la "mostra tutte le immagini" pulsante ...), e utilizzato qualcosa come:

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

Se avete la pazienza, potresti incorporare le immagini per tutti gli indirizzi email tranne per determinati indirizzi (come @ gmail.com), ma la mia preferenza sarebbe la coerenza e quindi il collegamento alle immagini.

0

risposta molto tardi, ma scommetto che il jpg si intende inserire non è un jpg RBG, la sua, probabilmente CMYK.

0

Ho individuato il problema osservando un messaggio di posta elettronica esistente con immagini incorporate che stava lavorando su IE. Apparentemente IE è molto esigente riguardo al contenuto che deve essere mostrato. Anche se stavo aggiungendo il tipo di contenuto

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

Non è stato rivelando in IE. Poi ho guardato una email esistente e l'immagine conteneva il tipo di contenuto "image/png; name =" image1.png ". Una volta aggiunto il nome al tipo di contenuto, le immagini hanno iniziato a comparire. l'estensione immagine di sapere cosa fare con l'immagine src