目录
一、EmailSender : IEmailSender
namespace WebPWrecover.Services
{
public class EmailSender : IEmailSender
{
public EmailSender(IOptions<AuthMessageSenderOptions> optionsAccessor, ILogger<EmailSender> logger)
{
Options = optionsAccessor.Value;
_logger = logger;
}
二、EmailSender : IEmailSender
public AuthMessageSenderOptions Options { get; }
private readonly ILogger _logger;
public async Task SendEmailAsync(string toEmail, string subject, string message)
{
if (string.IsNullOrEmpty(Options.SendGridKey))
{
throw new Exception("Null SendGridKey");
}
await Execute(Options.SendGridKey, subject, message, toEmail);
}
三、EmailSender : IEmailSender
public async Task Execute(string apiKey, string subject, string message, string toEmail)
{
var client = new SendGridClient(apiKey);
var msg = new SendGridMessage()
{
From = new EmailAddress("jsolanoe@ucenfotec.ac.cr", "Autentificación de cuenta"),
Subject = subject,
PlainTextContent = message,
HtmlContent = message
};
四、EmailSender : IEmailSender
msg.AddTo(new EmailAddress(toEmail));
msg.SetClickTracking(false, false);
var response = await client.SendEmailAsync(msg);
_logger.LogInformation(response.IsSuccessStatusCode
? $"Email to {toEmail} queued successfully!"
: $"Failure Email to {toEmail}");
}
}
}