using Application.Services.Email; namespace Infrastructure.Services.Email; using System.Net; using System.Net.Mail; using System.Threading.Tasks; using Microsoft.Extensions.Options; public class EmailService : IEmailService { private readonly SmtpSettings _smtpSettings; public EmailService(IOptions smtpSettings) { _smtpSettings = smtpSettings.Value; } public async Task SendEmailAsync(string to, string subject, string body) { Console.WriteLine(_smtpSettings.Host); Console.WriteLine(_smtpSettings.Port); using (var client = new SmtpClient(_smtpSettings.Host, _smtpSettings.Port)) { client.EnableSsl = _smtpSettings.EnableSSL; client.Credentials = new NetworkCredential(_smtpSettings.UserName, _smtpSettings.Password); var mailMessage = new MailMessage { From = new MailAddress(_smtpSettings.From), Subject = subject, Body = body, IsBodyHtml = true }; mailMessage.To.Add(to); await client.SendMailAsync(mailMessage); } } public string GenerateCredentialsEmailBody(string email, string password) { string template = @"

Welcome to HealthcareManager

You can now log in using the following credentials:

Email: {email}

Password: {password}

For security reasons, please change your password after logging in.

"; return template.Replace("{email}", email).Replace("{password}", password); } }