namespace ROLAC.API.Services.Notifications; /// One outbound email envelope handed to the SMTP transport. public sealed record OutboundEmail( string ToAddress, string Subject, string HtmlBody, IReadOnlyList Attachments); /// Thin seam over the actual MailKit send so EmailService stays unit-testable. public interface ISmtpDispatcher { Task SendAsync(OutboundEmail email, CancellationToken ct = default); }