From 5796e94154d58b3aff5b0b00985ff2a4073c1040 Mon Sep 17 00:00:00 2001 From: tommaso Date: Fri, 10 Jul 2026 12:42:19 +0200 Subject: [PATCH] Admin: avviso critico se non c'e' alcun SMTP configurato Il tab diceva 'Vuoto = provider di default dell'app', ma questa installazione non ha secret SMTP_*: vuoto significava 'nessuna ricevuta parte', in silenzio - mentre CHECKLIST-COMPLIANCE-MERCHANT promette 'ricevuta sempre inviata'. Il loader ora espone appDefaultSmtp (presenza di SMTP_HOST lato app). Se non c'e' ne' quello ne' l'SMTP per-shop, banner critico: la ricevuta su supporto durevole e' un obbligo (art. 54-bis), la funzione non e' conforme finche' non e' configurato. --- app/app/routes/app.settings.tsx | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/app/app/routes/app.settings.tsx b/app/app/routes/app.settings.tsx index b638de7..b0bdd51 100644 --- a/app/app/routes/app.settings.tsx +++ b/app/app/routes/app.settings.tsx @@ -66,6 +66,9 @@ export const loader = async ({ request }: LoaderFunctionArgs) => { smtpSecure: s?.smtpSecure ?? false, smtpFrom: s?.smtpFrom ?? "", smtpPassSet: !!s?.smtpPass, + // Esiste un SMTP di default a livello app (env/fly secret)? In prod oggi NO: + // senza SMTP per-shop non parte nessuna ricevuta. + appDefaultSmtp: !!process.env.SMTP_HOST, }; }; @@ -605,11 +608,23 @@ export default function SettingsPage() { Email (SMTP) - Vuoto = provider di default dell'app. Compila per inviare dal - tuo SMTP (email dal tuo dominio). La password è cifrata a - riposo. + {d.appDefaultSmtp + ? "Vuoto = provider di default dell'app. Compila per inviare dal tuo SMTP (email dal tuo dominio). La password è cifrata a riposo." + : "Questa installazione non ha un provider di default: la ricevuta parte solo dal tuo SMTP. La password è cifrata a riposo."} + + {!smtpHost.trim() && !d.appDefaultSmtp ? ( + + + Le ricevute di recesso non vengono inviate. + La ricevuta su supporto durevole è un obbligo di legge + (art. 54-bis): finché non configuri l'SMTP, la funzione + non è conforme. Compila i campi qui sotto e usa "Invia + email di prova" per verificare. + + + ) : null}