using MailKit.Net.Smtp; using MimeKit; namespace Flawless.Server.Services; public class EmailService(SettingFacade setting, ILogger logger) { public async Task SendEmailAsync(string toEmail, string subject, string body) { if (!setting.UseSmtp) { logger.LogWarning("SMTP is deactivated, skip sending email."); return; } var message = new MimeMessage(); message.From.Add(new MailboxAddress(setting.ServerName, setting.SmtpUsername)); message.To.Add(new MailboxAddress("用户", toEmail)); message.Subject = subject; message.Body = new TextPart("html") { Text = body }; using var client = new SmtpClient(); await client.ConnectAsync( setting.SmtpHost, setting.SmtpPort, setting.SmtpUseSsl); await client.AuthenticateAsync( setting.SmtpUsername, setting.SmtpPassword); await client.SendAsync(message); await client.DisconnectAsync(true); logger.LogInformation($"Mail has sent to {toEmail}"); } }