diff --git a/app/routers/settings.py b/app/routers/settings.py index 5f0b902..cab231f 100644 --- a/app/routers/settings.py +++ b/app/routers/settings.py @@ -238,6 +238,61 @@ async def settings_save(request: Request, section: str, db=Depends(get_db)): return templates.TemplateResponse("settings.html", ctx) +@router.post("/settings/smtp/test") +async def settings_smtp_test(request: Request, db=Depends(get_db), + recipient: str = Form("kalid.moutaouakil@gmail.com")): + """Envoie un mail test à `recipient` pour valider la config SMTP.""" + from fastapi.responses import JSONResponse + user = get_current_user(request) + if not user: + return JSONResponse({"ok": False, "msg": "Non authentifié"}, status_code=401) + perms = get_user_perms(db, user) + if not can_edit(perms, "settings"): + return JSONResponse({"ok": False, "msg": "Permission refusée"}, status_code=403) + to = (recipient or "").strip() + if not to: + return JSONResponse({"ok": False, "msg": "Destinataire vide"}, status_code=400) + + sender = user.get("sub") or user.get("username") or "PatchCenter" + from datetime import datetime as _dt + now_str = _dt.now().strftime("%d/%m/%Y %H:%M:%S") + + subject = f"[PatchCenter] Test SMTP — {now_str}" + html = f""" + + + + +
+
SANEF — SecOps · PatchCenter
+

✅ Test SMTP réussi

+
+

Bonjour,

+

Ce mail confirme que la configuration SMTP de PatchCenter fonctionne correctement.

+ + +
+ + + + + + + +
Envoyé par :{sender}
Date d'envoi :{now_str}
Destinataire :{to}
+
+

Tu peux maintenant utiliser le bouton "Prévenance PCT" sur la page d'import patching.

+

Cordialement,
L'équipe SecOps SANEF

+
+ Mail de test généré par PatchCenter via /settings/smtp/test. +
""" + + from ..services.mail_service import send_html_mail + res = send_html_mail(db, to=[to], subject=subject, html=html) + return JSONResponse(res) + + @router.post("/settings/ldap/test") async def settings_ldap_test(request: Request, db=Depends(get_db)): """Teste la connexion LDAP avec le compte de bind.""" diff --git a/app/templates/settings.html b/app/templates/settings.html index bd5a1bb..0f050c4 100644 --- a/app/templates/settings.html +++ b/app/templates/settings.html @@ -709,6 +709,46 @@

{% if editable.smtp %}{% endif %} + + {% if editable.smtp %} +
+

Test envoi SMTP

+
+
+ + +
+ +
+
+
+ + {% endif %} {% endif %}