private async Task <string> GetHtmlTpl(EmailTpl tpl) { var separator = Path.DirectorySeparatorChar; if (_tplPath == null) { _tplPath = separator + "wwwroot" + separator + "tpl"; } var content = string.Empty; if (string.IsNullOrWhiteSpace(_tplPath)) { return(content); } var folderPath = Directory.GetCurrentDirectory() + separator + _tplPath; var path = $"{folderPath}{separator}{tpl}.html"; try { using (var stream = File.OpenRead(path)) { using (var reader = new StreamReader(stream)) { content = await reader.ReadToEndAsync(); // 读取HTML模板 } } } catch (Exception ex) { throw new Exception(ex.Message); } return(content); }
public static async Task <string> GetHtmlTpl(EmailTpl tpl, string folderPath = @"wwwroot\tpl") { var separator = Path.DirectorySeparatorChar; if (folderPath == null) { folderPath = separator + "wwwroot" + separator + "tpl"; } var content = string.Empty; if (string.IsNullOrWhiteSpace(folderPath)) { return(content); } folderPath = RootConfiguration.Root + separator + folderPath; var path = $"{folderPath}{separator}{tpl}.html"; try { using (var stream = File.OpenRead(path)) { using (var reader = new StreamReader(stream)) { content = await reader.ReadToEndAsync(); // 读取HTML模板 } } } catch (Exception ex) { throw new Exception(ex.Message); } return(content); }
public async Task SendEmailAsync(string email, string username, string subject, string message, EmailTpl emailTpl) { var content = await GetHtmlTpl(emailTpl); if (String.IsNullOrWhiteSpace(content)) { return; } content = content.Replace("{host}", _fromName) .Replace("{name}", username) .Replace("{subject}", subject) .Replace("{content}", message); //设置基本信息 var mimeMessage = new MimeMessage(); mimeMessage.From.Add(new MailboxAddress(_fromName, _fromAddress)); mimeMessage.To.Add(new MailboxAddress(subject, email)); mimeMessage.Subject = subject; mimeMessage.Body = new TextPart("html") { Text = content }; //链接发送 using (var client = new SmtpClient()) { client.ServerCertificateValidationCallback = (s, c, h, e) => true; //采用qq邮箱服务器发送邮件 client.Connect("smtp.qq.com", 587, false); client.AuthenticationMechanisms.Remove("XOAUTH2"); //qq邮箱,密码(安全设置短信获取后的密码) client.Authenticate("*****@*****.**", "gsbddnoexqdmbegb"); client.Send(mimeMessage); client.Disconnect(true); } }