EmailUtility.cs 4.93 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using System.Collections;
using System.Xml;
using System.Text;
using System.IO;
using System.Net.Mail;
using log4net;

namespace AIAHTML5.API.Utility
{

    public class EmailUtility
    {
        public string sFromAddress { get; set; }
        public List<string> sToAddresses { get; set; }
        public List<string> sBccAddresses { get; set; }
        public string sHostName { get; set; }
        public string sSubject { get; set; }
        public int iPort { get; set; }
        public bool bEnableSsl { get; set; }
        public string sUserName { get; set; }
        public string sPassword { get; set; }
        public bool bIsBodyHtml { get; set; }
        public List<Attachment> sAttachments { get; set; }
        public string sBodyText { get; set; }
        public AlternateView sAlternateView { get; set; }

        public void SendMail(MailMessage mm)
        {
            ILog logger = log4net.LogManager.GetLogger((System.Reflection.MethodBase.GetCurrentMethod().DeclaringType));
            //logger.Debug("inside SendMail");

            try
            {
                SmtpClient smtp = new SmtpClient();
                smtp.Host = ConfigurationManager.AppSettings["SMTPAddress"];
                smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSSL"]);
                System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential(mm.From.ToString(), ConfigurationManager.AppSettings["SenderPassword"]);
                smtp.Credentials = NetworkCred;
                smtp.Port = Convert.ToInt32(ConfigurationManager.AppSettings["SMTPPort"]);
               // smtp.EnableSsl = false;
                smtp.Send(mm);
            }
            catch (Exception e)
            {
               logger.Fatal("Exception inside SendMail. Ex= " + e.Message + "....STACKTRACE = " + e.StackTrace);
            
                throw;
            }
        }

        public void SendSmtpEmail()
        {
            ILog logger = log4net.LogManager.GetLogger((System.Reflection.MethodBase.GetCurrentMethod().DeclaringType));
            logger.Debug("inside SendSmtpEmail");
            
            try
            {
                MailMessage sMail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient(sHostName);
                string recipientEmailAddress = string.Empty;


                if (sToAddresses != null)
                {
                    foreach (var sItem in sToAddresses)
                    {
                        sMail.To.Add(sItem);
                        logger.Debug("sToAddresses= " + sItem);
                    }
                }

                if (sBccAddresses != null)
                {
                    foreach (var sItem in sBccAddresses)
                    {
                        sMail.Bcc.Add(sItem);
                        logger.Debug("sBccAddresses= " + sItem);

                    }
                }

                sMail.IsBodyHtml = bIsBodyHtml;

                if (sAlternateView != null)
                {
                    sMail.AlternateViews.Add(sAlternateView);
                    logger.Debug("sAlternateView= " + sAlternateView);

                }
                else
                {
                    sMail.Body = sBodyText;
                    logger.Debug("sMail.Body= " + sBodyText);

                }

                sMail.Subject = sSubject;
                logger.Debug("sMail.Subject= " + sSubject);

                if (sAttachments != null)
                {
                    foreach (var sItem in sAttachments)
                    {
                        sMail.Attachments.Add(sItem);
                        logger.Debug("sAttachments= " + sAttachments);


                    }
                }
                logger.Debug("sUserName= " + sUserName + ", sPassword= " + sPassword);

                SmtpServer.Port = iPort;
                SmtpServer.EnableSsl = bEnableSsl;
                SmtpServer.Credentials = new System.Net.NetworkCredential(sUserName, sPassword);
                

                using (MailMessage mm = new MailMessage(sFromAddress, sMail.To.ToString()))
                {
                    mm.Subject = sSubject;
                    mm.IsBodyHtml = bIsBodyHtml;

                    if (sAlternateView != null)
                    {
                        mm.AlternateViews.Add(sAlternateView);
                    }
                    else
                    {
                        mm.Body = sBodyText;
                    }

                    mm.IsBodyHtml = true;
                    SendMail(mm);
                    logger.Debug("after sending email");
                }

            }
            catch (Exception ex)
            {
                logger.Fatal("exception in SendSmtpEmail.msg= " + ex.Message + ", stacktarce= " + ex.StackTrace);
                throw ex;
            }
        }
    }
}