public async Task SendMailAsync(IEnumerable <string> toAddress, TemplateEngine templateEngine = null, string ccAddress = null) { var enumerable = toAddress as string[] ?? toAddress.ToArray(); if (!enumerable.Any()) { throw new ArgumentNullException(nameof(toAddress)); } switch (CurrentEngine) { case null when templateEngine == null: throw new Exception("TemplateEngine must be specified."); case null when true: CurrentEngine = templateEngine; break; } // create mail message var messageToSend = new MimeMessage { Sender = new MailboxAddress(Settings.SenderName, Settings.SmtpUserName), Subject = CurrentEngine.Format(() => new StringBuilder(CurrentEngine.TextProvider.Subject)).Trim(), }; messageToSend.From.Add(new MailboxAddress(Settings.EmailDisplayName, Settings.SmtpUserName)); var bodyText = CurrentEngine.Format(() => new StringBuilder(CurrentEngine.TextProvider.Text)).Trim(); if (CurrentEngine.TextProvider is TemplateMailMessage templateMailMessage && templateMailMessage.IsHtml) { messageToSend.Body = new TextPart(TextFormat.Html) { Text = bodyText }; }
public EmailHelper ApplyTemplate(string mailType, TemplatePipeline pipeline, Action emailSentAction = null, Action emailFailedAction = null) { var mailConfig = XmlSection<MailConfiguration>.GetSection("mailConfiguration"); if (mailConfig.CommonConfiguration.OverrideToAddress) { ToAddressOverride = mailConfig.CommonConfiguration.ToAddress; } var messageToPersonalize = new TemplateMailMessage(mailType); if (messageToPersonalize.Loaded) { var engine = new TemplateEngine(messageToPersonalize, pipeline); CurrentEngine = engine; return this; } return null; }