AuthorBuddy/Services/EmailService.cs
2026-06-21 07:52:03 +02:00

55 lines
1.7 KiB
C#

using System.Net;
using System.Net.Mail;
using AuthorBuddy.Web.Models;
namespace AuthorBuddy.Web.Services;
public class EmailService : IEmailService
{
private readonly SmtpSettings _settings;
public EmailService(SmtpSettings settings)
{
_settings = settings;
}
public bool IsConfigured => _settings.Enabled
&& !string.IsNullOrEmpty(_settings.Host)
&& !string.IsNullOrEmpty(_settings.FromAddress);
public async Task<bool> SendPasswordAsync(string recipientEmail, string recipientName, string newPassword)
{
if (!IsConfigured) return false;
try
{
using var client = new SmtpClient(_settings.Host, _settings.Port)
{
EnableSsl = _settings.UseSsl,
Credentials = string.IsNullOrEmpty(_settings.Username)
? null
: new NetworkCredential(_settings.Username, _settings.Password)
};
using var msg = new MailMessage
{
From = new MailAddress(_settings.FromAddress, _settings.FromName),
Subject = "Ihr Author-Buddy-Passwort",
Body = $"Hallo {recipientName},\n\n"
+ $"Ihr neues Passwort für Author Buddy lautet:\n\n"
+ $" {newPassword}\n\n"
+ $"Bitte ändern Sie es nach dem Login.\n\n"
+ $"Mit freundlichen Grüßen\nIhr Author-Buddy-Team",
IsBodyHtml = false
};
msg.To.Add(recipientEmail);
await client.SendMailAsync(msg);
return true;
}
catch
{
return false;
}
}
}