Integrationen · framework

Ein Gatsby-Kontaktformular, das mit dir umzieht.

Gatsby baut statische Dateien; das Formular muss extern senden. Gatsby Functions binden an eine Laufzeit, Host-Formulare an den Host. Beim Ende von Gatsby Cloud zeigte sich, welche Teile portabel waren. Formularverarbeitung oft nicht.

Ein Mailcontact-Formular hat diese Bindung nicht. Es ist React-Markup mit action und übersteht Hostwechsel, Gatsby-Upgrades und spätere Neuentwicklung.

empfohlene Einrichtung

Nutze das MailContact-Skript mit deinem eigenen Design.

Füge dieses HTML auf deiner Website ein oder verwende den Formulargenerator. Ersetze den Formularlink durch deinen. Das gehostete Skript fügt die verborgene Prüfung ein, übernimmt Versand und Verifizierung und bewahrt Entwürfe bei Fehlern. Du bestimmst HTML und CSS. Free-Formulare zeigen einen sichtbaren Link „Processed by mailcontact.app“, Pro und Plus nicht. Die Rückmeldung folgt der Browsersprache. Setze data-mailcontact-language="fr" am Formular, um Französisch festzulegen.

contact.html
<form action="https://mailcontact.app/api/forms/your-form-id" method="POST" data-mailcontact-form lang="de" data-mailcontact-language="de">
  <input type="hidden" name="_language" value="de" />
  <fieldset>
    <legend>Kontaktiere uns</legend>
    <label>
      Name (optional)
      <input name="name" type="text" autocomplete="name" maxlength="200" />
    </label>
    <label>
      E-Mail
      <input name="email" type="email" autocomplete="email" maxlength="320" required />
    </label>
    <label>
      Nachricht
      <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>Website
        <input name="company_website" type="text" tabindex="-1" autocomplete="off" />
      </label>
    </div>
    </noscript>
    <button type="submit">Nachricht senden</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>

Für Komponenten mit eigenem Submit-Handler lade dasselbe Skript und nutze MailContact.prepare(form) und MailContact.send() statt der automatischen Markierung. Siehe die Referenz für eigene Oberflächen für Laden, Rückmeldungen und Quellenhinweis bei Free.

das Snippet

Alternative: eine direkte Integration für Gatsby.

Dieses Beispiel sendet direkt an die API. Behalte das erforderliche company_website Feld vorhanden und leer. Native Einsendungen öffnen bei Erfolg JSON oder bei Bedarf eine Prüfseite. Eigene Skripte ohne Verifizierung senden verdächtige Nachrichten zur Prüfung in Spam; deutlicher Spam wird ebenfalls ohne Benachrichtigung und Kontingentverbrauch zurückgehalten. Eine Erfolgsantwort bestätigt den Empfang einschließlich Prüfung oder das stille Verwerfen eines ausgefüllten Prüffelds. Siehe Spamschutz für das vollständige Verhalten.

src/pages/contact.js
import * as React from "react";

// No src/api/ function. No host form feature. Nothing to migrate later.
export default function ContactPage() {
  const [sent, setSent] = React.useState(false);

  async function submit(event) {
    event.preventDefault();
    await fetch("https://mailcontact.app/api/forms/your-form-id", {
      method: "POST",
      body: new FormData(event.target),
    });
    setSent(true);
  }

  if (sent) return <p>Thanks. We'll be in touch.</p>;

  return (
    <form onSubmit={submit}>
      <input name="name" placeholder="Your name" required />
      <input name="email" type="email" placeholder="[email protected]" required />
      <textarea name="message" placeholder="What's on your mind?" required />
      <input name="company_website" type="text" tabIndex={-1} autoComplete="off"
        style={{ position: "absolute", left: "-10000px" }} aria-hidden="true" />

      <button>Send</button>
    </form>
  );
}

so funktioniert es

Drei Schritte, vom Start bis zum Ziel.

01

Postfach erstellen

Ein Postfach pro Projekt, mit Endpunkt und Projektadresse vor dem ersten Build.

02

Seite hinzufügen

Füge es in src/pages/contact.js ein und ersetze die Endpunkt-ID. Ohne gatsby-config-Plugin, Umgebungsvariable oder geänderten Build-Befehl.

03

Benachrichtigt werden

Füge Discord, Slack, E-Mail oder Webhook hinzu, um dort Nachrichtenmeldungen zu erhalten.

warum Mailcontact

Passt gut zu Gatsby.

Kein Plugin in gatsby-config

Formular-Plugins können bei großen Upgrades brechen und werden oft früher aufgegeben als deine Website. Hier gibt es keine solche Abhängigkeit zu künftigen Gatsby-Versionen.

Von Grund auf hostunabhängig

Netlify Forms funktioniert nur auf Netlify; Gatsby Functions braucht passende Hosts. Eine externe action-URL ist unabhängig davon, wo Dateien ausgeliefert werden.

Dein Einsendeverlauf zieht mit um

Native Host-Formulare lassen Archive beim Umzug zurück. Nachrichten im Projektpostfach bleiben auch beim Hostwechsel, samt früheren Anfragen.

FAQ

Gatsby + Mailcontact, beantwortet

Kann eine statische Gatsby-Website Formulareinsendungen verarbeiten?

Nicht allein. gatsby build erzeugt HTML, CSS und JS ohne laufenden POST-Empfänger. Du brauchst etwas außerhalb des Builds: eine Gatsby Function auf passendem Host, einen externen Dienst oder deine API.

Was ist mit Gatsby Functions?

Es funktioniert, macht aus der statischen Website aber eine mit Laufzeit. Genau das könntest du vermeiden. Versand, Spamfilter und Speicherung schreibst du ebenfalls selbst, und nur Hosts mit Gatsby Functions unterstützen das. Für ein Kontaktformular ist das viel Aufwand.

Brauche ich gatsby-plugin-react-helmet oder besondere Konfiguration?

Nein. Keine Konfiguration ist nötig. Es ist eine React-Komponente mit form und Submit-Handler: kein Plugin, keine GraphQL-Abfrage, kein Eintrag in gatsby-config.js.

Lohnt sich Gatsby 2026 noch?

Das entscheidest du. Viele Gatsby-Websites laufen gut. Das Framework hat aber an Dynamik verloren. Portable Teile werden sich später auszahlen. Ein Formular aus Markup und Ziel-URL gehört dazu.

verwandt

Funktioniert auch mit

Ein Postfach für jedes deiner Gatsby-Projekte.

Formulare und echte E-Mail-Adresse vereint, mit Benachrichtigungen in deinen Tools. Starte mit einem kostenlosen Konto.

Kostenloses Formular erstellen

Keine Kreditkarte nötig. Free umfasst ein Projekt und 50 Formularnachrichten pro Monat.