Esempio n. 1
0
        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 + "]");
                }
            }
        }
Esempio n. 2
0
        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);
        }