37 lines
1.1 KiB
C#
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}");
|
|
}
|
|
} |