using AyCode.Core.Consts; using Microsoft.Extensions.Configuration; using SendGrid.Helpers.Mail; using SendGrid; namespace AyCode.Services.Server.Emails; public interface IAcEmailServiceServer { } public class AcEmailServiceServer() : IAcEmailServiceServer { private IConfiguration _configuration; private readonly SendGridClient _sendGridClient; private readonly EmailAddress _fromEmailAddress; public AcEmailServiceServer(IConfiguration configuration) : this() { _configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); //_sendGridClient = new SendGridClient(_configuration.ServerUserName); //_fromEmailAddress = new EmailAddress(_configuration.FromEmail, _configuration.FromName); //Console.WriteLine($"{config.ServerUserName}; {config.FromEmail}; {config.FromName}"); } public async Task SendLostPasswordEmailAsync(string addressEmail, string verificationToken) { const string subject = "Lost password"; var toEmailAddress = new EmailAddress(addressEmail); var plainTextContent = $"{verificationToken}"; var htmlContent = $"{verificationToken}"; var msg = MailHelper.CreateSingleEmail(_fromEmailAddress, toEmailAddress, subject, plainTextContent, htmlContent); return await _sendGridClient.SendEmailAsync(msg).ConfigureAwait(false); } public async Task SendRegistrationEmailAsync(string addressEmail, string verificationToken, string userName) { const string subject = "Registration"; var toEmailAddress = new EmailAddress(addressEmail); var plainTextContent = $"User name: {userName}{AcEnv.NL}Confirmation token: {verificationToken}"; var htmlContent = $"User name: {userName}
Confirmation token: {verificationToken}"; var msg = MailHelper.CreateSingleEmail(_fromEmailAddress, toEmailAddress, subject, plainTextContent, htmlContent); return await _sendGridClient.SendEmailAsync(msg).ConfigureAwait(false); } }