Steht deine Adresse irgendwo als Klartext im Website-HTML, gehe davon aus, dass sie gesammelt wird. Verschleierungstricks wie name [at] domain bremsen die einfachsten Bots und nerven alle Menschen. Wirklich hilft, keine sammelbare Adresse zu veröffentlichen: Nutze ein Formular mit Honeypot und bei Bedarf eine eigene austauschbare Projektadresse statt deines privaten Postfachs.
So funktioniert das Adressensammeln wirklich
E-Mail-Sammler sind einfache Crawler. Sie rufen Seiten wie Suchmaschinen ab und durchsuchen das HTML mit regulären Ausdrücken nach Mustern wie [email protected]. Sie müssen nicht besonders schlau sein, denn die meisten Websites liefern ihnen genau das Gesuchte: einen mailto: Link. Einfacher geht das Sammeln kaum: Die Adresse steht in einem href, in einem Standardformat in einem Attribut, das Crawler ohnehin auslesen. Ein besseres Signal könnte man kaum bauen.
Viele unterschätzen die Folgen. Eine gesammelte Adresse erhält nicht nur einmal Spam. Sie landet in Listen, die verkauft, zusammengeführt und weiterverkauft werden. Ein Leak von vor Jahren erzeugt noch heute Spam. Rückgängig machen geht nicht: Nur aggressives Filtern oder die Aufgabe der Adresse bleiben.
Der Vollständigkeit halber: Eine ganz neue Website ohne eingehende Links wird möglicherweise länger nicht besucht. Verlinkte Seiten werden aber aufgerufen, und ein einziger Besuch eines Sammlers genügt.
Klassische Tricks und warum sie meist scheitern
Textverschleierung: schreiben name [at] domain [dot] com. Dieses Muster ist Jahrzehnte alt. Sammler kennen reguläre Ausdrücke für die üblichen Varianten: [at], (at), AT, zusätzliche Leerzeichen und mehr. Echte Besucher müssen deine Adresse dagegen von Hand zusammensetzen und hoffen, dass sie stimmt. Du machst es Menschen schwerer, um nur die einfachsten Bots abzuwehren.
JavaScript-Codierung: Die Adresse wird zur Laufzeit aus codierten Teilen zusammengesetzt. Das hilft tatsächlich gegen Sammler, die nur HTML abrufen. Doch Headless-Browser sind günstig, und professionelle Sammler rendern Seiten vor der Suche. HTML-Entity-Codierung (he…) ist noch schlechter: Jeder Parser normalisiert Entities vor dem Abgleich. Es hält also nichts auf. Die Nachteile trägst du: Ohne JavaScript funktioniert die Adresse nicht, und je nach Umsetzung scheitern auch Kopieren und Screenreader.
Bilder deiner Adresse: die schlechteste der drei Lösungen. Screenreader erhalten nichts; mit der Adresse als Alternativtext wäre der Zweck verfehlt. Kopieren geht nicht, auf hochauflösenden Bildschirmen sieht es schlecht aus. Und OCR ist günstig genug, dass entschlossene Sammler auch Bilder auslesen.
Der gemeinsame Nenner: Verschleierung ist ein Wettrüsten. Angreifer ändern eine Regex-Zeile, du verschlechterst echte Nutzererfahrungen. Es bremst das Sammeln, verhindert es aber nicht. Und es hilft nicht gegen Leaks aus Git-Commits, Newslettern oder fremden Kontaktlisten.
Was wirklich funktioniert
Zwei Schritte, die sich ergänzen.
1. Ein Kontaktformular mit Honeypot
Ein Formular veröffentlicht keine Adresse im HTML. Es gibt also nichts zu sammeln. Einsendungen gehen an einen Endpunkt und landen im Postfach. Auch Formulare ziehen Spam an: Bots füllen jedes gefundene Formular mit Müll. Die günstigste wirksame Gegenmaßnahme ist ein honeypot: ein verborgenes Feld, das Menschen nicht sehen. Einige Bots füllen jedes Eingabefeld aus; solche Einsendungen werden verworfen. Bessere Bots können es überspringen. Deshalb bleiben serverseitige Inhaltsprüfungen, Kampagnenerkennung und automatische Verifizierung aktiv.
<form action="https://mailcontact.app/api/forms/your-form-id" method="POST" data-mailcontact-form>
<label>Name <input name="name" autocomplete="name" /></label>
<label>Email <input name="email" type="email" required /></label>
<label>Message <textarea name="message" required></textarea></label>
<button type="submit">Send</button>
<p data-contact-status role="status" aria-live="polite"></p>
</form>
<script defer src="https://mailcontact.app/forms/v1.js"
crossorigin="anonymous" referrerpolicy="no-referrer"></script>von Mailcontact Formular-Endpunkt akzeptiert einfaches FormData oder JSON jeder Herkunft und antwortet mit JSON. Das Skript fügt das verborgene Prüffeld ein, übernimmt die Verifizierung, hält Besucher auf der Seite und bewahrt Entwürfe bei Fehlern. Free zeigt einen sichtbaren Link „Processed by mailcontact.app“, Pro und Plus nicht. Die Prüfungen erläutert die Spamschutz-Dokumentation.
2. Eine eigene Adresse pro Projekt
Manche nutzen keine Formulare. Sie schreiben lieber aus ihrem Mailprogramm, leiten Verläufe weiter oder behalten eine Kopie im Gesendet-Ordner. Das ist okay. Gib ihnen nur nicht deine private Adresse. Jedes Mailcontact-Projekt erhält sein eigenes Adresse [email protected] das sofort funktioniert, ohne DNS-Einträge oder eigenen Mailserver.
Es geht um begrenzten Schaden. Wird eine Projektadresse gesammelt, landet Spam nur dort, nicht im Postfach deiner Bank. Da sie austauschbar ist, kannst du sie stilllegen und ersetzen. Das hilft wirklich: die Adresse nicht unlesbar machen, sondern weniger schutzbedürftig.
Die praktische Einrichtung
- Mache ein Kontaktformular mit Honeypot zu deinem Hauptkanal. Für einen schnellen Einstieg hilft der Kontaktformular-Generator erstellt das Markup für dich. Stackspezifische Anleitungen gibt es für statische Websites und GitHub Pages, wo eine im HTML veröffentlichte Adresse oft als einzige Möglichkeit erscheint.
- Veröffentliche deine Projektadresse als Klartext für alle, die E-Mail bevorzugen. Ja, Klartext. Das ist okay, denn die Adresse lässt sich ersetzen.
- Beide Quellen führen in dasselbe Projektpostfach, mit Benachrichtigungen in Discord oder per E-Mail, statt ständig ein Dashboard zu prüfen.
- Deine private Adresse erscheint nirgends im HTML.
Dadurch verschwindet Spam nicht ganz. Honeypots fangen einfache Bots ab, keine bezahlten Menschen. Öffentliche Adressen erhalten irgendwann Spam. Der Unterschied: Du kannst ein Projekt gezielt absichern oder dessen Adresse wechseln, statt jahrelangen Spam auf einer unveränderlichen Adresse zu ertragen.
Wenn du ein Formular auf einer statischen Website neu einrichtest, diese Anleitung erklärt die Möglichkeiten.