From 6673843a00e169b25d031ac9a30719509c62c281 Mon Sep 17 00:00:00 2001 From: Javaxman Date: Wed, 29 Jul 2026 16:59:52 +0200 Subject: [PATCH] Chiarisce la config email del form contatti e usa fallback newsletter. (#21) Messaggio di errore specifico su cosa manca; FROM/TO possono riusare NEWSLETTER_*. Co-authored-by: Cursor --- src/pages/api/contact.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/pages/api/contact.ts b/src/pages/api/contact.ts index 66b4e75..8b7ce17 100644 --- a/src/pages/api/contact.ts +++ b/src/pages/api/contact.ts @@ -115,8 +115,12 @@ export const POST: APIRoute = async ({ request, url }) => { try { const runtimeEnv = getRuntimeEnv(); const mode = readEnv('CONTACT_FORM_MODE', runtimeEnv).toLowerCase() || 'dev'; - const fromEmail = readEnv('CONTACT_FORM_FROM_EMAIL', runtimeEnv); - const toEmail = readEnv('CONTACT_FORM_TO_EMAIL', runtimeEnv); + const fromEmail = + readEnv('CONTACT_FORM_FROM_EMAIL', runtimeEnv) || + readEnv('NEWSLETTER_FROM_EMAIL', runtimeEnv); + const toEmail = + readEnv('CONTACT_FORM_TO_EMAIL', runtimeEnv) || + readEnv('NEWSLETTER_NOTIFY_TO_EMAIL', runtimeEnv); const turnstileSecret = readEnv('CONTACT_TURNSTILE_SECRET_KEY', runtimeEnv); const form = await request.formData(); @@ -173,9 +177,14 @@ export const POST: APIRoute = async ({ request, url }) => { if (mode === 'live') { const emailBinding = getEmailBinding(runtimeEnv); if (!emailBinding || !fromEmail || !toEmail) { + const missing = [ + !emailBinding ? 'EMAIL binding' : '', + !fromEmail ? 'CONTACT_FORM_FROM_EMAIL (o NEWSLETTER_FROM_EMAIL)' : '', + !toEmail ? 'CONTACT_FORM_TO_EMAIL (o NEWSLETTER_NOTIFY_TO_EMAIL)' : '', + ].filter(Boolean); return fail( request, - 'Live mode requires EMAIL binding (Cloudflare Email Service), CONTACT_FORM_FROM_EMAIL and CONTACT_FORM_TO_EMAIL.', + `Config email incompleta: manca ${missing.join(', ')}. Imposta le variabili runtime del Worker (Settings → Variables and Secrets), non Build.`, 500, ); }