intégrations · framework

Un formulaire Next.js, sans écrire de route API.

Sans route API, SDK email ni identifiants SMTP : faites pointer le formulaire HTML vers mailcontact pour recevoir les envois en boîte avec alertes Discord, Slack ou webhook.

Identique avec App Router, Pages Router, composants serveur ou client et même export statique : c’est une action de formulaire, pas un plugin.

configuration recommandée

Utilisez le script MailContact avec votre design.

Ajoutez ce HTML à votre site, ou utilisez le générateur de formulaires. Remplacez le lien du formulaire par le vôtre. Le script hébergé injecte le contrôle caché, gère l’envoi et la vérification automatique, et conserve le brouillon en cas d’erreur. Vous contrôlez le HTML et le CSS. Les formulaires Free affichent un lien visible « Traité par mailcontact.app » ; Pro et Plus ne l’affichent pas. Les messages de retour suivent la langue du navigateur ; définissez data-mailcontact-language="fr" sur le formulaire pour imposer le français.

contact.html
<form action="https://mailcontact.app/api/forms/your-form-id" method="POST" data-mailcontact-form lang="fr" data-mailcontact-language="fr">
  <input type="hidden" name="_language" value="fr" />
  <fieldset>
    <legend>Contactez-nous</legend>
    <label>
      Nom (facultatif)
      <input name="name" type="text" autocomplete="name" maxlength="200" />
    </label>
    <label>
      Email
      <input name="email" type="email" autocomplete="email" maxlength="320" required />
    </label>
    <label>
      Message
      <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>Site web
        <input name="company_website" type="text" tabindex="-1" autocomplete="off" />
      </label>
    </div>
    </noscript>
    <button type="submit">Envoyer le message</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>

Pour un composant doté de son propre gestionnaire d’envoi, chargez le même script et utilisez MailContact.prepare(form) et MailContact.send() au lieu du marqueur automatique. Voir la référence des interfaces personnalisées pour le chargement, les messages de retour et l’attribution Free.

l’extrait

Alternative : une intégration directe pour Next.js.

Cet exemple appelle directement l’API. Gardez le champ requis company_website champ présent et vide. Les envois natifs ouvrent du JSON en cas de succès ou une page de vérification si nécessaire. Les scripts personnalisés sans vérification envoient les messages suspects dans les spams pour examen ; les spams manifestes y sont aussi retenus sans notification ni consommation du quota. Un succès confirme la réception, y compris pour examen, ou l’abandon silencieux d’un contrôle rempli. Voir protection antispam pour le comportement complet.

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

fonctionnement

Trois étapes, du début à la fin.

01

Créer une boîte

Une boîte par projet. Nommez-la comme l’application pour obtenir immédiatement point de réception et adresse.

02

Collez le formulaire

Placez le composant dans une page, un pied de page ou une modale. Vous contrôlez HTML et styles.

03

Recevoir des alertes

Ajoutez Discord, Slack, email ou webhook. Les messages livrés vous alertent dans vos outils.

pourquoi mailcontact

Conçu pour fonctionner avec Next.js.

Aucune route API à surveiller

Ni gestionnaire /api/contact, configuration nodemailer ou variables d’environnement à reporter. Toute une catégorie de code à supprimer.

Compatible avec l’export statique

La réception externe fonctionne avec output: 'export' sur tout hébergeur statique, sans fonctions serveur.

Une boîte par application lancée

Plusieurs projets Next.js ? Chacun a sa boîte et son adresse, sans tout accumuler dans votre email.

FAQ

Next.js + mailcontact : vos questions

Cela fonctionne-t-il avec App Router et Pages Router ?

Oui. Le HTML simple s’affiche pareil depuis app/ ou pages/, dans un composant serveur ou client.

Puis-je envoyer avec fetch plutôt qu’avec un envoi natif ?

Oui. Envoyez les mêmes champs en FormData ou JSON dans un gestionnaire onSubmit pour rester sur la page. Les envois natifs renvoient du JSON sans redirection configurable actuellement.

Cela fonctionne-t-il avec next build && output: 'export' (hébergement statique) ?

Oui, c’est l’objectif. Le formulaire envoie aux serveurs mailcontact : votre Next.js peut rester entièrement statique, sans route API ni fonction serveur.

Comment afficher un remerciement après l’envoi ?

Utilisez le script MailContact hébergé pour l’envoi automatique, ou MailContact.send() dans un gestionnaire onSubmit pour une interface personnalisée. La redirection native configurable n’est pas disponible actuellement.

voir aussi

Fonctionne aussi avec

Une boîte pour chaque projet Next.js lancé.

Formulaires et vraie adresse email, ensemble, avec des notifications dans vos outils. Commencez gratuitement.

Créer mon formulaire

Aucune carte bancaire requise. Free comprend un projet et 50 messages de formulaire par mois.