diff --git a/src/core/DigitalData.MessagingService.Application/Common/Interfaces/IEmailService.cs b/src/core/DigitalData.MessagingService.Application/Common/Interfaces/IEmailService.cs index 7a663ea..bb5dcf8 100644 --- a/src/core/DigitalData.MessagingService.Application/Common/Interfaces/IEmailService.cs +++ b/src/core/DigitalData.MessagingService.Application/Common/Interfaces/IEmailService.cs @@ -14,5 +14,5 @@ public interface IEmailService /// Sends an email using the configured SMTP account. /// SMTP credentials are configured in appsettings.json (EmailAccount section). /// - Task SendEmailAsync(EmailAccountDto from, IEnumerable recipients, string subject, string body, bool isHtml = true, CancellationToken cancellationToken = default); + Task SendEmailAsync(EmailContext context, CancellationToken cancellationToken = default); } diff --git a/src/infrastructure/DigitalData.MessagingService.Infrastructure/Queue/SendingEmailConsumer.cs b/src/infrastructure/DigitalData.MessagingService.Infrastructure/Queue/SendingEmailConsumer.cs index 596835d..4101c4f 100644 --- a/src/infrastructure/DigitalData.MessagingService.Infrastructure/Queue/SendingEmailConsumer.cs +++ b/src/infrastructure/DigitalData.MessagingService.Infrastructure/Queue/SendingEmailConsumer.cs @@ -47,12 +47,7 @@ public sealed class SendingEmailConsumer : IAsyncDisposable if (oMailEvent is not null) { // Send email via SMTP (SMTP config is injected in IEmailService via IOptions) - await EmailService.SendEmailAsync( - oMailEvent.Mail.Sender, - oMailEvent.Mail.Recipients, - oMailEvent.Mail.Subject, - oMailEvent.Mail.Body, - isHtml: oMailEvent.Mail.IsHtml); + await EmailService.SendEmailAsync(oMailEvent.Mail); // Acknowledge message after successful processing await channel.BasicAckAsync(args.DeliveryTag, false, args.CancellationToken); diff --git a/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/LimilabsEmailService.cs b/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/LimilabsEmailService.cs index f65f793..dae58e1 100644 --- a/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/LimilabsEmailService.cs +++ b/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/LimilabsEmailService.cs @@ -25,30 +25,26 @@ public class LimilabsEmailService( Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); } - public async Task SendEmailAsync(EmailAccountDto from, IEnumerable recipients, string subject, string body, bool isHtml = true, CancellationToken cancellationToken = default) + public async Task SendEmailAsync(EmailContext context, CancellationToken cancellationToken = default) { using var smtp = new Smtp(); try { - await ConnectAndAuthenticateSmtpAsync(smtp, from); + await ConnectAndAuthenticateSmtpAsync(smtp, context.Sender); var builder = new MailBuilder(); - builder.From.Add(new MailBox(from.Username)); + builder.From.Add(new MailBox(context.Sender.Username)); - foreach (var recipient in recipients) + foreach (var recipient in context.Recipients) builder.To.Add(new MailBox(recipient)); - builder.Subject = subject; + builder.Subject = context.Subject; - if (isHtml) - { - builder.Html = body; - } + if (context.IsHtml) + builder.Html = context.Body; else - { - builder.Text = body; - } + builder.Text = context.Body; var mail = builder.Create();