# Ein Website-Formular an Gmail senden (und warum mailto: scheitert)

> Bekomm Formulareinsendungen in Gmail ohne mailto:-Links, App-Passwörter oder Apps Script, dann beschrifte sie, halte sie aus dem Spam heraus und antworte aus Gmail.

Veröffentlicht am 2026-10-25 · https://ikiform.com/de/guides/send-form-to-email/gmail

Sende das Formular an ein Formular-Backend und füge deine Gmail-Adresse als Empfänger hinzu; verwende keine `mailto:`-action, die nur die Mail-App des Besuchers öffnet. Leg dann einen Gmail-Filter für den Absender an, damit Einsendungen den Spam umgehen und ein eigenes Label bekommen. **Reply** in Gmail schreibt dem Besucher, von deiner eigenen Adresse.

## Was hier anders ist

Gmail ist ein Postfach, kein Versanddienst für deine Site. Es hat keine URL, an die ein Formular senden könnte, also führt jeder Weg zu Gmail über etwas anderes. Das Erste, was die meisten versuchen, ist `mailto:`:

`Das Formular, das zu funktionieren scheint`:

```html
<form action="mailto:you@gmail.com" method="post" enctype="text/plain">
  <input name="name" />
  <input name="email" type="email" />
  <textarea name="message"></textarea>
  <button>Send</button>
</form>
```

Es funktioniert auch, auf deinem Rechner. Du klickst auf **Send**, deine Mail-App öffnet sich mit den Feldern im Text, und du schickst es an dich selbst. Für einen Besucher sieht das anders aus:

Diagramm: Was ein mailto:-Formular auf dem Gerät eines Besuchers macht

1. Der Besucher klickt auf Senden. Der Browser sendet das Formular nirgendwohin; er übergibt einen mailto:-Link an das Betriebssystem.
2. Ist keine Mail-App und kein Web-Handler eingerichtet, was auf Arbeitslaptops und bei Gmail-Nutzern im Browser häufig ist, passiert sichtbar nichts, oder das System fragt, welche App es nehmen soll.
3. Ist eine eingerichtet, öffnet sich ein Entwurf in der eigenen Mail-App des Besuchers, mit den Feldern im Text.
4. Der Besucher muss ein zweites Mal auf Senden klicken, von seinem eigenen Konto aus. Viele schließen den Entwurf stattdessen, und du erfährst nie, dass sie es versucht haben.

Jeder Schritt nach dem ersten passiert auf dem Gerät des Besuchers, du kannst also nicht sehen, wo Leute abspringen.

Wenn doch eine Nachricht durchkommt, besteht der Text aus rohen `name=value`-Zeilen, weil die Kodierung `text/plain` genau das erzeugt:

`Was ankommt`:

```text
name=Ada Lovelace
email=ada@example.com
message=Hi, do you take on small bathroom jobs in March?
```

Die anderen Wege zu Gmail funktionieren, aber jeder braucht einen Server, den du betreibst:

| Weg | Was er braucht | Haken |
| --- | --- | --- |
| Gmail-SMTP mit einem App-Passwort | Einen Server, der Code ausführt, und die Bestätigung in zwei Schritten im Google-Konto | Mit dem Passwort kann man von überall in deinem Namen senden, es darf also nie in den Browser gelangen. Google begrenzt außerdem, wie viel ein privates Konto pro Tag versendet |
| Google Apps Script mit `MailApp` | Ein Skript, das als Web-App bereitgestellt wird | Private Konten können aus Skripten 100 Empfänger pro Tag anschreiben. Die URL ist öffentlich und ohne Spamschutz, ein einziger Bot kann das Kontingent also aufbrauchen |
| Ein Formular-Backend | Die URL des Backends in `action` | Die E-Mail kommt von der Adresse des Dienstes, nicht von deiner. Reply-To löst den Teil, auf den es ankommt |

Apps Script verdient einen genaueren Blick, weil die meisten Tutorials diesen Weg vorschlagen. Du schreibst eine `doPost`-Funktion, stellst sie als Web-App bereit, die jeder aufrufen kann, und richtest das Formular auf ihre URL aus. Das funktioniert, aber ein einfacher Formular-Post lässt den Besucher auf einer Seite von Googles Domain statt deiner zurück, jeder Bot, der die URL findet, kann das Tageskontingent aufbrauchen, und das Skript läuft in deinem Namen, ein Fehler darin kann also von deinem Konto aus jedem eine E-Mail schicken. Außerdem ist ab dann jede Änderung an den Feldern des Formulars deine Sache.

## Das Formular an Gmail senden

Hier ein Formular für einen kleinen Handwerksbetrieb. Das Feld `job` macht das Postfach leicht überschaubar, und `email` ist so benannt, dass Antworten an den Besucher gehen:

`contact.html`:

```html
<form action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post">
  <label for="name">Your name</label>
  <input id="name" name="name" autocomplete="name" required />

  <label for="email">Email for our reply</label>
  <input id="email" name="email" type="email" autocomplete="email" required />

  <label for="job">What do you need?</label>
  <select id="job" name="job" required>
    <option value="">Choose one</option>
    <option value="repair">A repair</option>
    <option value="quote">A quote for a new job</option>
    <option value="other">Something else</option>
  </select>

  <label for="message">Details</label>
  <textarea id="message" name="message" rows="5" required></textarea>

  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden />
  <button>Send to our inbox</button>
</form>
```

1. Leg ein Formular in Ikiform an und ersetze `frm_xxxxxxxxxxxxxxxx` durch seine ID.
2. Wenn du dich mit deiner Gmail-Adresse registriert hast, bekommst du die E-Mails bereits als Owner des Workspace. Andernfalls öffne die Einstellungen **Notifications** des Formulars, gib die Gmail-Adresse unter **Add someone outside the workspace** ein und klick auf **Send link**.
3. Öffne die Bestätigungs-E-Mail in Gmail und bestätige. Bis dahin zeigt die Adresse **Waiting for confirmation** und bekommt nichts.
4. Füge deine Domain unter **Allowed domains** des Formulars hinzu, veröffentliche die Seite und sende einen Test.

## Mit einem Gmail-Filter aus dem Spam heraushalten

Die erste E-Mail von einem neuen Absender kann in **Spam** oder **Promotions** landen. Ein Filter auf den Absender behebt das dauerhaft. Öffne in Gmail die Suchoptionen, trag `notifications@ikiform.com` bei **From** ein, klick auf **Create filter** und hake dann **Never send it to Spam**, **Apply the label**, **Always mark it as important** und **Categorize as: Primary** an, was sie aus **Promotions** heraushält.

Oder importiere den Filter. Das ist das Format, das Gmails eigener Filter-**Export** schreibt; Google dokumentiert es nicht separat, falls ein Import also scheitert, leg den Filter wie oben von Hand an. Speichere ihn als `mailFilters.xml` und geh dann zu **Settings**, **See all settings**, **Filters and Blocked Addresses**, **Import filters**:

`mailFilters.xml`:

```text
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:apps="http://schemas.google.com/apps/2006">
  <title>Mail Filters</title>
  <entry>
    <category term="filter"></category>
    <title>Mail Filter</title>
    <content></content>
    <apps:property name="from" value="notifications@ikiform.com"/>
    <apps:property name="label" value="Website"/>
    <apps:property name="shouldNeverSpam" value="true"/>
    <apps:property name="shouldAlwaysMarkAsImportant" value="true"/>
    <apps:property name="smartLabelToApply" value="^smartlabel_personal"/>
  </entry>
</feed>
```

Leg zuerst das Label **Website** an oder benenne es in der Datei um. Ein Filter deckt jedes Formular ab, weil alle Benachrichtigungen von derselben Adresse kommen. Um Formulare auf verschiedene Labels aufzuteilen, filtere stattdessen nach dem Betreff, etwa `subject:("New submission: Quote request")`.

> Gmail ignoriert Punkte und alles nach einem Pluszeichen im Teil vor dem @. Fügst du `you+site@gmail.com` als Empfänger hinzu, landet die Mail in deinem normalen Postfach, und ein Filter auf **To** kann Site-Mails dann von allem anderen unterscheiden. Sie zählt als externe Adresse, bestätigt also wie jede andere per Link.

## Aus Gmail antworten

Gmail beachtet den Reply-To-Header, daher adressiert **Reply** den Besucher. Deine Antwort geht von deiner Gmail-Adresse raus, ohne dass Ikiform im Verlauf auftaucht.

- Um stattdessen von deiner geschäftlichen Adresse zu antworten, füge sie unter **Settings**, **Accounts and Import**, **Send mail as** hinzu und wähle sie beim Antworten in der Zeile **From** aus.
- Gmail fasst Benachrichtigungen mit demselben Betreff eventuell zu einer Konversation zusammen, weil der Betreff immer `New submission:` plus der Name des Formulars ist. Schalte **Conversation view** in den Gmail-Einstellungen aus, wenn du lieber eine Zeile pro Nachricht siehst.
- Stündliche Sammel-E-Mails haben kein Reply-To, weil sie viele Besucher abdecken. Antworte auf diese über die Links im Dashboard.

## Prüfen, ob es funktioniert

1. Füll das Formular auf deiner Seite aus und sende es ab. Du landest auf deiner Dankeseite oder der gehosteten von Ikiform.
2. Such die E-Mail in Gmail. Sie hat dein Label und liegt nicht in **Spam** oder **Promotions**.
3. Klick auf **Reply**. In der Zeile **To** steht die Adresse, die ins Formular getippt wurde.
4. Sende einen Post mit ausgefülltem Honeypot, `_gotcha=bot`. Er bekommt trotzdem eine Erfolgsantwort, aber die Einsendung wird als Spam gespeichert und löst weder E-Mail noch Webhook aus.
5. Nichts angekommen? Stell den Statusfilter im Dashboard auf **Spam**. Spam bekommt dieselbe Erfolgsantwort wie eine echte Einsendung.

## Stolperfallen

- **Google-Workspace-Aliasse.** Ist der Empfänger ein Alias oder eine Google Group, entscheiden die Einstellungen der Gruppe, ob externe Absender erlaubt sind. Sende einen Test, bevor du dich darauf verlässt.
- **Bestätigung landet im Spam.** Die E-Mail mit dem Bestätigungslink kommt ebenfalls von Ikiform. Wenn sie nicht auftaucht, schau in **Spam** und markiere sie als kein Spam.
- **Mehrere Gmail-Adressen.** Jedes Formular mailt an insgesamt bis zu 10 Adressen, und jede externe Adresse bestätigt separat.
- **Alte mailto:-Links an anderer Stelle.** Ein `mailto:`-Link im Footer ist als Link in Ordnung. Das Problem ist nur `mailto:` als `action` eines Formulars.

## Fragen

### Kann ich Formulareinsendungen an eine Google-Workspace-Adresse senden?

Ja. Eine Workspace-Adresse funktioniert wie jeder andere Empfänger. Ist es eine Google Group oder ein Alias, prüfe, ob die Gruppe Mail von externen Absendern annimmt, und sende dann einen Test.

### Warum sendet mein mailto:-Formular nichts?

Eine mailto:-action sendet nie. Sie bittet das Gerät des Besuchers, eine Mail-App mit einem Entwurf zu öffnen. Ist keine eingerichtet, passiert sichtbar nichts, und ist eine eingerichtet, muss der Besucher darin trotzdem noch auf Senden klicken.

### Kann ich Gmail-SMTP verwenden, um Formular-E-Mails zu senden?

Nur von einem Server, den du betreibst, mit einem App-Passwort für ein Konto mit Bestätigung in zwei Schritten. Leg dieses Passwort niemals in Browser-Code ab; damit lassen sich Mails in deinem Namen senden.

### Wie verhindere ich, dass Formular-E-Mails in Gmail im Spam landen?

Leg einen Gmail-Filter für Mails von notifications@ikiform.com an und hake Never send it to Spam an. Vergib gleichzeitig ein Label, damit Formularnachrichten leicht zu finden sind.

### Kann ich aus Gmail der Person antworten, die das Formular ausgefüllt hat?

Ja, wenn das E-Mail-Feld des Formulars email, email_address, your_email, reply_to oder contact_email heißt oder das Formular ein Feld _replyto sendet. Gmail setzt den Besucher dann in die Zeile To, wenn du auf Reply klickst.

## Weitere Anleitungen

- [Ein Formular an deine E-Mail senden](https://ikiform.com/de/guides/send-form-to-email.md): Bekomm jede Formulareinsendung ohne Mailserver in dein Postfach: warum mailto: und PHPs mail() scheitern und ein Setup, das Spam filtert und dich antworten lässt.
- [Aus deinem Postfach antworten](https://ikiform.com/de/guides/send-form-to-email/reply-to.md): Sorg dafür, dass Antworten auf eine Formular-Benachrichtigung an die Person gehen, die das Formular ausgefüllt hat: welche Feldnamen funktionieren, wann _replyto nötig ist und warum Antworten fehlgehen.
- [Ohne PHP](https://ikiform.com/de/guides/send-form-to-email/without-php.md): Ersetze ein contact.php-Skript, das mail() aufruft, durch ein Formular, das an einen gehosteten Endpunkt sendet, mit deinen Feldnamen, deiner Dankeseite und Antworten.
- [Mehrere Empfänger](https://ikiform.com/de/guides/send-form-to-email/multiple-recipients.md): Mail ein Formular an dein ganzes Team oder leite jede Nachricht nach Thema an die richtige Person, ohne dass das Formular selbst bestimmt, wer die Mail bekommt.
- [Alternative zu EmailJS](https://ikiform.com/de/guides/send-form-to-email/emailjs-alternative.md): Lös ein Kontaktformular von EmailJS: warum E-Mail-Schlüssel im Browser ein Risiko sind, was sich im Code ändert und worauf du verzichtest, etwa die automatische Antwort.
- [Next.js](https://ikiform.com/de/guides/send-form-to-email/nextjs.md): Zwei Wege, ein Next.js-Formular per Server Action zu mailen: selbst mit Resend oder Nodemailer senden oder an ein Formular-Backend weiterleiten, ehrlich verglichen.
