C# Email Utility

Introduction

This useful C# .NET email utility configureseasily identifying the receiver, sender, message content and mailserver requiring minimal time for implementation.

Creating the Workspace

To start the Email Utility project, open aMicrosoft Visual Studio 2005, .NET Framework Version 2.0 developmentenvironment and create a Console Application. Add two C# classes, onecalled EmailHandler.cs and another called AppHandler.cs and anApplication Configuration File called the default, App.config.

Code

As with any Microsoft C# project, theapplication consists of the configuration properties and theapplication. By default the App.config file is XML with a primaryelement named .configuration.. To the default .configuration. element,set the properties required for email configuration:

. Recipient
. Sender
. Copy List
. Priority
. Body Encoding
. Subject
. Message Body
. SMTP Server
App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Email.Recipient" value="John.Smith@abc.com, Joe.Wilson@abc.com" />
<add key="Email.Sender" value="Bob.Jones@xyz.com " />
<add key="Email.Copy" value="mycclist@xyz.com" />
<add key="Email.Priority" value="MailPriority.Normal "/>
<add key="Email.Encoding" value="Encoding.ASCII"/>
<add key="Email.Subject" value=".NET Email Utility Sample"/>
<add key="Email.Message" value="This email provides an example of sending a .NET email using C#."/>
<add key="Email.Smtp" value="mailhost.xyz.com" />
</appSettings>
</configuration>

The Email Handler

The Email Handler provides a simple method forsending the email using the parameters defined in the applicationconfiguration file.

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;
using System.IO;

namespace EmailApp
{
public sealed class EmailHandler
{
private static char[] charSeparators = new char[] { };
private static String[] result;

public static void SendMailMessage(string smtpHost, MailAddress from, string to, string subject, string message)
{
try
{
MailMessage mailMsg = new MailMessage();
result = to.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries);
for (int count = 0; count < result.Length; count++)
{ mailMsg.To.Add(new MailAddress(result[count])); }
mailMsg.From = from;
mailMsg.Subject = subject;
mailMsg.Body = message;
mailMsg.Priority = AppHandler.EmailPriority;
mailMsg.BodyEncoding = AppHandler.EmailEncoding;
SmtpClient smtpClient = new SmtpClient(smtpHost);
smtpClient.Send(mailMsg);

}
catch (Exception exc)
{

}
}}
}

The AppHandler class makes the application parameters accessible as static variables in the EmailHandler class.

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;

namespace EmailApp
{
public static class AppHandler
{
private static MailAddress emailRecipient;
private static String emailSender;
private static String emailCopy;
private static String emailPriority;
private static String emailEncoding;
private static String emailSubject;
private static String emailMessage;
private static String emailSmtp;

public static MailAddress EmailRecipient
{
get { return emailRecipient; }
set { emailRecipient = value; }
}
public static String EmailSender
{
get { return emailSender; }
set { emailSender = value; }
}
public static String EmailCopy
{
get { return emailCopy; }
set { emailCopy = value; }
}
public static String EmailPriority
{
get { return emailPriority; }
set { emailPriority = value; }
}
public static String EmailEncoding
{
get { return emailEncoding; }
set { emailEncoding = value; }
}
public static String EmailSubject
{
get { return emailSubject; }
set { emailSubject = value; }
}
public static String EmailMessage
{
get { return emailMessage; }
set { emailMessage = value; }
}
}
}

The EmailHandler usage involves setting the configuration parameters and calling one line of code.

AppHandler.EmailRecipient = new MailAddress(System.Configuration.ConfigurationManager.AppSettings["Email.Recipient"]);
AppHandler.EmailSender = System.Configuration.ConfigurationManager.AppSettings["Email.Sender"];
AppHandler.EmailCopy = System.Configuration.ConfigurationManager.AppSettings["Email.Copy"];
AppHandler.EmailPriority = System.Configuration.ConfigurationManager.AppSettings["Email.Priority"];
AppHandler.EmailEncoding = System.Configuration.ConfigurationManager.AppSettings["Email.Encoding"];
AppHandler.EmailSubject = System.Configuration.ConfigurationManager.AppSettings["Email.Subject"];
AppHandler.EmailMessage = System.Configuration.ConfigurationManager.AppSettings["Email.Message"];
AppHandler.EmailSmtp = System.Configuration.ConfigurationManager.AppSettings["Email.Smtp"];

EmailHandler.SendEmail(AppHandler.EmailSmtp, AppHandler.EmailSender, AppHandler.EmailRecipient, AppHandler.EmailSubject, AppHandler.EmailMessage);

Kara Hewett is a software developer at RBSGreenwich Capital Markets. She earned a MBA in Information Systems,Finance and Accounting from New York University and a BS in Economicsfrom the Wharton School of Business. Her past experience includesnumerous consulting and development projects for SAC Capital, LehmanBrothers, J P Morgan Chase, American Stock Exchange, and Deutsche Bank.

Related Articles :

Twitter Digg Delicious Stumbleupon Technorati Facebook Email

No comments yet... Be the first to leave a reply!