Immagini su html usando MailMessage

mercoledì 03 febbraio 2010 - 15.00

Klaus-zanini Profilo | Senior Member

Ciao a tutti,
usando using System.Net.Mail.MailMessage posso inserire nella proprietà Body un testo Html (mettendo anche IsBodyHtml = true).
Quando gli passo l'Html della mail mi viene formattato tutto correttamente, ma mi mancano le immagini.
Come devo comportarmi? Le devo usare come Attachments? E se è così che riferimento devo dare sull'HTML?

tonyexpo Profilo | Senior Member

Ciao

per aggiungere una immagine (MIME) in una mail HTML basta fare così:

//il messaggio MailMessage m = new MailMessage(); m.From=new MailAddress("pippo@pippo.com","pippo"); m.To.Add(new MailAddress("pluto@pluto.com","pluto")); m.Subject="subject"; //l'HTML della mail string body = "<html><body><p>pippo</p><img src=\"cid:Pic1\" /></body></html>"; //rappresentazione HTML con l'immagine AlternateView v1 = AlternateView.CreateAlternateViewFromString(body,null,MediaTypeNames.Text.Html); //creo la risorsa MIME da allegare alla mail (l'immagine) LinkedResource pic1 = new LinkedResource("c:\pic1.jpg",MediaTypeNames.Image.Jpeg); pic1.ContextId= "Pic1"; //il nome dell'id datogli nell'HTML del messaggio //aggiungo la risorsa alla rappresentazione HTML v1.LinkedResources.Add(pic1); //è possibile creare una seconda rappresentazione solo testo... string body2 = "OPS......"; var v2 = AlternateView.CreateAlternateViewFromString(body2,null,MediaTypeNames.Text.Plain); //aggiungo le viste al messaggio m.AlternateViews.Add(v1); m.AlternateViews.Add(v2); //invio la mail ;) SmtpClient c = new SmtpClient("mail.mail.com"); c.Send(m);


ciao

Antonio Esposito
MCTS, MCP

http://blogs.dotnethell.it/espositos
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5