diff --git a/FabApprovalWorkerService/Services/SmtpService.cs b/FabApprovalWorkerService/Services/SmtpService.cs index 37090be..37f2ef1 100644 --- a/FabApprovalWorkerService/Services/SmtpService.cs +++ b/FabApprovalWorkerService/Services/SmtpService.cs @@ -13,12 +13,15 @@ public interface ISmtpService { public class SmtpService : ISmtpService { private ILogger _logger; private ISmtpClientWrapper _smtpClient; + private string _environmentName; public SmtpService(ILogger logger, ISmtpClientWrapper smtpClient) { _logger = logger ?? throw new ArgumentNullException("ILogger not injected"); _smtpClient = smtpClient ?? throw new ArgumentNullException("SmtpClient not injected"); + _environmentName = Environment.GetEnvironmentVariable("FabApprovalEnvironmentName") ?? + throw new ArgumentNullException("FabApprovalEnvironmentName environment variable not found"); } public async Task SendEmail(IEnumerable recipients, @@ -37,29 +40,33 @@ public class SmtpService : ISmtpService { bool messageWasSent = false; try { - int remainingRetries = maxRetries; - while (!messageWasSent && remainingRetries > 0) { - try { - Task.Delay((maxRetries - remainingRetries--) * backoffSeconds * 1000); + if (!_environmentName.ToLower().Equals("development")) { + int remainingRetries = maxRetries; + while (!messageWasSent && remainingRetries > 0) { + try { + Task.Delay((maxRetries - remainingRetries--) * backoffSeconds * 1000); - _logger.LogInformation($"Attempting to send notification. Remaining retries: {remainingRetries}"); + _logger.LogInformation($"Attempting to send notification. Remaining retries: {remainingRetries}"); - MailMessage msg = new MailMessage(); - msg.IsBodyHtml = true; - msg.From = new MailAddress("MesaFabApproval@infineon.com", "Mesa Fab Approval"); - msg.Sender = new MailAddress("MesaFabApproval@infineon.com", "Mesa Fab Approval"); - foreach (MailAddress recipient in recipients) msg.To.Add(recipient); - msg.Bcc.Add("chase.tucker@infineon.com"); - foreach (MailAddress ccRecipient in ccRecipients) msg.CC.Add(ccRecipient); - msg.Subject = subject; - msg.Body = body; + MailMessage msg = new MailMessage(); + msg.IsBodyHtml = true; + msg.From = new MailAddress("MesaFabApproval@infineon.com", "Mesa Fab Approval"); + msg.Sender = new MailAddress("MesaFabApproval@infineon.com", "Mesa Fab Approval"); + foreach (MailAddress recipient in recipients) msg.To.Add(recipient); + msg.Bcc.Add("chase.tucker@infineon.com"); + foreach (MailAddress ccRecipient in ccRecipients) msg.CC.Add(ccRecipient); + msg.Subject = subject; + msg.Body = body; - _smtpClient.Send(msg); + _smtpClient.Send(msg); - messageWasSent = true; - } catch (Exception ex) { - _logger.LogError($"Message not sent successfully. Exception: {ex.Message}"); + messageWasSent = true; + } catch (Exception ex) { + _logger.LogError($"Message not sent successfully. Exception: {ex.Message}"); + } } + } else { + messageWasSent = true; } } catch (Exception ex) { _logger.LogError($"An exception occurred when attempting to send notification. Exception: {ex.Message}");