// Preferred method to send email. Modify interface for new features... public SendEmailResponse <INotification> SendSmtpMail(IEmailMessage emailMessage) { SendEmailResponse <INotification> result = new SendEmailResponse <INotification>(); try { using (MailMessage mailMessage = emailMessage.ToMailMessage()) using (SmtpClient smtp = new SmtpClient()) { smtp.Send(mailMessage); } } catch (SmtpException smtpException) { result.Value = new Notification(smtpException); } catch (InvalidOperationException invalidOperationException) { result.Value = new Notification(invalidOperationException); } catch (ArgumentException argumentExceptionException) { result.Value = new Notification(argumentExceptionException); } return(result); }
/// <summary> /// Sends an email asynchronously. /// </summary> /// <param name="emailMessage">The email message.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns> /// A Task. /// </returns> public Task SendAsync(IEmailMessage emailMessage, CancellationToken cancellationToken = default(CancellationToken)) { var smtpClient = this.CreateSmtpClient(); return smtpClient.SendMailAsync(emailMessage.ToMailMessage()); }