How to send emails in .NET part 6: HTML contents basics
August 29, 2014 Leave a comment
In previous posts regarding emails – see the link below – we looked at how to send plain text emails. However, professional company emails, such as user sign-up confirmations, have almost exclusively HTML body formats for styling and layout.
Let’s start with the basics and send out a HTML-based email with no styling. You can freely add HTML tags to the body of the email and set the IsBodyHtml property as true:
string from = "andras.nemes@company.com"; string to = "john.smith@company.com"; string subject = "Testing html body"; string htmlBody = @" <html lang=""en""> <head> <meta content=""text/html; charset=utf-8"" http-equiv=""Content-Type""> <title> Upcoming topics </title> </head> <body> <table> <thead> <tr> <th>Topic</th> <th>Est. # of posts</th> </tr> </thead> <tbody> <tr> <td>Using a Windows service in your project</td> <td>5</td> </tr> <tr> <td>More RabbitMQ in .NET</td> <td>5</td> </tr> </tbody> </table> </body> </html> "; MailMessage mailMessage = new MailMessage(from, to, subject, htmlBody); mailMessage.IsBodyHtml = true; string smtpServer = "mail.company.com"; SmtpClient client = new SmtpClient(smtpServer); client.Send(mailMessage);
The email client will then render the HTML as best as it can. You cannot however just send any HTML that you may be used to from web programming. Most email clients will ignore external files, like JS, images, CSS files etc. Also, inline JavaScript code won’t be executed.
The above message was rendered in my MS Outlook client as follows:
Read all posts related to emailing in .NET here.