Monday, August 31, 2015

C# Email Utility

http://www.csharphelp.com/2007/09/c-email-utility/

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);

No comments:

Post a Comment