public override void Dispatch(MessageDelivery messageDelivery) { try { SmtpClient client = new SmtpClient(); MailMessage mailMessage = new MailMessage(); mailMessage.Subject = DetermineSubject(messageDelivery); mailMessage.From = DetermineFromAddress(messageDelivery); foreach (MailAddress address in DetermineToEmailAddresses(messageDelivery)) { mailMessage.To.Add(address); } foreach (MailAddress address in DetermineCCEmailAddresses(messageDelivery)) { mailMessage.CC.Add(address); } foreach (MailAddress address in DetermineBccEmailAddresses(messageDelivery)) { mailMessage.Bcc.Add(address); } mailMessage.BodyEncoding = BodyEncoding; Message content = Converter.ToMessage(messageDelivery); using (StringWriter writer = new StringWriter(CultureInfo.InvariantCulture)) { using (XmlTextWriter xmlWriter = new XmlTextWriter(writer)) { content.WriteMessage(xmlWriter); } mailMessage.Body = writer.ToString(); } client.Send(mailMessage); } catch (System.Net.Mail.SmtpException ex) { throw new DeliveryException("Error sending mail", ex); } }
public override void Dispatch(MessageDelivery messageDelivery) { IOutputChannel channel = CreateChannelFactory().CreateChannel(); bool closed = false; try { channel.Open(); channel.Send(_converter.ToMessage(messageDelivery)); } finally { channel.Close(); closed = true; } if (!closed) { channel.Abort(); } }