Spamschutz – eMail UTF-8 kodieren

Die eMail eines Webautors oder -teams gehört eigentlich in jedes Impressum, möglichst verlinkt, so dass der Leser schnelle eine Mail mit seinem Mailprogramm schreiben kann. Leider machen die SPAMer den Websitebetreibern in dieser Hinsicht das Leben schwer und die meisten Websitebetreiber nehmen mittlerweile schon Abstand davon und veröffentlichen nur noch eMail-Adressen ohne @ oder mit bestimmten Kodierungen, die für Maschinen unleserlich sind. Für die Benutzerfreundlichkeit ist das nicht unbedingt ratsam, denn nicht jeder Besucher bzw. kontaktwillige Besucher kennt alle Tricks im Web. Eine kleine Lösung, die ich für recht sinnvoll halt, ist die Kodierung dieses mailto-Link mit UTF-8-Entities.

Demo:

Wie das ganze umgesetzt aussieht, könnt ihr in meinem Impressum sehen. Folgener Code macht dies mit Hilfe einer Funktion.


function spamschutzMail($email) {
   
   $returnemail = preg_replace( "/(.)/se", " '&#' . ord( '\\1' ) . ';' ", $email );
   return "$returnemail";
}

Natürlich kann man das ganze auch händisch machen und somit auf statischen Seiten einsetzen. Beispiel: Der Link soll folgenden Syntax haben: mailto:frank@bueltge.de Dazu nutze ich jedes Zeichen UTF-8 kodiert, also b --> b u --> u usw.

Eine Übersicht aller ASCII-Zeichen findet man unter anderem bei ascii.cl/htmlcodes.htm.

8 Kommentare

  1. Danke für den Spamfilter, der mir gerade meinem Kommentar gefressen hat. Was heisst hier: "Alle 15 Sekunden nur einen Kommentar." Klasse, war der erste Kommentar heute. Was ist das denn für ein Spamfilter der hier am Werke ist? Ich versuche es jetzt einmal ohne URL. vielleicht geht der Kommentar dann ja durch. Wäre auf jeden Fall wünschenswert zu erfahren warum der Beitrag wirklich geblockt wurde. Ist da BadBehaviour oder so was am Werke?

  2. Hallo Gerald,
    da liegt wohl ein Problem vor. In meinen Kommentaren wirkt nur hashcash, auf Basis von JavaScript, als Spamfilter und die Checkbox "SPAMSCHUTZ, ich bin menschlich?". Die obige Info ist hier nicht angewandt, sondern nur für email-Adressen verwendet.
    Ansonsten kommen eigentlich alle Kommentare durch.
    LG Frank

  3. Hallo, eine Frage zur "händischen" Methode. Wenn ich die Hexform in HTML eingebe, wird Sie doch automatisch umgewandelt in Textform. Folglich steht dann im quellcode:

    spam@spamadresse.de

    Oder liegt der Fehler beim Benutzer (mir?)

  4. Lustiger weise hat das gerade eben bei mir nicht funktioniert 😉
    Wo muss die Funktion abgespeichert werden? index.php des Themes? und warum funktioniert das dann leider nicht bei statischen Seiten?

  5. In meinem Impressum habe ich wie beschrieben verwendet, ist eine normale WP-statische Seite. Also ganz normal mit dem Editor hinterlegt, allerdings kein WYSIWYG.
    Außerdem habe ich die Formatierung von WP für diese Seite deaktiviert, sonst ersetzt WP alle zeichn. Dazu gibt es das Plugin Text Control.

  6. Kleines Mißverständnis: Die Entities mit &...; sind gerade nicht utf-8, sondern html-Umschreibungen dafür!

    gruss
    g

Kommentare sind geschlossen.