private string GetTemplateByType(EmailTemplatesEnum emailTemplate) { var templateRelativePath = string.Empty; var placeHolders = new Dictionary <string, string>(); switch (emailTemplate) { case EmailTemplatesEnum.Register: templateRelativePath = _settings.AppPathsSettings.EmailTemplates.Register; break; case EmailTemplatesEnum.ResetPassword: templateRelativePath = _settings.AppPathsSettings.EmailTemplates.ResetPassword; break; case EmailTemplatesEnum.ContactUs: templateRelativePath = _settings.AppPathsSettings.EmailTemplates.ContactUs; break; } var templatePath = _hostingEnvironment.WebRootPath + Path.DirectorySeparatorChar.ToString() + templateRelativePath; var builder = new BodyBuilder(); using (StreamReader SourceReader = File.OpenText(templatePath)) { builder.HtmlBody = SourceReader.ReadToEnd(); } return(builder.HtmlBody); }
public async Task SendEmailAsync(string email, string subject, EmailTemplatesEnum emailTemplate, Dictionary <string, string> replacements) { try { replacements = SetCommonReplacements(replacements); var emailBody = GetTemplateByType(emailTemplate).ApplyReplacements(replacements); var smtpClient = new SmtpClient { Host = _settings.EmailSettings.MailServerAddress, // set your SMTP server name here Port = _settings.EmailSettings.MailServerPort, // Port EnableSsl = false, Credentials = new NetworkCredential(_settings.EmailSettings.UserId, _settings.EmailSettings.UserPassword), }; using (var mailMessage = new MailMessage(_settings.EmailSettings.FromAddress, email) { Subject = subject, Body = emailBody, IsBodyHtml = true }) { mailMessage.To.Add(_settings.EmailSettings.FromAddress); await smtpClient.SendMailAsync(mailMessage); } } catch (Exception ex) { _logger.LogError(ex, string.Empty); } }