using PostmarkDotNet; namespace PlanTempus.Core.Email; public class PostmarkEmailService : IEmailService { private readonly PostmarkConfiguration _config; private readonly PostmarkClient _client; public PostmarkEmailService(PostmarkConfiguration config) { _config = config; _client = new PostmarkClient(config.ServerToken); } public async Task SendVerificationEmailAsync(string toEmail, string userName, string verifyUrl) { var recipient = _config.TestToEmail ?? toEmail; var message = new TemplatedPostmarkMessage { From = _config.FromEmail, To = recipient, TemplateAlias = "code-your-own-1", TemplateModel = new Dictionary { { "USER_NAME", userName }, { "VERIFY_URL", verifyUrl } } }; var response = await _client.SendMessageAsync(message); if (response.Status == PostmarkStatus.Success) { return new EmailResult(true, response.MessageID.ToString(), null); } return new EmailResult(false, null, response.Message); } }