41 lines
1,016 B
C#
41 lines
1,016 B
C#
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);
|
|
}
|
|
}
|