1
0

37 lines
1.1 KiB
C#

using MailKit.Net.Smtp;
using MimeKit;
namespace Flawless.Server.Services;
public class EmailService(SettingFacade setting, ILogger<EmailService> 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}");
}
}