示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }