コード例 #1
0
 public SmtpClient ConfigureSmtpClient(OutboundSmtpProxy email)
 {
     return(new SmtpClient(email.OutboundHost)
     {
         Port = email.OutboundPort,
         DeliveryMethod = SmtpDeliveryMethod.Network,
         UseDefaultCredentials = false,
         Credentials = new NetworkCredential(email.UserName, email.Password),
         EnableSsl = email.UseSsl
     });
 }
コード例 #2
0
        private MailMessage CreateMailMessage(OutboundSmtpProxy detail)
        {
            var email = detail.OutboundEmail;

            var message = new MailMessage
            {
                Subject    = email.Subject,
                IsBodyHtml = email.IsHtml
            };

            foreach (var recipient in email.OutboundRecipients)
            {
                message.To.Add(recipient.RecipientEmail);
            }

            foreach (var dbAttachment in email.OutboundAttachments)
            {
                var attachment = new Attachment(dbAttachment.FilePath);
                message.Attachments.Add(attachment);
            }

            var view = AlternateView.CreateAlternateViewFromString(email.Body, null, "text/html");

            if (email.OutboundImages != null && email.OutboundImages.Count > 0)
            {
                foreach (var image in email.OutboundImages)
                {
                    var inlineLogo = new LinkedResource(image.FilePath)
                    {
                        ContentId = Path.GetFileNameWithoutExtension(image.FilePath)
                    };

                    view.LinkedResources.Add(inlineLogo);
                }
            }

            message.AlternateViews.Add(view);
            var from = _emailConfigurator.ConfigureMailAddress(detail);

            message.From = from;
            return(message);
        }
コード例 #3
0
        private void UpdateEmail(OutboundSmtpProxy email, bool sendSuccessful)
        {
            _logger.Debug("Updating " + email.ToLongString());

            try
            {
                //_repository.Reattach(email.OutboundEmail);

                email.OutboundEmail.DateSent = DateTime.Now;
                email.OutboundEmail.Attempts++;
                email.OutboundEmail.EmailStatus = sendSuccessful ? EmailStatus.Sent : EmailStatus.Failed;

                _logger.Info("Update Complete for " + email.ToLongString());
            }
            catch (DbEntityValidationException dbex)
            {
                _logger.Error("Validation Exception occurred while updating  " + email.ToLongString() + " : " + dbex.ToLogString());
            }
            catch (Exception ex)
            {
                _logger.Error("Exception occurred while updating  " + email.ToLongString() + " : " + ex.Message);
            }
        }
コード例 #4
0
        private bool SendEmail(OutboundSmtpProxy email, SmtpClient smtpClient)
        {
            _logger.Info("Sending " + email.ToLongString());

            try
            {
                using (var mail = CreateMailMessage(email))
                {
                    smtpClient.Send(mail);
                }

                _logger.Info("Sending Complete for " + email.ToLongString());

                return(true);
            }
            catch (Exception ex)
            {
                _logger.Error("Exception occurred sending " + email.ToLongString() + " : " + ex.Message);
            }

            _logger.Info("Sending Failed for " + email.ToLongString());

            return(false);
        }
コード例 #5
0
 public MailAddress ConfigureMailAddress(OutboundSmtpProxy email)
 {
     return(new MailAddress(email.UserName, email.Sender));
 }