Wednesday, May 20, 2009

Simple Email Utility Class

C# Email Utility
By Kara Hewett

Introduction

This useful C# .NET email utility configures easily identifying the receiver, sender, message content and mail server requiring minimal time for implementation. 

Creating the Workspace 

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

Code 

As with any Microsoft C# project, the application consists of the configuration properties and the application. By default the App.config file is XML with a primary element 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 



 
 
 
 
 
 
 
 
 


The Email Handler 

The Email Handler provides a simple method for sending the email using the parameters defined in the application configuration 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 RBS Greenwich Capital Markets. She earned a MBA in Information Systems, Finance and Accounting from New York University and a BS in Economics from the Wharton School of Business. Her past experience includes numerous consulting and development projects for SAC Capital, Lehman Brothers, J P Morgan Chase, American Stock Exchange, and Deutsche Bank.

No comments:

Post a Comment