Fix account and backup admin settings flows
This commit is contained in:
@@ -10,34 +10,31 @@ public interface IAppEmailSender
|
||||
|
||||
public sealed class SmtpEmailSender : IAppEmailSender
|
||||
{
|
||||
private readonly IConfiguration _cfg;
|
||||
private readonly IEmailSettingsResolver _settings;
|
||||
private readonly ILogger<SmtpEmailSender> _logger;
|
||||
|
||||
public SmtpEmailSender(IConfiguration cfg, ILogger<SmtpEmailSender> logger)
|
||||
public SmtpEmailSender(IEmailSettingsResolver settings, ILogger<SmtpEmailSender> logger)
|
||||
{
|
||||
_cfg = cfg;
|
||||
_settings = settings;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public async Task SendAsync(string toEmail, string subject, string bodyText, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var host = (_cfg["Email:SmtpHost"] ?? "").Trim();
|
||||
var user = (_cfg["Email:SmtpUser"] ?? "").Trim();
|
||||
var pass = (_cfg["Email:SmtpPassword"] ?? "").Trim();
|
||||
var from = (_cfg["Email:From"] ?? user).Trim();
|
||||
var fromName = (_cfg["Email:FromName"] ?? "Jobbjakt").Trim();
|
||||
var snapshot = await _settings.GetSnapshotAsync(cancellationToken);
|
||||
var host = snapshot.Host;
|
||||
var user = snapshot.User;
|
||||
var pass = snapshot.Password;
|
||||
var from = snapshot.From;
|
||||
var fromName = snapshot.FromName;
|
||||
var port = snapshot.Port;
|
||||
var enableSsl = snapshot.EnableSsl;
|
||||
var timeoutMs = snapshot.TimeoutMs;
|
||||
|
||||
var port = _cfg.GetValue("Email:SmtpPort", 587);
|
||||
if (port <= 0) port = 587;
|
||||
|
||||
var enableSsl = _cfg.GetValue("Email:SmtpEnableSsl", true);
|
||||
var timeoutMs = _cfg.GetValue("Email:SmtpTimeoutMs", 15000);
|
||||
if (timeoutMs <= 0) timeoutMs = 15000;
|
||||
|
||||
var enabled = _cfg.GetValue("Email:Enabled", false);
|
||||
var enabled = snapshot.Enabled;
|
||||
if (!enabled)
|
||||
{
|
||||
_logger.LogWarning("Email sending is disabled (Email:Enabled=false). Suppressed email to {To} subject={Subject}", toEmail, subject);
|
||||
_logger.LogWarning("Email sending is disabled. Suppressed email to {To} subject={Subject}", toEmail, subject);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -63,7 +60,6 @@ public sealed class SmtpEmailSender : IAppEmailSender
|
||||
smtp.Credentials = new NetworkCredential(user, pass);
|
||||
}
|
||||
|
||||
// SmtpClient has no CancellationToken support; run on thread pool.
|
||||
await Task.Run(() => smtp.Send(msg), cancellationToken);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user