E-Mail Adressen vor Spam schützen

23. June, 2009 · Keine Kommentare

Jeder hat sie schonmal gesehen, die schönen “ich [ät] website [punkt] com” Verweise auf die E-Mail Adresse eines Schreiberlings. Warum macht er sowas? Nun, dass will ich im Folgenden erzählen und auch wie man es richtig macht.

Warum Mail-Masking?

Ganz einfach: der Autor will keinen Spam erhalten! Die bösen Spammer haben Robots, die tagein tagaus das Web nach E-Mails durchsuchen. Dabei werden sogenannte Regular Expressions verwendet, eine Art Aufbaumuster. Vereinfach gesagt, suchen diese Robots nach Textbausteinen die das Muster “name@webseite.tld” haben, wichtig dabei ist vor allem die Position des @-Zeichen und des Punktes. Der Gedanke hinter dem Mail-Masking ist nun, dieses Muster aufzubrechen, indem z.B. kein @ mehr darin vorkommt.

Falsche Links zerstören die guten Intentionen

Nun gibt es allerdings einige Webmaster, die diese Technik benutzen und anschließend den Text noch mit einem “mailto:ich@website.com” verlinken, so dass der Leser komfortabel daraufklicken kann, um das Mail Programm zu starten. Und hier liegt der Fehler! Wie der erfahrene Webentwickler sicher weiss, suchen die Robots nicht die “sichtbare” Website ab, sondern ihren Quelltext. Und dort ist mit dem gesetzten Link jetzt die E-Mail Adresse im Klartext vorhanden und die Bemühungen sie unkenntlich zu machen waren vergebens. Selbiges gilt natürlich auch für eine ähnliche Lösung, bei der die E-Mail als Grafik eingebunden wird. Grundsätzlich ist das natürlich eine tolle Idee (abgesehen von der Tatsache, dass es etwaige Fontprobleme verursachen kann), deren zusätzlicher Aufwand aber durch das Setzen des Links in Klartext komplett umsonst war. Solche Patzer geschehen häufiger als gedacht, so war ich erstaunt, dass zum Beispiel die eigentlich gut gemachte Website der Universität Marburg zwar artig die E-Mail Adressen als Grafik anzeigt, dennoch aber seelenruhig die Adresse in Klartext im Quelltext verlinkt – wenigstens wurde das Problem umgehend nach einem Hinweis behoben.

Wie geht es richtig?

  • Gar keine mailto-Links setzen

    Wer technisch nicht so versiert ist oder keinen Zugriff auf den Quellcode der Website hat, sollte den Link am Besten ganz weglassen. So kann man nichts falsch machen und der Betrachter, der wirklich eine Mail schreiben will, kann die Mail auch kurz per Hand in sein E-Mail Programm eintippen, vorausgesetzt er versteht was mit “ich [ät] website [punkt] com” gemeint ist.

  • Javascript zum Schutz der Mail verwenden

    Wer Zugriff auf den Code der Website hat, kann mit einem einfachen Javascript die Mails effektiv schützen:

    <script type="text/javascript">
    // <![CDATA[
    function mailto(host,name,tld) {
    window.location = 'mailto:'+name+'@'+host+'.'+tld;
    }
    // ]]>
    </script>

    Eine verlinkte E-Mail Adresse würde dann in etwa so aussehen:

    <a onclick="mailto('hjacob','kontakt','com'); return false;" href="#">
    kontakt [ät-zeichen] hjacob [punkt] com</a>
    

    Wie man sieht, enthält der Link die E-Mail Adresse nicht mehr in Klartext, sondern ruft stattdessen die Javascript Funktion “mailto()” auf, die dann im Falle eines Klickes des Besuchers, die Adresse zusammensetzt. Natürlich muss die Funktionsdefinition (also der erste Teil) nicht bei jedem Link eingefügt werden – es reicht die Funktion einmal im Dokument zu definieren. Danach kann man einfach immer wieder die mailto() in den Links verwenden (wie im zweiten Teil).

  • Die ASCII Variante

    Mittels ASCII Codes kann man Zeichen ersetzen. Der Browser wandelt diese automatisch in die gewohnten Zeichen um. So ist der ASCII Code “& #64;” das Equivalent zu dem @-Zeichen. Eine mit ASCII formartierte E-Mail sieht dann so aus:

    ich@website.com

    Wer es ganz heiß mag, kann die E-Mail auch komplett in ASCII schreiben, das sähe dann so aus:

    ich@website.com

    Allerdings würde ich von dieser Lösung abraten, da intelligentere Robots diesen Trick leicht erkennen können.

  • Kontakt Formular anstatt Veröffentlichung der Mail

    Diese Variante ist die Sicherste – da die E-Mail Adresse gar nicht erst veröffentlicht wird. Allerdings setzt sie auch voraus, dass man selbst Herr über die Website ist oder zumindest an anderer Stelle ein Kontaktformular zur Verfügung hat, auf das man verlinken kann. Das Formular läßt den Benutzer einen Text eingeben und generiert daraufhin automatisch eine E-Mail, die dann auch direkt an den Verfasser geschickt wird. Wie so etwas aussieht, kann man bei Kontaktformular.org sehen.

Zusammenfassung

Die Formular Lösung scheint die beste Lösung zu sein. Was zum einen ein Vorteil ist, ist allerdings auch ein Nachteil: der Besucher sieht die E-Mail Adresse nun gar nicht mehr und ein Kontaktformular verursacht bei einigen Besuchern akuten Brechreiz. So gesehen ist die Variante: E-Mail als Grafik + verlinktes Kontakt Formular meines Erachtens die beste Lösung, allerdings auch die Aufwendigste. Dabei ist aber wie bereits erwähnt zu beachten, dass E-Mail Adressen als Grafiken gespeichert so einige optische Probleme verursachen können – so gibt es unterschiedliche Schriftarten auf den Betriebssystemen, unterschiedliche Behandlung von Schriftglättung etc.

Wer also Wert auf ein perfektes Aussehen der Schrift legt, sollte die E-Mail Adressen nicht als Grafik speichern. Dann bleibt nur noch die Javascript Lösung übrig.

Ihren XING-Kontakten zeigen Artikel bei Xing veröffentlichen
Kategorie:Anleitung · Guide · Tutorial · Webdev
Tags: · · · · · · · · · · · · ·

Vorheriger Eintrag: Nächster Eintrag:

meet me in the interwebs
Kaffee-Kasse
Flattr ist ein sehr gut gemachter Micropayment Dienst, der es endlich ermöglicht auf faire Weise Geld zu spenden und einzunehmen.