Fallback env email form contatti + errori chiari #21

Merged
javaxman merged 1 commits from fix/contact-email-env-fallback into main 2026-07-29 16:59:52 +02:00
Showing only changes of commit 6320d8dfdf - Show all commits

View File

@ -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,
);
}