barrierefreies Webdesign Ingo Turski

zum Inhalt

Ingo

Tips und Tricks:eMail-Adressen vor Spam-Robots schützen

Das Teledienstegesetz fordert im Impressum nicht nur Angaben zur Ermöglichung einer „schnellen elektronischen Kontaktaufnahme“ und „unmittelbaren Kommunikation“, sondern auch die „Adresse der elektronischen Post“, womit nach der Gesetzesbegründung eindeutig eine eMail-Adresse gemeint ist. Leider durchsuchen sog. "Harvester" das Internet nach Adressen für den Versand von Spam-Mails. Es ist daher ratsam, es diesen Spam-Robots nicht zu leicht zu machen, ohne dabei die gesetzlich geforderte Kontaktaufnahme zu verhindern.

Hierzu verwende ich eine Kombination aus CSS, JavaScript und des mathematischen Symbols , das dem @ etwas ähnlich sieht (semantisch als »partiell« oder »Teil von« auch in etwa passt) und dieses Erkennungszeichen einer eMail-Adresse zunächst ersetzt:

Meine Adresse der elektronischen Post:

<style type="text/css">
  .email>ins:before {content: "@"; text-decoration: none}
  .email ins, .email del {text-decoration: none}
  .email>del {display: none}
  *:first-child+html .email>del {display:inline}  /* Workaround fuer IE 7 */
</style>

<script type="text/javascript">
  function noSpam() {
    var a = document.getElementsByTagName("a");
    for (var i = a.length-1; i >= 0; i--) {
      if (a[i].className.search(/\bemail\b/) != -1) {
        var email = a[i].firstChild.data + "@" + a[i].lastChild.data;
        a[i].href = "mailto:" + email;
        a[i].innerHTML = email;
      }
    }
  }
// window.onload=noSpam;
</script>

<body onload="noSpam()">
Meine Adresse der elektronischen Post:
<a class="email" href="mail.php?ingo2">ingo2<del>&part;</del><ins></ins>1ngo.de</a>

Der eMail-Link erhält die (Mikroformat-)Klasse "email" und als Ziel zunächst ein alternatives Kontaktformular. Über CSS wird für moderne Browser das Platzhaltersymbol &part; (das ohnehin als gelöscht ausgezeichnet ist) ausgeblendet und stattdessen das korrekte Zeichen @ in dem zuvor leerem ins-Element eingefügt. Sofern JavaScript aktiviert ist, kann schließlich onload das ursprüngliche Linkziel durch einen mailto:-Link mit der im HTML eingetragenen eMail-Adresse ausgetauscht werden.
Alternativ zum Funktionsaufruf im <body> können Sie auch die Kommentarzeichen // im JavaScript entfernen. Die Funktion findet sämtliche Links mit der Klasse "email", wobei der Reguläre Suchausdruck auch die Angabe weiterer Klassen ermöglicht.

Im Ergebnis zeigen alle modernen Browser die eMail-Adresse mit dem @ als Trennzeichen an. Sofern JavaScript aktiviert ist, wird auch im Microsoft Internet Explorer das Platzhaltersymbol ausgetauscht und in allen Browsern wird die eMail-Adresse als Linkziel gesetzt.
Im schlimmsten Fall - ungenügende CSS- und JavaScript-Unterstützung - wird zumindest ingo1ngo.de angezeigt und ist mit dem alternativen Kontaktformular verlinkt. Dies sollte (ohne Gewähr) zumindest die gesetzliche Anforderung erfüllen.

Eine Link-Alternative ohne Kontaktformular

Wenn keine serverseitige Unterstützung zur Verfügung steht, könnte bei deaktiviertem Javascript auch eine HTML-Seite aufrufen werden, in der die eMail-Adresse wie oben beschrieben kodiert zum manuellen Herauskopieren angegeben ist. Die verlinkte Seite sollte eine kurze Erklärung zur Kodierung enthalten und - bei verschiedenen so versteckten eMails - die gewünschte Adresse über einen Anker direkt anspringen. "Meine Adresse der elektronischen Post" oben ist auch nicht mit "mail.php" verlinkt, sondern mit "impressum.html#ingo".