Click here to Skip to main content
13,000,469 members (60,020 online)
Click here to Skip to main content
Add your own
alternative version


20 bookmarked
Posted 6 Jun 2006

Simple Email Formatter Framework - Using C#, Smtp

, 6 Jun 2006
Rate this:
Please Sign up or sign in to vote.
This article explains a simple Email formatter framework in conjunction with an EmailPublisher class to format and send email messages.


This article explains a simple Email formatter framework. This would enable programmers to extend/implement custom email formatter classes. This in conjunction with an Email Publisher class can be very useful for web applications,smart client applications and windows services to format and send emails.  We have several articles and code snippetts for publishing emails but none for formatting emails. This sample, abstracts out email formatting part and later integrates it into an Email Publisher class.  


IEmailFormatter interface


IEmailFormatter interface defines the contract for the framework. All formatter classes have to implement this contract. <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:stroke joinstyle="miter"><v:path o:connecttype="rect" gradientshapeok="t">


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p>Concrete class MQExceptionFormatter


Class MQExceptionEmailFormatter, A concrete class which implements this interface. This class helps formatting email message for a MSMQ message. 


<o:p>  MQExceptionEmailFormatter.jpg

<o:p>Similarly different formatter classes can be implemented according to the need by implementing the interface.

<o:p>Implement FormatMessage() function to format an email

<o:p>following piece of code shows a sample implementation of the FormatMessage() function by the MQExceptionEmailFormatter class.

<o:p> Implement_FormatMessage_function.jpg

<o:p>  If the email format is standardized then we could implement an abstract Email Formatter class having a default implementation for the FormatMessage() function and have all the other  concrete formatter classes extend this abstract class.

<o:p> Class EmailPublisher using IEmailFormatter types

<o:p> Class EmailPublisher now uses IEmailFormatter type in it's implementation and hence can use any of the IEmailFormatter concrete classes to access email subject and Email body.

<o:p> PublishEmail.jpg

<o:p> SendMail...

The SendMail Function internally accesses formatting information from the formatter classes.


Sample Usage

<o:p> Usage1.jpg



This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Aravind Rajagopal K
Software Developer (Senior) UMASS Medical School
United States United States
A Certified .NET MCSD (Microsoft Certified Solution Developer)that specializes in Microsoft technologies architecting/designing/developing applications using .NET (C# or VB), ASP.NET, SQL Server and BizTalk.
I have contributed as a designer/developer for benchmarked products in the finance industry benchmarked for best transaction engine design and products that offer end to end solution to research based content. Currently working with UMASS Medical School at Worcester MA.

Hobbies include music,reading books and playing cricket.

You may also be interested in...

Comments and Discussions

Generalgood one. few suggestions:- Pin
Jaikanth8-Jun-06 15:56
memberJaikanth8-Jun-06 15:56 
GeneralRe: good one. few suggestions:- Pin
Aravind K Rajagopal27-Jun-06 4:23
memberAravind K Rajagopal27-Jun-06 4:23 
QuestionScreenshots ??? Pin
burning snow6-Jun-06 11:09
memberburning snow6-Jun-06 11:09 
AnswerRe: Screenshots ??? Pin
Aravind K Rajagopal27-Jun-06 4:19
memberAravind K Rajagopal27-Jun-06 4:19 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.170624.1 | Last Updated 6 Jun 2006
Article Copyright 2006 by Aravind Rajagopal K
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid