2009-07-20 22 views

risposta

35

Basta impostare la proprietà MailMessage.BodyFormat a MailFormat.Html, e poi eseguire il dump dei contenuti del file HTML alla proprietà MailMessage.Body:

using (StreamReader reader = File.OpenText(htmlFilePath)) // Path to your 
{               // HTML file 
    MailMessage myMail = new MailMessage(); 
    myMail.From = "[email protected]"; 
    myMail.To = "[email protected]"; 
    myMail.Subject = "HTML Message"; 
    myMail.BodyFormat = MailFormat.Html; 

    myMail.Body = reader.ReadToEnd(); // Load the content from your file... 
    //... 
} 
+9

Quindi, solo per specificare, questa risposta corrisponde a 'System.Web.Mail.MailMessage'. Durante il tentativo di impostare 'BodyFormat', ho riscontrato dei problemi perché Reflector mi stava dicendo che non c'era. Essendo, stavo usando 'System.Net.Mail.MailMessage' (in quella classe, c'è un flag' bool' chiamato 'IsBodyHtml' che puoi impostare invece). Inoltre, sembra che, a parità di tutte le condizioni, 'System.Net.Mail' è suggerito per l'uso: http://stackoverflow.com/q/64599/324527 – Mattygabe

+2

Questo è cambiato ora. Dovresti usare "myMail.IsBodyHtml = true;" – OrangeKing89

3

Ecco il numero a simple example. E here's one that includes an embedded image (a differenza di un collegamento img a una fonte Web, che molti client di posta elettronica non verranno visualizzati).

Modifica: è ovviamente possibile leggere il file html con File.ReadAllText, che si utilizzerà come nei collegamenti.

8

caso mi si sta utilizzando System.Net.Mail.MailMessage, è possibile utilizzare:

mail.IsBodyHtml = true; 

System.Web.Mail.MailMessage è obsoleto, ma se si utilizza: mail.BodyFormat lavori.

Problemi correlati