EmailUtility.cs 10.1 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;

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)
        {
            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"]);
            /*string ccAddress = ConfigurationManager.AppSettings["NotifyCopyAddress"];
            string[] emailArr = ccAddress.Split(',');
            if (mm.From.ToString().Equals("pfizerhelp@ebix.com"))
            {
                ccAddress = emailArr[0];
                if (!ccAddress.Equals(""))
                {
                    mm.Bcc.Add(ccAddress);
                }
            }
            else
            {
                if (!ccAddress.Equals(""))
                {
                    mm.Bcc.Add(ccAddress);
                }
            }*/


            smtp.Send(mm);
        }

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

                    }
                }

                if (sBccAddresses != null)
                {
                    foreach (var sItem in sBccAddresses)
                    {
                        sMail.Bcc.Add(sItem);
                    }
                }

                sMail.IsBodyHtml = bIsBodyHtml;

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

                sMail.Subject = sSubject;
                if (sAttachments != null)
                {
                    foreach (var sItem in sAttachments)
                    {
                        sMail.Attachments.Add(sItem);
                    }
                }

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

                // SmtpServer.Send(sMail);
                using (MailMessage mm = new MailMessage(sFromAddress, sMail.To.ToString()))
                //using (MailMessage mm = new MailMessage())
                {
                    mm.Subject = sSubject;
                    mm.IsBodyHtml = bIsBodyHtml;
                    // mm.To.Add(sMail.To.ToString());
                    //mm.From = new MailAddress(sFromAddress, "AdamOnDemand");
                    if (sAlternateView != null)
                    {
                        mm.AlternateViews.Add(sAlternateView);
                    }
                    else
                    {
                        mm.Body = sBodyText;
                    }
                    // mm.Body = sAlternateView;
                    // string bccAddress = (!string.IsNullOrEmpty(sBccAddresses) ? lstBccAddress : ConfigurationManager.AppSettings["AccountsEmailAddress"]);
                    /* if (sBccAddresses != null)
                     {
                         foreach (var sItem in sBccAddresses)
                         {
                             mm.Bcc.Add(sItem);
                         }
                     }*/
                    //else
                    //{
                    //    string bccAddress = ConfigurationManager.AppSettings["AccountsEmailAddress"];
                    //    mm.Bcc.Add(bccAddress);
                    //} 
                    mm.IsBodyHtml = true;
                    SendMail(mm);
                }

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }


        //public static bool SendEmail(dynamic UserDetails, bool isPassword)
        //{
        //    try
        //    {
        //        List<LinkedResource> lstLinkedResource = new List<LinkedResource>();
        //        EmailUtility sEmailUtility = new EmailUtility();
        //        List<string> lstToAddress = new List<string>();
        //        List<string> lstBccAddress = new List<string>();
        //        LinkedResource LinkImage;
        //        string AdminNames = "";
        //        string sEmailText = "";
        //        string ParseText = "";
        //        int TextPos = 0;
        //        int MinPos = 0;
        //        string ImgSrc = "";
        //        int Counter = 0;

        //        string _userId = string.Empty;
        //        string _password = string.Empty;
        //        string _userMail = string.Empty;

        //        foreach (KeyValuePair<string, object> kvp in UserDetails)
        //        {
        //            if(kvp.Key == "loginId")
        //                _userId = kvp.Value.ToString();

        //            if(kvp.Key == "password")
        //                _password = kvp.Value.ToString();

        //            if(kvp.Key == "emailId")
        //                _userMail = kvp.Value.ToString();
        //        }

        //        if (isPassword)
        //            sEmailText = "Your password is: <b>" + _password;
        //        else
        //            sEmailText = "Your LoginID is: <b>" + _userId;

        //        lstToAddress.Add(_userMail);

        //        sEmailUtility.sSubject = "Recovery mail [" + _userMail + "]";

        //        ////// for embedding images in email
        //        ////if (sEmailText.Contains("<img"))
        //        ////{
        //        ////    ParseText = sEmailText;
        //        ////    TextPos = ParseText.IndexOf("<img", TextPos);
        //        ////    while (TextPos != -1)
        //        ////    {
        //        ////        TextPos = ParseText.IndexOf("src", TextPos) + 5;
        //        ////        MinPos = ParseText.IndexOf('"', TextPos);
        //        ////        ImgSrc = ParseText.Substring(TextPos, MinPos - TextPos);
        //        ////        string ImagePath = HttpContext.Current.Server.MapPath(ImgSrc);
        //        ////        LinkImage = new LinkedResource(ImagePath);
        //        ////        Counter++;
        //        ////        LinkImage.ContentId = "Img" + Counter;
        //        ////        sEmailText = sEmailText.Replace("\"" + ImgSrc + "\"", "cid:" + LinkImage.ContentId);
        //        ////        lstLinkedResource.Add(LinkImage);
        //        ////        TextPos = ParseText.IndexOf("<img", TextPos);
        //        ////    }
        //        ////}

        //        /*foreach (var sItem in lstEmailParams)
        //        {
        //            sEmailText = sEmailText.Replace(sItem.Item1, sItem.Item2);
        //        }*/

        //        /*if (!string.IsNullOrEmpty(recipientEmailAddress))
        //        {
        //            string[] sStrArr = recipientEmailAddress.Split(',');
        //            for (int i = 0; i < sStrArr.Length - 1; i++)
        //            {
        //                string sEmail = sStrArr[i];
        //                lstToAddress.Add(sStrArr[i]);
        //            }
        //        }*/


        //        /*if (!string.IsNullOrEmpty(bccEmailAddress))
        //        {
        //            string[] sStrArr = bccEmailAddress.Split(',');
        //            for (int i = 0; i < sStrArr.Length - 1; i++)
        //            {
        //                string sEmail = sStrArr[i];
        //                lstBccAddress.Add(sEmail);
        //                //AdminNames += context.Users.Where(El => El.EmailAddress == sEmail).First().FirstName + ", ";
        //            }
        //            //  AdminNames = AdminNames.Substring(0, AdminNames.Length - 2);
        //            sEmailText = sEmailText.Replace("#ADMINNAMES#", AdminNames);
        //        }*/

        //        sEmailUtility.sAlternateView = AlternateView.CreateAlternateViewFromString(sEmailText, null, "text/html");
        //        foreach (var sItem in lstLinkedResource)
        //        {
        //            sEmailUtility.sAlternateView.LinkedResources.Add(sItem);
        //        }

        //        sEmailUtility.sHostName = "10.100.12.13";
        //        sEmailUtility.sFromAddress = "utkarsh.singh@ebix.com";
        //        sEmailUtility.bIsBodyHtml = true;
        //        sEmailUtility.bEnableSsl = false;
        //        //sEmailUtility.sSubject = "Recovery mail [User Information]"; 
        //        sEmailUtility.iPort = 25;
        //        sEmailUtility.sToAddresses = lstToAddress;//Convert.ToString(UserDetails[7]); ;
        //        sEmailUtility.sBccAddresses = lstBccAddress;

        //        sEmailUtility.SendSmtpEmail();
        //        return true;
        //    }
        //    catch (Exception ex)
        //    {
        //        return false;
        //    }
        //}
    }
}