feat: SMTP configurable via Admin → Settings (app_settings, env fallback) + test email
- config/mailer.js: reads SMTP from app_settings (smtp_host/port/user/pass/from),
with env as fallback; transport rebuilds automatically on change (no restart needed);
mailerStatus() for the UI (without leaking the password).
- admin-settings: POST /smtp (save; password only updated when a new value is given;
clear) + POST /smtp/test (test email). GET includes smtp status.
- admin-settings.ejs: Email (SMTP) card with host/port/user/pass/from + save/
clear + test-email button (only shown when configured).
Once SMTP is filled in, newsletter sending, show-notify and double opt-in work.
Co-Authored-By: Claude <noreply@…>