PlanTempusApp/PlanTempus.Core/Email/PostmarkEmailService.cs

42 lines
1,016 B
C#
Raw Permalink Normal View History

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<EmailResult> 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<string, object>
{
{ "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);
}
}