integrazioni · framework

Un modulo di contatto per Next.js, senza scrivere una route API.

Per ricevere da Next.js non servono route API, SDK email o credenziali SMTP. Punta semplice HTML all’endpoint mailcontact: gli invii arrivano nella casella con avvisi Discord, Slack o webhook.

Funziona uguale in App Router e Pages Router, componenti server o client e persino export statico: è solo action di un modulo, non un plugin.

configurazione consigliata

Usa lo script MailContact con il tuo design.

Aggiungi questo HTML al sito oppure usa generatore di moduli. Sostituisci il link del modulo con il tuo. Lo script ospitato inserisce il controllo nascosto, gestisce invio e verifica automatica e conserva la bozza in caso di errore. Tu controlli HTML e CSS. I moduli Free mostrano un link visibile “Processed by mailcontact.app”; Pro e Plus no. I messaggi seguono la lingua del browser; imposta data-mailcontact-language="fr" sul modulo per impostare il francese.

contact.html
<form action="https://mailcontact.app/api/forms/your-form-id" method="POST" data-mailcontact-form lang="it" data-mailcontact-language="it">
  <input type="hidden" name="_language" value="it" />
  <fieldset>
    <legend>Contattaci</legend>
    <label>
      Nome (facoltativo)
      <input name="name" type="text" autocomplete="name" maxlength="200" />
    </label>
    <label>
      Email
      <input name="email" type="email" autocomplete="email" maxlength="320" required />
    </label>
    <label>
      Messaggio
      <textarea name="message" rows="5" maxlength="5000" required></textarea>
    </label>
    <noscript>
    <div aria-hidden="true" style="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;">
      <label>Sito web
        <input name="company_website" type="text" tabindex="-1" autocomplete="off" />
      </label>
    </div>
    </noscript>
    <button type="submit">Invia messaggio</button>
  </fieldset>
  <p data-contact-status role="status" aria-live="polite" aria-atomic="true"></p>
</form>
<script defer src="https://mailcontact.app/forms/v1.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

Per un componente con un proprio gestore di invio, carica lo stesso script e usa MailContact.prepare(form) e MailContact.send() al posto del marcatore automatico. Consulta riferimento per interfacce personalizzate per caricamento, messaggi e attribuzione Free.

lo snippet

Alternativa: integrazione diretta per Next.js.

Questo esempio invia direttamente all’API. Mantieni il campo obbligatorio company_website presente e vuoto. Gli invii nativi aprono JSON in caso di successo o una pagina di verifica se serve. Gli script personalizzati senza supporto alla verifica inviano i messaggi sospetti in Spam per revisione; anche lo spam evidente resta lì senza notifiche né consumo di quota. Una risposta di successo conferma la ricezione, anche per revisione, oppure lo scarto silenzioso di un controllo compilato. Vedi protezione antispam per il comportamento completo.

app/contact/page.tsx
export default function ContactPage() {
  return (
    <form action="https://mailcontact.app/api/forms/your-form-id" method="POST">
      <input type="text" name="name" placeholder="Your name" required />
      <input type="email" name="email" placeholder="[email protected]" required />
      <textarea name="message" placeholder="What's on your mind?" required />
      <button type="submit">Send</button>
      <input name="company_website" type="text" tabIndex={-1} autoComplete="off"
        style={{ position: "absolute", left: "-10000px" }} aria-hidden="true" />
    </form>
  );
}

come funziona

Tre passaggi dall’inizio alla fine.

01

Crea una casella

Una casella per progetto. Chiamala come l’app e ottieni subito endpoint modulo ed email.

02

Incolla il modulo

Inserisci il componente sopra ovunque: pagina, piè di pagina o modale. Stilizzalo come vuoi: il markup è tuo.

03

Ricevi notifiche

Aggiungi Discord, Slack, email o webhook. I messaggi consegnati ti avvisano dove sei già.

perché mailcontact

Pensato per funzionare con Next.js.

Nessuna route API da mantenere

Niente gestore /api/contact, configurazione nodemailer o variabili d’ambiente che trapelano in altri deploy. Elimina un’intera categoria di codice di collegamento.

Compatibile con l’esportazione statica

Inviando a un endpoint esterno, funziona con output: 'export' e su qualsiasi hosting statico, senza funzioni server.

Una casella per ogni app che pubblichi

Lanci più progetti Next.js? Ognuno ha casella e indirizzo propri, senza accumulare tutto nella posta personale.

FAQ

Next.js + mailcontact: le risposte

Funziona sia con App Router sia con Pages Router?

Sì. Lo snippet è un modulo HTML semplice e si renderizza allo stesso modo in app/ o pages/, in componenti server o client.

Posso inviare con fetch invece che con un modulo nativo?

Sì. Invia gli stessi campi con POST come FormData o JSON dall’onSubmit per restare sulla pagina. Gli invii nativi restituiscono attualmente JSON e il reindirizzamento configurabile non è disponibile.

Funziona con next build e output: 'export' (hosting statico)?

Sì, è lo scopo. Il modulo invia ai server mailcontact: il sito Next.js può essere completamente statico, senza route API o funzioni server.

Come mostro un ringraziamento dopo l’invio?

Usa lo script MailContact ospitato per l’invio automatico o chiama MailContact.send() in un gestore onSubmit per un’interfaccia personalizzata. Il reindirizzamento configurabile per invii nativi non è attualmente disponibile.

correlati

Funziona anche con

Una casella per ogni progetto Next.js che pubblichi.

Moduli e un vero indirizzo email insieme, con notifiche dove lavori. Inizia con un account gratuito.

Crea un modulo gratis

Non serve la carta di credito. Free include un progetto e 50 messaggi dal modulo al mese.