2009-07-20 19 views

Respuesta

35

acaba de establecer la propiedad MailMessage.BodyFormat a MailFormat.Html, y luego volcar el contenido de su archivo html en la propiedad 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

Por lo tanto, solo para especificar, esta respuesta se corresponde con 'System.Web.Mail.MailMessage'. Cuando intentaba configurar 'BodyFormat', tenía problemas porque Reflector me decía que no estaba allí. Por lo que respecta a la razón, estaba usando 'System.Net.Mail.MailMessage' (en esa clase, hay un indicador' bool' llamado 'IsBodyHtml' que puede establecer en su lugar). Además, parece que si todo sigue igual, se sugiere el uso de 'System.Net.Mail': http://stackoverflow.com/q/64599/324527 – Mattygabe

+2

Esto ha cambiado ahora. Debería usar "myMail.IsBodyHtml = true;" – OrangeKing89

3

Aquí está a simple example. Y here's one that includes an embedded image (a diferencia de un enlace img a una fuente web, que muchos clientes de correo electrónico no mostrarán).

Editar: Por supuesto, puede leer el archivo html con File.ReadAllText, que utilizaría como en los enlaces.

8

caso de que usted está usando System.Net.Mail.MailMessage, puede utilizar:

mail.IsBodyHtml = true; 

System.Web.Mail.MailMessage es obsoleto pero si usarlo: mail.BodyFormat obras.

Cuestiones relacionadas