Envie um email com um arquivo HTML como corpo (C #)

Como posso definir o corpo do MailMessage com um arquivo HTML?

Basta definir a propriedade MailMessage.BodyFormat como MailFormat.Html e, em seguida, despejar o conteúdo do seu arquivo html na propriedade MailMessage.Body :

using (StreamReader reader = File.OpenText(htmlFilePath)) // Path to your { // HTML file MailMessage myMail = new MailMessage(); myMail.From = "from@microsoft.com"; myMail.To = "to@microsoft.com"; myMail.Subject = "HTML Message"; myMail.BodyFormat = MailFormat.Html; myMail.Body = reader.ReadToEnd(); // Load the content from your file... //... } 

Caso você esteja usando System.Net.Mail.MailMessage , você pode usar:

 mail.IsBodyHtml = true; 

System.Web.Mail.MailMessage está obsoleto, mas se estiver usando: mail.BodyFormat funciona.

Aqui está um exemplo simples . E aqui está uma que inclui uma imagem incorporada (em oposição a um link img para uma fonte da Web, que muitos clientes de email não exibem).

Edit: Você pode, claro, ler o arquivo html com File.ReadAllText , que você usaria como nos links.