From af1c978867367511fda1be060b39b766d5403feb Mon Sep 17 00:00:00 2001 From: Michael Spiegel Date: Wed, 10 Jul 2024 18:11:52 +0200 Subject: [PATCH] Added logging of invalid email address in EmailMessageRelay.cs. --- ClubService.Domain/Repository/ILoggerService.cs | 1 + .../Logging/LoggerService.cs | 5 +++++ .../Mail/EmailMessageRelay.cs | 17 ++++++++++++++--- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ClubService.Domain/Repository/ILoggerService.cs b/ClubService.Domain/Repository/ILoggerService.cs index 4ea4b73..bc9cac1 100644 --- a/ClubService.Domain/Repository/ILoggerService.cs +++ b/ClubService.Domain/Repository/ILoggerService.cs @@ -64,4 +64,5 @@ public interface ILoggerService void LogJsonMissingProperties(string jsonValue); void LogEmailMessageRelayStop(); void LogSystemOperatorRegistered(Guid id); + void LogInvalidEMailAddress(string emailAddress); } \ No newline at end of file diff --git a/ClubService.Infrastructure/Logging/LoggerService.cs b/ClubService.Infrastructure/Logging/LoggerService.cs index 27d1739..852fa31 100644 --- a/ClubService.Infrastructure/Logging/LoggerService.cs +++ b/ClubService.Infrastructure/Logging/LoggerService.cs @@ -320,4 +320,9 @@ public void LogSystemOperatorRegistered(Guid id) { logger.LogInformation("Registered system operator with id '{id}'.", id); } + + public void LogInvalidEMailAddress(string emailAddress) + { + logger.LogError("The following email address is invalid: {emailMessageRecipientEMailAddress}", emailAddress); + } } \ No newline at end of file diff --git a/ClubService.Infrastructure/Mail/EmailMessageRelay.cs b/ClubService.Infrastructure/Mail/EmailMessageRelay.cs index 426b22c..c0c6af6 100644 --- a/ClubService.Infrastructure/Mail/EmailMessageRelay.cs +++ b/ClubService.Infrastructure/Mail/EmailMessageRelay.cs @@ -12,7 +12,7 @@ public class EmailMessageRelay : BackgroundService { private readonly ILoggerService _loggerService; private readonly int _pollingInterval; - private readonly string _senderEmailAddress; + private readonly MailAddress _senderEmailAddress; private readonly IServiceProvider _serviceProvider; private readonly SmtpClient _smtpClient; @@ -24,7 +24,7 @@ public EmailMessageRelay( _serviceProvider = serviceProvider; _loggerService = loggerService; _pollingInterval = smtpConfiguration.Value.PollingInterval; - _senderEmailAddress = smtpConfiguration.Value.SenderEmailAddress; + _senderEmailAddress = new MailAddress(smtpConfiguration.Value.SenderEmailAddress); _smtpClient = new SmtpClient(smtpConfiguration.Value.Host, smtpConfiguration.Value.Port); _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; } @@ -41,7 +41,18 @@ private async Task SendEmails() { await transactionManager.TransactionScope(async () => { - var mailMessage = new MailMessage(_senderEmailAddress, emailMessage.RecipientEMailAddress) + MailAddress recipientEmailAddress; + try + { + recipientEmailAddress = new MailAddress(emailMessage.RecipientEMailAddress); + } + catch (FormatException e) + { + _loggerService.LogInvalidEMailAddress(emailMessage.RecipientEMailAddress); + throw; + } + + var mailMessage = new MailMessage(_senderEmailAddress, recipientEmailAddress) { Subject = emailMessage.Subject, Body = emailMessage.Body