De plus en plus, les sites web évitent d’afficher des adresses mail. Souvent, elles sont remplacées par des formulaires avec de fastidieux captcha mais l’usage est assez différent (pas d’adresse que l’on peut stocker dans un annuaire, rédaction en mode hors-ligne difficile, etc.) sans compter que la plupart des formulaires sont mal codés (pas de fallback en cas d’échec de l’envoi, entêtes souvent incorrects..). Dans d’autres cas, l’adresse mail est transformée afin qu’elle ne puisse pas être récupérée automatiquement par des robots. Exemples classiques : jdoe at example dot com ou jdoe-NOSPAM@example.com. C’est assez efficace mais… de moins en moins car c’est une perpétuelle course contre la montre où les robots s’adaptent aux nouvelles techniques. D’autres méthodes consistent à utiliser une image pour le @ voire l’adresse complète, mais dans ce cas on complique la tâche de l’utilisateur (pas de lien mailto) et ça n’est pas toujours adapté. Une idée intéressante serait de protéger une adresse mail avec un captcha puis de l’afficher proprement. Ça sera probablement la seule technique 100% efficace dans quelques années. En attendant, je vous propose une technique fortement inspirée de ce blog qui a l’avantage de faire apparaître un lien mailto (utilisation d’un peu de Javascript). Si le Javascript est désactivé, on perd le lien mailto mais l’adresse reste affichée en texte (utilisation d’un peu de CSS). Cette technique devrait vous donner un peu d’avance sur les robots (aucun spam reçu pendant deux ans d’après le blog cité plus haut).
Code source de la fonction PHP disponible ici :
http://www.gcolpart.com/hacks/EmailObfuscator.phps