public bool SendMail(EmailMessage email, out string statusMessage)
        {
            SmtpClient  smtpClient = new SmtpClient();
            MailMessage mail       = new MailMessage();

            statusMessage = string.Empty;
            try
            {
                GetSMTPSettings();
                if (isDefaultCredentials == false)
                {
                    NetworkCredential basicCredential = new NetworkCredential(this.smtpUserName, this.smtpPassword);
                    smtpClient.UseDefaultCredentials = false;
                    smtpClient.Credentials           = basicCredential;
                }

                smtpClient.Host = smtpServer;
                if (smtpPort > 0)
                {
                    smtpClient.Port = smtpPort;
                }

                //Hardcoding SSL settings for gmail SMTP
                if (smtpServer.Contains("smtp.gmail.com") || smtpServer.Contains("smtp.live.com"))
                {
                    smtpClient.EnableSsl = true;
                }

                mail.From = email.From;

                foreach (MailAddress toEmail in email.To)
                {
                    mail.To.Add(toEmail);
                }
                foreach (MailAddress CCEmail in email.CC)
                {
                    mail.CC.Add(CCEmail);
                }
                foreach (MailAddress BccEmail in email.Bcc)
                {
                    mail.Bcc.Add(BccEmail);
                }
                foreach (Attachment attachment in email.Attachments)
                {
                    mail.Attachments.Add(attachment);
                }

                mail.Subject    = email.Subject;
                mail.IsBodyHtml = true;
                mail.Body       = email.Body;
                if (email.AlternateViews.Count != 0)
                {
                    foreach (AlternateView altrView in email.AlternateViews)
                    {
                        mail.AlternateViews.Add(altrView);
                    }
                }
                else if (ConfigurationSettings.AppSettings["HostName"].ToString() == "MoneyTouch")
                {
                    ////Send message
                    ProcessMailForInlineAttachments(ref mail, mail.Body);
                }

                SaveMail(mail);

                smtpClient.Send(mail);

                return(true);
            }
            catch (BaseApplicationException Ex)
            {
                throw Ex;
            }
            catch (Exception Ex)
            {
                BaseApplicationException exBase       = new BaseApplicationException(Ex.Message, Ex);
                NameValueCollection      FunctionInfo = new NameValueCollection();

                FunctionInfo.Add("Method", "Emailer.cs:SendMail()");

                object[] objects = new object[0];

                FunctionInfo = exBase.AddObject(FunctionInfo, objects);
                exBase.AdditionalInformation = FunctionInfo;
                ExceptionManager.Publish(exBase);
                statusMessage = Ex.Message;
                return(false);
                //throw exBase;
            }
        }
        /// <summary>
        /// This function send mail
        /// </summary>
        /// <param name="email"></param>
        /// <returns></returns>
        public bool SendMail(EmailMessage email)
        {
            string statusMessage = string.Empty;

            return(SendMail(email, out statusMessage));
        }