diff --git a/src/WorkFlowCheck.BL/Services/CheckListService.cs b/src/WorkFlowCheck.BL/Services/CheckListService.cs index cecad2d..9da9a40 100644 --- a/src/WorkFlowCheck.BL/Services/CheckListService.cs +++ b/src/WorkFlowCheck.BL/Services/CheckListService.cs @@ -285,7 +285,7 @@ namespace WorkFlowCheck.BL.Services } catch (Exception ex) { - + Log.Error(ex.Message); } } diff --git a/src/WorkFlowCheck.BL/Services/MessageService.cs b/src/WorkFlowCheck.BL/Services/MessageService.cs index 16d67e7..d164e25 100644 --- a/src/WorkFlowCheck.BL/Services/MessageService.cs +++ b/src/WorkFlowCheck.BL/Services/MessageService.cs @@ -51,11 +51,43 @@ namespace WorkFlowCheck.BL.Services } message.Body = builder.ToMessageBody(); - using var smtp = new SmtpClient(); - await smtp.ConnectAsync(_settings.SmtpServer, _settings.SmtpPort, SecureSocketOptions.StartTls); - await smtp.AuthenticateAsync(_settings.Username, _settings.Password); - await smtp.SendAsync(message); - await smtp.DisconnectAsync(true); + const int maxRetries = 10; + const int delayMs = 2000; + + bool authenticated = false; + Exception lastException = null; + + for (int attempt = 1; attempt <= maxRetries; attempt++) + { + try + { + using var smtp = new SmtpClient(); + + await smtp.ConnectAsync(_settings.SmtpServer, _settings.SmtpPort, SecureSocketOptions.StartTls); + await smtp.AuthenticateAsync(_settings.Username, _settings.Password); + await smtp.SendAsync(message); + await smtp.DisconnectAsync(true); + + authenticated = true; + break; // 🎯 siker + } + catch (Exception ex) + { + lastException = ex; + Log.ForContext("TAG", "BusinessFlow").Error(lastException?.Message ?? "E-mail küldése sikertelen!"); + if (attempt == maxRetries) + break; + + // ⏳ várunk 1 másodpercet és újrapróbáljuk + await Task.Delay(delayMs); + } + } + + if (!authenticated) + { + // 🔴 IDE ÍRHATSZ MAJD SAJÁT LOGIKÁT + Log.ForContext("TAG", "BusinessFlow").Error(lastException?.Message ?? "E-mail küldése sikertelen!"); + } return true; }