protected virtual MailMessage BuildMessage(EmailDispatch <TKey> emailDispatch) { MailAddress mailSender = new MailAddress(_smtpSettings.SenderAddress, _smtpSettings.SenderDisplayName); MailAddress mailReceiver = new MailAddress(emailDispatch.ReceiverAddress, emailDispatch.ReceiverDisplayName); MailMessage mailMessage = new MailMessage(mailSender, mailReceiver); mailMessage.Subject = emailDispatch.MessageSubject; mailMessage.Body = emailDispatch.MessageBody; mailMessage.IsBodyHtml = emailDispatch.IsBodyHtml; if (emailDispatch.CCAddresses != null) { foreach (string cc in emailDispatch.CCAddresses) { mailMessage.CC.Add(cc.Trim()); } } if (emailDispatch.BCCAddresses != null) { foreach (string bcc in emailDispatch.BCCAddresses) { mailMessage.Bcc.Add(bcc.Trim()); } } if (emailDispatch.ReplyToAddresses != null) { foreach (ReplyToAddress replyTo in emailDispatch.ReplyToAddresses) { mailMessage.ReplyToList.Add(new MailAddress(replyTo.Address, replyTo.DisplayName)); } } return(mailMessage); }
//methods public virtual async Task <ProcessingResult> Send(SignalDispatch <TKey> item) { EmailDispatch <TKey> emailDispatch = (EmailDispatch <TKey>)item; MailMessage mailMessage = BuildMessage(emailDispatch); using (SmtpClient client = BuildSmtpClient()) { await client.SendMailAsync(mailMessage); } return(ProcessingResult.Success); }
protected virtual EmailDispatch <TKey> AssembleEmail(EventSettings <TKey> settings, SignalEvent <TKey> signalEvent, Subscriber <TKey> subscriber, string subject, string body) { var dispatch = new EmailDispatch <TKey>() { ReceiverDisplayName = subscriber.Address, MessageSubject = subject, MessageBody = body, IsBodyHtml = IsBodyHtml, CCAddresses = CCAddresses, BCCAddresses = BCCAddresses, ReplyToAddresses = ReplyToAddresses }; SetBaseProperties(dispatch, settings, signalEvent, subscriber); return(dispatch); }