From 5a58eefe66be5c70a4c6852a247c1cc9e83c8adb Mon Sep 17 00:00:00 2001 From: Pontoporeia Date: Wed, 22 Apr 2026 10:40:47 +0200 Subject: [PATCH] feat(admin): add SMTP test email button on parametres page --- TODO.md | 1 + app/public/admin/actions/smtp-test.php | 64 +++++++++++++++++++++++++ app/public/assets/css/admin.css | 41 ++++++++++++++++ app/storage/posterg.db | Bin 270336 -> 270336 bytes app/storage/test.db | Bin 602112 -> 602112 bytes app/templates/admin/parametres.php | 21 ++++++++ 6 files changed, 127 insertions(+) create mode 100644 app/public/admin/actions/smtp-test.php diff --git a/TODO.md b/TODO.md index 0600160..6edb4d7 100644 --- a/TODO.md +++ b/TODO.md @@ -4,3 +4,4 @@ - [x] Make `.repertoire-col` columns scrollable instead of `.search-main` - [x] Replace JS toast system with pure HTMX toast fragment (top-right, CSS-only auto-fade) - [x] Separate admin views from controllers: move all HTML to `templates/admin/*.php`, fragments to `templates/admin/partials/` +- [x] Add SMTP test email button in parametres.php (action + CSS) diff --git a/app/public/admin/actions/smtp-test.php b/app/public/admin/actions/smtp-test.php new file mode 100644 index 0000000..9b7eb5c --- /dev/null +++ b/app/public/admin/actions/smtp-test.php @@ -0,0 +1,64 @@ + + +

+ Test d'envoi SMTP — Post-ERG +

+

Ceci est un e-mail de test envoyé depuis l'interface d'administration de Post-ERG.

+

Si vous recevez ce message, la configuration du relay SMTP est correcte.

+
+

+ Envoyé le : $sentDate
+ Destinataire : $toSafe +

+ + +HTML; + +$ok = SmtpRelay::send($db, $to, $subject, $body); + +if ($ok) { + App::flash('success', "E-mail de test envoyé à \u00ab\u00a0{$to}\u00a0\u00bb."); +} else { + App::flash('error', "Échec de l'envoi. Vérifiez la configuration SMTP et les logs serveur."); +} + +header('Location: /admin/parametres.php'); +exit; diff --git a/app/public/assets/css/admin.css b/app/public/assets/css/admin.css index f5cf26f..d8d8858 100644 --- a/app/public/assets/css/admin.css +++ b/app/public/assets/css/admin.css @@ -1483,6 +1483,47 @@ label:has(+ div > input:required)::after { /* ── SMTP section ─────────────────────────────────────────────────────── */ +.param-smtp-test { + margin-top: var(--space-m); +} +.param-smtp-test-form { + margin-top: var(--space-s); +} +.param-smtp-test-row { + display: flex; + align-items: flex-end; + gap: var(--space-s); + flex-wrap: wrap; +} +.param-smtp-test-row > div { + flex: 1 1 260px; +} +.param-smtp-test-row label { + display: block; + font-size: var(--step--1); + font-weight: 600; + margin-bottom: var(--space-2xs); + color: var(--text-secondary); +} +.param-smtp-test-row input[type="email"] { + width: 100%; + padding: var(--space-xs) var(--space-s); + border: 1px solid var(--border-primary); + border-radius: 4px; + background: var(--bg-primary); + color: var(--text-primary); + font-size: var(--step--1); + box-sizing: border-box; +} +.param-smtp-test-row input[type="email"]:focus { + outline: 2px solid var(--accent-primary); + outline-offset: 1px; +} +.param-smtp-test-row > button { + white-space: nowrap; + flex-shrink: 0; +} + .param-smtp-status { display: flex; align-items: center; diff --git a/app/storage/posterg.db b/app/storage/posterg.db index db4042c602b8013659012d4dbe7e3f4ffacb8cc0..23b4b123f8520ae142b801c8aa7961246c019867 100644 GIT binary patch delta 195 zcmZoTAkc6?V8dH|Mvmrp`t9%Z8G)E-`#XJRF#!cW-aH2Wll-&!Gx_cLMfo1_ZR2a^ zi{R7X{mFZVcOGxvW{Pd#4+~WA+)YKHc;=&vw10yqC z0~1{%BLxEsDBm_nhxE-$uS^ Ze3d}ML-}N7m~9zxna#I-S{!rMK>#sqJIeq7 delta 112 zcmZoTAkc6?V8dH|Mz-d6`t9%Z8G)E-`#XJRF#$PV-gylCC;4adXY$+gi}F3<+s4<- z7s02&`;+$!@4U@|0yVtb=lL?HG0E}rO=IA{%YTS}F@Fz#DSs%x4ZjRO3*U3T(|jBG QrU6x!@NJ(K$DDN#08RfS9RL6T diff --git a/app/storage/test.db b/app/storage/test.db index c1f51a0bde05f2f2b18333994ce4219bfcb0b5ad..2425954c991f58b260a149f7ea0d8b366269a1c5 100644 GIT binary patch delta 363 zcmZp8pwjR_Wy4#2Mvmrp`t9%Z8G)E-`#XJRF#!cW-aH2Wll-&!Gx_cLMfo1_ZR2a^ zi{R7X{mFZVcOGxvW{Pd#4+~WA+)YKHc;=&vw10yqC z0~1{%BLxEsDBm_nhxE-$uS^ ze3d}ML-}N7m~9zxna#I-S{!pWBQNhq24-$X25v^)TwWodw$EJbEqsiu>g~1Lf8;XT zFiIJk7%P-y#FQEsq*@fG7AwS*8Uf8zFtxCl?vu~Fk@-c((&<9E%zC;OW@ZKkW)_xa zW+pmHrNyZ!N>;`OCZ-0a7KWCF#%4N71<55!R%S-EnIJ8>xy+61Kn4Q?6F<;eZl-Au a7+Km`3YdWyM6&`h8xXT^XDQ(LvmXH2rE8M_ delta 257 zcmZp8pwjR_Wy4#2Mz-d6`t9%Z8G)E-`#XJRF#$PV-gylCC;4adXY$+gi}F3<+s4<- z7s02&`;+$!@4U^13N^gj=lL?HG0E}rO=IA{%YTS}F@Fz#DSs%x4ZjRO3*U3T(|jBG zrU6x!@NJ(K$DGZ`%fP_E%qzse`;j-7R|qJ$k0qjsUW#T$;!;KHuIT8_w?Lc=0+|cqlJf&RlU7(J4ZIN4WopC zLPZ3S#?1?Enregistrer + + +
+ Tester l'envoi d'un e-mail +

Envoie un e-mail de test via le relay SMTP configuré ci-dessus.

+ +

⚠ Configurez le relay SMTP avant de pouvoir tester l'envoi.

+ +
+ +
+
+ + +
+ +
+
+ +