Corrige le rendu de la page mot de passe, masque la nav si non connecté,

réduit le score spam des emails, et rend le niveau de log configurable

- Les styles .login-* étaient définis uniquement dans login.html, donc
  set_password.html s'affichait sans aucun style. Déplacé dans base.html.
- La nav affichait les liens même sans session active.
- mail.py ajoute Message-ID/Date et encode en quoted-printable (au lieu
  de base64) pour réduire le score spam (MISSING_MID, MISSING_DATE,
  MIME_BASE64_TEXT).
- log_level devient une directive de config.json plutôt qu'une variable
  d'environnement.
- README: section démarrage rapide (copie de config.example.json,
  compose.override.yml pour les surcharges locales).
This commit is contained in:
Antoine
2026-07-17 22:16:48 +02:00
parent 2d4179169b
commit 0b47e4a625
7 changed files with 104 additions and 84 deletions

View File

@ -1,7 +1,8 @@
"""Mail delivery via a configured SMTP relay (host/port/credentials in config.json)."""
import logging
import smtplib
from email.mime.text import MIMEText
from email.message import EmailMessage
from email.utils import make_msgid, formatdate
logger = logging.getLogger("pointeuse.mail")
@ -16,10 +17,13 @@ def send_mail(to_addr: str, subject: str, body: str, from_addr: str, smtp_cfg: d
password = smtp_cfg.get("password")
use_tls = smtp_cfg.get("use_tls", True)
msg = MIMEText(body)
msg = EmailMessage()
msg.set_content(body, cte="quoted-printable") # évite MIME_BASE64_TEXT
msg["Subject"] = subject
msg["From"] = from_addr
msg["To"] = to_addr
msg["Message-ID"] = make_msgid(domain=from_addr.split("@", 1)[1])
msg["Date"] = formatdate(localtime=True)
logger.info(
"envoi mail: to=%r from=%r subject=%r via smtp=%s:%s user=%r tls=%r",