private void FillRecipients(MailAddressCollection recips, string address, string name, string defaultAddress, string defaultName, string emailOverrideAddress) { if (address.IsBlank()) { address = defaultAddress; name = defaultName; } if (address.IsBlank()) { return; } address += ""; address = address.Replace(';', ','); address = address.Replace('|', ','); //JC ADDED 20140722 if (address.Contains(",")) { // multiple email addresses string[] toAddresses = address.Split(','); foreach (string email in toAddresses) { var mailAddress = new MailAddress(CheckEmailAddressForOverride(email, emailOverrideAddress)); if (!recips.Contains(mailAddress)) { recips.Add(mailAddress); if (Util.GetSettingBool("WriteEmailSendToDLogFile", false)) { Logging.dlog("1: add email recip [" + email + "]"); } } } } else if (name.IsBlank()) { recips.Add(new MailAddress(CheckEmailAddressForOverride(address, emailOverrideAddress))); if (Util.GetSettingBool("WriteEmailSendToDLogFile", false)) { Logging.dlog("2: add email recip [" + address + "]"); } } else { recips.Add(new MailAddress(CheckEmailAddressForOverride(address, emailOverrideAddress), name, System.Text.Encoding.UTF8)); if (Util.GetSettingBool("WriteEmailSendToDLogFile", false)) { Logging.dlog("3: add email recip [" + address + "]"); } } }
private static bool SendEmail(string subject, string body, MailAddressCollection to, MailAddressCollection cc, MailAddressCollection bcc, string messageDescription, List <Attachment> attachmentList = null) { MailMessage mailMessage = new MailMessage(); mailMessage.Body = body; mailMessage.IsBodyHtml = true; mailMessage.Subject = subject; mailMessage.From = new MailAddress(ConfigurationController.Instance.ValueOf <string>("EmailSender.Username"), ConfigurationController.Instance.ValueOf <string>("EmailSender.DisplayName"));; mailMessage.ReplyToList.Add(mailMessage.From); foreach (MailAddress email in to) { if (cc != null && cc.Contains(email)) { cc.Remove(email); } if (bcc != null && bcc.Contains(email)) { bcc.Remove(email); } } mailMessage.To.Add(to.ToString()); if (attachmentList != null) { foreach (var attachment in attachmentList) { mailMessage.Attachments.Add(attachment); } } foreach (MailAddress email in cc) { if (bcc != null && bcc.Contains(email)) { bcc.Remove(email); } } SmtpClient smtpClient = new SmtpClient(ConfigurationController.Instance.ValueOf <string>("EmailSender.Smtp.Address"), ConfigurationController.Instance.ValueOf <int>("EmailSender.Smtp.Port")); smtpClient.EnableSsl = ConfigurationController.Instance.ValueOf <bool>("EmailSender.Smtp.EnableSSL"); smtpClient.Credentials = new NetworkCredential(ConfigurationController.Instance.ValueOf <string>("EmailSender.Username"), ConfigurationController.Instance.ValueOf <string>("EmailSender.Password")); smtpClient.Timeout = ConfigurationController.Instance.ValueOf <int>("EmailSender.TimeoutMS"); for (int i = 1; i <= ConfigurationController.Instance.ValueOf <int>("EmailSender.RetryCount"); i++) { try { smtpClient.Send(mailMessage); return(true); } catch (Exception ex) { LogHelper.Log(Logger.Application, LogLevel.Error, "Exception while sending email (attempt " + i.ToString() + ") to " + to.ToString() + ". Exception details : \n" + ex.Message); //Retry } } return(false); }