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 }); }
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); }
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); } }
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); }
public MailAddress ConfigureMailAddress(OutboundSmtpProxy email) { return(new MailAddress(email.UserName, email.Sender)); }