Esempio n. 1
0
        private void UpdateEmail(OutboundEmailDetail email, bool sendSuccesful)
        {
            email.OutboundEmail.DateSent = DateTime.Now;
            email.OutboundEmail.Attempts++;
            email.OutboundEmail.EmailStatusId = sendSuccesful ? (int)EmailStatuses.Sent : (int)EmailStatuses.Failed;

            _dataRepositoryFactory.Create <IOutboundEmailRepository>().DetachAndUpdate(email.OutboundEmail.OutboundEmailId, email.OutboundEmail);
        }
Esempio n. 2
0
        private bool SendEmail(OutboundEmailDetail email, SmtpClient smtpClient)
        {
            using (var mail = CreateMailMessage(email))
            {
                smtpClient.Send(mail);
            };

            return(true);
        }
 public SmtpClient ConfigureSmtpClient(OutboundEmailDetail email)
 {
     return(new SmtpClient(_smtpServer)
     {
         Port = _serverPort,
         DeliveryMethod = SmtpDeliveryMethod.Network,
         UseDefaultCredentials = false,
         Credentials = new NetworkCredential(_sender, _password),
         EnableSsl = _enableSsl
     });
 }
Esempio n. 4
0
        private MailMessage CreateMailMessage(OutboundEmailDetail detail)
        {
            var email   = detail.OutboundEmail;
            var message = new MailMessage
            {
                Subject = email.Subject,
                // Body = email.Body,
                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);
        }
 public MailAddress ConfigureMailAddress(OutboundEmailDetail email)
 {
     return(new MailAddress(_sender, email.Sender));
 }