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. +
Tu peux maintenant utiliser le bouton "Prévenance PCT" sur la page d'import patching. +Cordialement, | |||||||
+ Mail de test généré par PatchCenter via /settings/smtp/test.
+ |