Nachdem ich nach 30 Minuten googeln nichts Vernünftiges fand, habe ich mich mal wieder lernend mit Php beschäftigt und diese kleine Funktion gebaut:
function mailreplace($str) { return preg_replace_callback ('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})^', create_function ( '$str', 'for ($i = 0; $i < strlen($str[0]); $i++) { $result .= "&#" . ord(substr($str[0], $i, 1)) . ";"; }; return $result;' ), $str); }
Wie man sieht, sucht die Funktion in einem String nach E-Mail-Adressen und ersetzt deren Zeichen durch ihre ASCII-Entsprechungen. Einzige Unklarheit war, daß der Suchtreffer der temporären Funktion als Array übergeben wird, dessen erstes Element die Mail-Adresse beinhaltet. Warum der Treffer nicht als String übergeben wird – keine Ahnung.