2009-07-20 6 views

Répondre

35

Il suffit de définir la propriété MailMessage.BodyFormat à MailFormat.Html, puis vider le contenu de votre fichier HTML à la propriété MailMessage.Body:

using (StreamReader reader = File.OpenText(htmlFilePath)) // Path to your 
{               // HTML file 
    MailMessage myMail = new MailMessage(); 
    myMail.From = "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

Donc, juste pour spécifier, cette réponse correspond à 'System.Web.Mail.MailMessage'. Lorsque j'essayais de régler le 'BodyFormat', j'avais des problèmes parce que Reflector me disait qu'il n'était pas là. Raison d'être, j'utilisais System.Net.Mail.MailMessage (dans cette classe, il y a un drapeau 'bool' appelé' IsBodyHtml' que vous pouvez définir à la place). Aussi, semble que si toutes choses étant égales, 'System.Net.Mail' est suggéré pour l'utilisation: http://stackoverflow.com/q/64599/324527 – Mattygabe

+2

Cela a maintenant changé. Vous devriez utiliser "myMail.IsBodyHtml = true;" – OrangeKing89

3

Voici a simple example. Et here's one that includes an embedded image (par opposition à un lien img vers une source Web, que de nombreux clients de messagerie ne seront pas affichés). Editer: Vous pouvez bien sûr lire le fichier html avec File.ReadAllText, que vous utiliseriez comme dans les liens.

8

I Si vous utilisez System.Net.Mail.MailMessage, vous pouvez utiliser:

mail.IsBodyHtml = true; 

System.Web.Mail.MailMessage est obsolète, mais si vous l'utilisez: mail.BodyFormat œuvres.

Questions connexes