Thema vom 8.9.2004 (Woche 21): E-Mail-Adressen spamsicher aufs Web stellen

Wer seine E-Mail-Adresse auf dem Web veröffentlicht, muss damit rechnen, dass sie von Spammern benutzt wird. Spammer benutzen Programme, welche das Internet gezielt nach E-Mail-Adressen absuchen. Sie durchsuchen dabei nach Zeichenketten, die eine gültige E-Mail-Adresse darstellen könnten. Dazu gehört insb. das @-Zeichen.

Mit JavaScript und einem kleinen Trick ist es möglich, eine E-Mail-Adresse erst zusammenzusetzen, wenn ein Benutzer aktiv mit der Maus daraufklickt. Automatische Suchprogramme sind dann nicht in der Lage, die E-Mail-Adresse als solche zu erkennen, als normaler Benutzer merkt man jedoch nichts: Die E-Mail-Adresse wird (scheinbar) normal dargestellt (wovon Sie sich überzeugen können, wenn Sie den Quellcode dieser Seite ansehen), und mit einem Klick auf die E-Mail lässt sich ein E-Mailprogramm starten.

Um die E-Mail-Adresse darzustellen, ohne dass sie entdeckt wird, zerhackt man sie einfach in mehrere <span>-Bereiche. <span>weiss@g</span><span>ymmuenchenstein.ch</span> wird ganz normal als weiss@gymmuenchenstein.ch dargestellt, ist für ein Suchprogramm jedoch nicht (oder nur sehr schwer) zu identifizieren. Zur Erzeugung der mailto:-Anweisung dient die folgende JavaScript-Funktion:

function email(adresse, server) {
    
address = 'mailto:' + adresse + '@' + server;
    
window.location.href = address;
}

Ein Link auf eine E-Mail-Adresse sieht dann so aus:

<a href="javascript:email('weiss', 'gymmuenchenstein.ch')"><span>weiss@g</span><span>ymmuenchenstein.ch</span></a>

Das Resultat ist weiss@gymmuenchenstein.ch.

In dieser Datei (Quellcode hier) finden Sie alles zusammengefasst.

Wenn Sie die Funktion email() in vielen Dokumenten benötigen, können Sie sie auch in einer externen Datei abspeichern und jeweils einbinden. Das vorige Beispiel spaltet sich dann in die Dateien email.js und emailincluded.html (Quellcode hier) auf.

Valid XHTML 1.1! Valid CSS!