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