From 76ea3513acb5921729afa85eebe9b713513ba498 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Tue, 11 Aug 2026 18:22:12 +0200 Subject: [PATCH] MainWindow: Delay email sending --- Elwig/Helpers/Config.cs | 6 ++++-- Elwig/Helpers/Utils.cs | 2 +- Elwig/Windows/MailWindow.xaml.cs | 1 + Installer/Files/config.ini | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Elwig/Helpers/Config.cs b/Elwig/Helpers/Config.cs index 1f51671..fb7e3ca 100644 --- a/Elwig/Helpers/Config.cs +++ b/Elwig/Helpers/Config.cs @@ -57,9 +57,10 @@ namespace Elwig.Helpers { public string? SmtpUsername = null; public string? SmtpPassword = null; public string? SmtpFrom = null; - public (string Host, int Port, string Mode, string Username, string Password, string From)? Smtp => + public double SmtpWait = 0; + public (string Host, int Port, string Mode, string Username, string Password, string From, double Wait)? Smtp => SmtpHost == null || SmtpPort == null || SmtpMode == null || SmtpUsername == null || SmtpPassword == null || SmtpFrom == null ? - null : (SmtpHost, (int)SmtpPort, SmtpMode, SmtpUsername, SmtpPassword, SmtpFrom); + null : (SmtpHost, (int)SmtpPort, SmtpMode, SmtpUsername, SmtpPassword, SmtpFrom, SmtpWait); public IList Scales; private readonly List ScaleList = []; @@ -92,6 +93,7 @@ namespace Elwig.Helpers { SmtpUsername = config["smtp:username"]; SmtpPassword = config["smtp:password"]; SmtpFrom = config["smtp:from"]; + SmtpWait = double.TryParse(config["smtp:wait"], out var res) ? res : 0; var scales = config.AsEnumerable().Where(i => i.Key.StartsWith("scale.")).GroupBy(i => i.Key.Split(':')[0][6..]).Select(i => i.Key).Order(); ScaleList.Clear(); diff --git a/Elwig/Helpers/Utils.cs b/Elwig/Helpers/Utils.cs index c8d3831..68fec18 100644 --- a/Elwig/Helpers/Utils.cs +++ b/Elwig/Helpers/Utils.cs @@ -516,7 +516,7 @@ namespace Elwig.Helpers { public static async Task GetSmtpClient() { if (App.Config.Smtp == null) return null; - var (host, port, mode, username, password, _) = App.Config.Smtp.Value; + var (host, port, mode, username, password, _, _) = App.Config.Smtp.Value; var client = new SmtpClient(); await client.ConnectAsync(host, port, mode == "starttls" ? SecureSocketOptions.StartTls : SecureSocketOptions.None); await client.AuthenticateAsync(username, password); diff --git a/Elwig/Windows/MailWindow.xaml.cs b/Elwig/Windows/MailWindow.xaml.cs index 99eed84..a7f085f 100644 --- a/Elwig/Windows/MailWindow.xaml.cs +++ b/Elwig/Windows/MailWindow.xaml.cs @@ -958,6 +958,7 @@ namespace Elwig.Windows { m.EmailAddresses.OrderBy(a => a.Nr).Select(a => a.Address).ToArray(), subject, docs.Select(d => d.Title).ToArray() )]); + await Task.Delay((int)(App.Config.SmtpWait * 1000)); } }); diff --git a/Installer/Files/config.ini b/Installer/Files/config.ini index 1f67f64..6db0edf 100644 --- a/Installer/Files/config.ini +++ b/Installer/Files/config.ini @@ -26,6 +26,7 @@ auto = true ;username = "" ;password = "" ;from = mail@wg.at +;wait = 0.5 ;[scale.1] ;type = SysTec-IT