Geeks With Blogs
Bob Palmer's Developer Blog .NET, SQL, and Silverlight Development

As a part of our main customer-facing site, we send out a ton of e-mails - daily status reports, invoices, etc. and we needed a simple mechanism to allow for easy editing of our HTML emails, while allowing them to have dynamic parameters (i.e. fields from a datatable, etc.)


We start by creating a separate HTML file with all of our formatting, and parameter placeholders for our dynamic data (i.e. "Hello, {0}").

The code snippet itself is pasted below:

//Set up our SMTP client
SmtpClient scli = new SmtpClient("smtp.mymailserver.com");
scli.Credentials = new System.Net.NetworkCredential("johndoe@mymailserver.com", "mypass");
scli.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;

//Address setup
MailAddress fromAddress = new MailAddress("johndoe@mymailserver.com");
MailAddress toAddress = new MailAddress("snuffysmith@mycompany.com");
MailMessage myMessage = new MailMessage();
myMessage.To.Add(toAddress);
myMessage.From = fromAddress;

//Read our HTML file into a string variable.  The file location
//could be a parameter or pulled from a configuration file/database

StreamReader r = new StreamReader(@"\\MyServer\Templates\DailyReport.htm");
string strBody = r.ReadToEnd();

//Using String.Format, we replace all of our parameters.  parm
//values could be from a database, etc.  In the sample below, we have one 
//parameter (the user's first name).  The corresponding HTML snippet
//would be 
'Hello, {0}'                       
myMessage.Body = String.Format(strBody,"Bob");
myMessage.IsBodyHtml = true;
myMessage.Subject = "Test HTML EMail";

//Send our Email
scli.Send(myMessage);

Posted on Thursday, August 13, 2009 3:10 PM | Back to top


Comments on this post: HTML Emails with Dynamic Content made easy!

No comments posted yet.
Your comment:
 (will show your gravatar)


Copyright © BobPalmer | Powered by: GeeksWithBlogs.net