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.
This commit is contained in:
@@ -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)
|
||||
</Text>
|
||||
<Text as="p" tone="subdued">
|
||||
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."}
|
||||
</Text>
|
||||
</BlockStack>
|
||||
|
||||
{!smtpHost.trim() && !d.appDefaultSmtp ? (
|
||||
<Banner tone="critical" title="Nessun SMTP configurato">
|
||||
<Text as="p">
|
||||
Le ricevute di recesso <strong>non vengono inviate</strong>.
|
||||
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.
|
||||
</Text>
|
||||
</Banner>
|
||||
) : null}
|
||||
<TextField
|
||||
label="Host SMTP"
|
||||
value={smtpHost}
|
||||
|
||||
Reference in New Issue
Block a user