Was ein mailto-Formular wirklich tut
Ein normales Formular sendet seine Felder an eine Webadresse. Ein mailto-Formular hat stattdessen eine E-Mail-Adresse im Attribut action. Der HTML-Standard legt fest, was der Browser damit macht. Die E-Mail verschickt er dabei nie für Sie.
- Mit
method="GET"macht der Browser aus den Feldern Betreff und Kopfzeilen einer neuen E-Mail. - Mit
method="POST"landen die Felder im Text der E-Mail. Mitenctype="text/plain"ist er lesbar. Ohne ist er kodiert wie in einer URL.
In beiden Fällen öffnet sich das Mailprogramm mit einem Entwurf. Die Besucher müssen dort noch auf „Senden“ klicken. Ihre Seite bekommt keine Antwort und weiß nicht, ob etwas verschickt wurde.
Der HTML-Standard beschreibt nur diese Übergabe. Der Browser öffnet keine HTTP-Verbindung zu Ihrer Website und spricht keinen Mailserver an. Er baut eine mailto:-Adresse und übergibt sie dem Programm, das das Betriebssystem für dieses Schema eingetragen hat. Ist keins eingetragen, kann der Klick ins Leere gehen. Was ein bestimmtes Mailprogramm danach anzeigt, steht nicht im Standard und wird hier nicht behauptet.
So nutzen Sie mailto in einem HTML-Formular
Ein Mailto-Formular braucht drei Angaben zusammen. action ist eine mailto:-Adresse, keine nackte E-Mail. method ist post, wenn die Felder in den Text sollen. enctype ist text/plain, wenn dieser Text lesbar sein soll. Ersetzen Sie you@example.com durch die Adresse, die den Entwurf bekommen soll.
action muss eine URL sein. Wer nach „form action email“ sucht, schreibt oft action="you@example.com" ohne Schema. Das ist keine Mailto-Adresse. Der Browser behandelt den Wert als Pfad auf Ihrer Website. Es geht keine E-Mail raus, und kein Mailprogramm öffnet sich. Schreiben Sie mailto: vor die Adresse, oder lassen Sie Mailto weg.
Nach dem Klick auf Senden passiert auf dem Gerät nur dies:
- Der Browser sammelt die Felder. Er schickt sie nicht an Ihren Host. In der Netzwerkanalyse erscheint für diesen Klick keine Anfrage an Ihre Seite.
- Mit
method="post"undenctype="text/plain"werden die Felder zum Text einer neuen Nachricht. Jedes Feld ist eine Zeile,name=value. - Der Browser bittet das Betriebssystem, das Mailto-Programm zu öffnen. Das ist meist ein Mailprogramm, wenn eines installiert und als Standard gesetzt ist.
- Die Besucher müssen in diesem Programm noch auf Senden klicken. Ihre Seite erfährt das Ergebnis nicht. Eine Danke-Meldung können Sie darauf nicht stützen.
Das Beispiel bei W3Schools macht dasselbe. Dort stehen action="mailto:…", method="post" und enctype="text/plain", und das Mailprogramm öffnet sich. Das ist das erwartete Verhalten, kein Fehler im Beispiel. Öffnet sich nichts, hat das Gerät keinen Mailto-Handler. Das Tutorial kann das nicht reparieren.
Ein Mailto-Link kann trotzdem Betreff und erste Zeile setzen. Das Format steht im nächsten Abschnitt, nach RFC 6068. Soll das Formular ohne Mailprogramm funktionieren, senden Sie an eine https-Adresse. Ein fertiges Formular steht im HTML-Kontaktformular ohne Backend und auf der Seite HTML-Kontaktformular ohne PHP.
<form action="mailto:you@example.com" method="post" enctype="text/plain"> <label>Name <input type="text" name="name" autocomplete="name"></label> <label>E-Mail <input type="email" name="email" autocomplete="email"></label> <label>Nachricht <textarea name="message"></textarea></label> <button type="submit">Senden</button> </form>
Warum mailto-Formulare Anfragen verlieren
Jeder Schritt nach dem Klick hängt vom Gerät der Besucher ab. Genau dort gehen Nachrichten verloren:
- Kein Mailprogramm. Viele lesen ihre Mails im Browser, etwa bei GMX, Web.de oder Gmail. Ist kein Standardprogramm gesetzt, passiert beim Klick vielleicht gar nichts. Oder das System fragt, womit der Link geöffnet werden soll.
- Niemand klickt auf „Senden“. Der Entwurf geht auf, wird aber geschlossen, vergessen oder für bereits gesendet gehalten.
- Keine Bestätigung. Ihre Seite kann nicht „Danke, wir haben Ihre Nachricht“ anzeigen, weil sie das Ergebnis nicht kennt.
- Keine Kopie. Nichts wird gespeichert, eine verlorene Nachricht ist weg.
- Offene Adresse. Ihre E-Mail-Adresse steht im Quelltext, wo Spam-Bots sie einsammeln.
- Unlesbarer Text. Ohne
text/plainkommt etwaname=Anna&message=Guten%20Tagan.
Außerdem schreiben Besucher von ihrer privaten Adresse. Nicht jeder möchte die einer Firma geben, die er noch nicht kennt.
Dateien sind ein eigener Bruch. Ein Mailto-Formular kann eine PDF oder ein Foto nicht verlässlich anhängen. Mailprogramme gehen mit Dateifeldern unterschiedlich um, viele lassen sie weg. Wenn das Formular eine Datei braucht, senden Sie an ein Backend, das seine Grenzen nennt.
Mailto-Formular oder Form-Backend
Nehmen Sie Mailto, wenn ein Klick das eigene Mailprogramm öffnen soll und verlorene Entwürfe in Ordnung sind. Nehmen Sie ein Form-Backend, wenn die Nachricht gespeichert werden soll, die Seite eine Bestätigung zeigen soll und Ihre Adresse nicht im HTML steht.
| Mailto-Formular | Form-Backend | |
|---|---|---|
| Zustellbestätigung | Keine. Die Seite erfährt nicht, ob jemand auf Senden geklickt hat. | Der Server speichert die Nachricht und kann eine Danke-Seite zeigen. |
| Spam | Ihre Adresse steht auf der Seite, Scraper können Sie direkt anschreiben. Das Formular filtert nichts. | Die Adresse bleibt außerhalb der Seite. Ein Honeypot und Serverfilter können Bots aussondern. |
| Sichtbare Adresse | Die Empfängeradresse muss im HTML stehen. | Besucher senden an eine URL. Ihre Adresse bleibt im Dashboard. |
| Handy und Webmail | Braucht ein Mailprogramm. Webmail im Browser-Tab hat oft nichts zum Öffnen. | Läuft im Browser. Ein Mailprogramm ist nicht nötig. |
| Dateien | Nicht verlässlich. Viele Mailprogramme lassen Dateifelder weg. | Ein Backend kann Dateien annehmen, mit den Grenzen, die es nennt. |
Formgong ist ein solches Backend, nicht das einzige. Im Free-Tarif kommt die E-Mail als tägliche Zusammenfassung am nächsten Morgen um 08:00; Telegram sofort. Pro mailt jede Einsendung an bis zu drei Empfänger. Business an bis zu fünf. Ein PHP-Skript auf dem eigenen Host ist der andere ehrliche Weg. Spam und Zustellung liegen dann bei Ihnen.
Wann ein mailto-Link völlig in Ordnung ist
Ein mailto-Link ist etwas anderes als ein mailto-Formular. Der Link ist ehrlich: Wer auf „E-Mail schreiben“ klickt, erwartet, dass sich das Mailprogramm öffnet. Als zweiter Kontaktweg neben dem Formular funktioniert er gut.
Betreff und erste Zeile lassen sich im Link vorgeben. Das Format steht in RFC 6068. Umlaute, Leerzeichen und Zeilenumbrüche müssen kodiert sein, sonst schneiden manche Programme den Text ab.
mailto-Link mit Betreff und Text
<!-- Umlaute, Leerzeichen und Zeilenumbrüche sind als UTF-8 kodiert. --> <a href="mailto:hello@example.com?subject=Anfrage%20zu%20einem%20Projekt&body=Guten%20Tag%2C%0D%0A%0D%0Aich%20m%C3%B6chte%20gern%20wissen%2C%20ob"> Schreiben Sie uns zu Ihrem Projekt </a>
Ersetzen Sie das mailto-Formular durch ein funktionierendes
Ihre Felder bleiben, wie sie sind. Sie ändern zwei Dinge: das action und einen versteckten Schlüssel. Das Formular sendet dann an ein Form-Backend. Es speichert die Nachricht und zeigt den Besuchern eine Danke-Seite. Nichts hängt mehr von deren Mailprogramm ab.
Im Free-Tarif kommt die E-Mail als tägliche Zusammenfassung am nächsten Morgen um 08:00; Telegram sofort. Der Digest geht an einen Empfänger, in der Zeitzone des Kontos. Pro mailt jede Einsendung an bis zu drei Empfänger. Business an bis zu fünf. Die Tarife stehen unter Preise.
Das Beispiel unten nutzt Formgong. Ersetzen Sie fk_your_access_key durch den Schlüssel aus Ihrem Dashboard. Das Feld _lang legt die Sprache der Danke-Seite fest, _subject den Betreff der Benachrichtigung. Das versteckte Feld botcheck fängt einfache Bots ab. Ihre Adresse steht nicht mehr im Quelltext. Dieselbe Form zum Einfügen ist die HTML-Kontaktformular-Vorlage. Die Einrichtung für eine statische Seite steht unter Kontaktformular für HTML.
<!-- Vorher: <form action="mailto:you@example.com" method="POST" enctype="text/plain"> -->
<form action="https://formgong.com/submit" method="POST">
<input type="hidden" name="access_key" value="fk_your_access_key">
<input type="hidden" name="_lang" value="de">
<input type="hidden" name="_subject" value="Neue Nachricht von der Website">
<label>Name <input type="text" name="name" required autocomplete="name"></label>
<label>E-Mail <input type="email" name="email" required autocomplete="email"></label>
<label>Nachricht <textarea name="message" required></textarea></label>
<div aria-hidden="true" style="position:absolute;inset-inline-start:0;top:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)">
<input type="text" name="botcheck" tabindex="-1" autocomplete="off">
</div>
<button type="submit">Senden</button>
</form>Andere Wege, Formulardaten zu empfangen
- Ein Form-Backend.
actionändern, fertig. So arbeiten Formgong, Formspree, Web3Forms und andere. Unterschiede bei Limits und Funktionen zeigt der Vergleich von Formular-Diensten. - Ein eigenes Skript. Eine PHP-Datei oder eine Serverless-Funktion nimmt das Formular an und versendet die Mail. Sie behalten alles in der Hand, kümmern sich aber auch selbst um Zustellung und Spam.
- Ein gehostetes Formular. Google Forms und ähnliche Dienste liefern einen Link oder ein Embed. Schnell, sieht aber nach deren Produkt aus, nicht nach Ihrer Website.
Ein komplettes Formular Schritt für Schritt zeigt der Artikel HTML-Kontaktformular ohne Backend. Alle versteckten Felder von Formgong stehen in der HTML-Dokumentation.
Prüfen Sie das Formular vor dem Veröffentlichen
Fügen Sie den HTML-Code in den kostenlosen Formular-Check ein. Er markiert ein action, das keine Webadresse ist, etwa mailto:, als Fehler. Außerdem prüft er Feldnamen, Methode und Honeypot.
Senden Sie danach eine echte Testnachricht von der veröffentlichten Seite, am Handy und am Laptop. Prüfen Sie, ob die Mail ankommt und die Besucher eine klare Danke-Seite sehen.
Häufig gestellte Fragen
Verschickt ein mailto-Formular eine E-Mail?
Nein. Der Browser öffnet nur das Mailprogramm der Besucher mit einem Entwurf. Die Nachricht geht erst raus, wenn ein Programm eingerichtet ist und dort jemand auf „Senden“ klickt.
Warum passiert beim Klick auf das mailto-Formular nichts?
Meist ist auf dem Gerät kein Standard-Mailprogramm eingerichtet. Viele nutzen Webmail im Browser, dann weiß der Klick nicht, wohin.
Kann ich meine Adresse im mailto-Formular verstecken?
Nein. Die Adresse muss im Quelltext stehen, damit der Browser sie nutzen kann, also lesen Bots sie auch. Ein Form-Backend hält Ihre Adresse aus der Seite heraus.
Schadet ein mailto-Link der SEO?
Nein. Er ist ein normaler Link, den Suchmaschinen ignorieren. Das Problem sind verlorene Anfragen, nicht das Ranking.
Sendet form action email die Nachricht?
Nein. action muss eine URL sein. Eine E-Mail-Adresse ohne mailto: verschickt nichts. action="mailto:you@example.com" öffnet nur einen Entwurf. Gesendet wird erst, wenn jemand im Mailprogramm auf Senden klickt.
Quellen und Dokumentation
Offizielle Quellen zu dieser Anleitung: HTML Standard: form submission, RFC 6068: The mailto URI scheme, MDN: the form element. Formgong für HTML, wo die Daten gespeichert werden.
Diesen Artikel als Markdown lesenVerwandte Anleitungen
- Lovable-Formular an E-Mail und Telegram senden
- HTML-Kontaktformular ohne Backend: ein funktionierendes Beispiel
- So senden Sie Website-Einsendungen an Telegram
- Kontaktformular sendet keine E-Mail? So finden Sie die Ursache
- Website-Leads in Telegram verwalten – ohne CRM
- Formular-Backend für KI-Websites: Lovable, Bolt, v0, Cursor
- Telegram-Bot fürs Kontaktformular: selbst bauen?
- Formular-Backend und DSGVO: 7 Prüfpunkte
- Kontaktformular-Spamschutz ohne Captcha
- HTML-Formular in Google Sheets: 2 kostenlose Wege
- Webflow-Formular-Limit: was tun nach 50?
- Turnstile vs. reCAPTCHA vs. hCaptcha im Vergleich
- Contact Form 7 und Elementor an Telegram senden
- Squarespace-Formular sendet keine E-Mail?
- Shopify-Kontaktformular: Wohin gehen Mails?
- Google Formular an Telegram: kostenlos
- Wix-Kontaktformular sendet keine E-Mail?
- EU-/DSGVO-Formspree-Alternativen im Vergleich
- WordPress-Kontaktformular ohne Plugin
- Kontaktformulare, die nichts senden: 793 KI-Websites im Test