diff options
Diffstat (limited to 'src/Services/EmailService.cs')
| -rw-r--r-- | src/Services/EmailService.cs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/Services/EmailService.cs b/src/Services/EmailService.cs new file mode 100644 index 0000000..d5098e0 --- /dev/null +++ b/src/Services/EmailService.cs @@ -0,0 +1,45 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; + +namespace VSH.Services; + +public class EmailService +{ + private readonly string _sendGridApiKey; + private readonly string _fromAddress; + private readonly string _fromName; + private readonly string _replyToAddress; + private readonly ILogger<EmailService> _logger; + + public EmailService(IConfiguration configuration, ILogger<EmailService> logger) { + _sendGridApiKey = configuration.GetValue<string>("SENDGRID_API_KEY"); + _fromAddress = configuration.GetValue<string>("MAIL_FROM_ADDRESS"); + _replyToAddress = configuration.GetValue<string>("MAIL_REPLY_TO_ADDRESS"); + _fromName = configuration.GetValue<string>("MAIL_FROM_NAME"); + _logger = logger; + } + + public async Task<bool> SendEmailAsync( + string subject, + string message, + IEnumerable<string> recipients + ) { + foreach (var recipient in recipients) { + if (!await SendEmailAsync(subject, message, recipient)) { + return false; + } + } + + return true; + } + + public Task<bool> SendEmailAsync( + string subject, + string message, + string recipient + ) { + return Task.FromResult(false); + } +} |
