From 41542e492d2e04a3647b685baee998bc22a68c0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Szab=C3=B3?= Date: Wed, 21 Jan 2026 09:19:22 +0100 Subject: [PATCH] =?UTF-8?q?E-mail=20k=C3=BCld=C3=A9se=2010=20pr=C3=B3b?= =?UTF-8?q?=C3=A1lkoz=C3=A1sra,=202=20mp-es=20v=C3=A1rakoz=C3=A1ssal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/CheckListService.cs | 2 +- .../Services/MessageService.cs | 42 ++++++++++++++++--- 2 files changed, 38 insertions(+), 6 deletions(-) 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; }