Je ne voulais pas m'étaler sur le sujet, plus par flemme je l'avoue, mais bon … Ce soir, je me sens l'âme charitable alors voici comment je procède (et ça n'a encore jamais été cracké par un robot).
Bon, accroché vos ceintures :
on « encode » notre adresse e-mail avec un petit script perso. J'ai pour habitude de prendre une valeur aléatoire, puis je décale tous les caractères vers la droite de cette valeur aléatoire. Pour cela, je récupère la valeur ASCII d'un caractère, je lui ajoute une valeur, et je récupère le caractère. Ceci sur chaque caractère qui compose notre adresse email. Ensuite, on place la valeur quelque part dans la chaîne, un endroit que nous serons le seul à connaître. On encode la chaîne avec urlencode (ou un petit base64 avant, c'est au choix

), et on obtient notre adresse email codée.
Maintenant, il suffit de faire un lien vers une page qui va prendre en paramètre notre adresse codée :
http://domain.tld/page.php?mail=<address>.
Cette page va recevoir ce paramètre donc. Elle va décoder l'adresse email (on récupère le grain de sel, on décale les caractères vers la gauche, talaa), et on va envoyer une en-tête au navigateur :
header('Refresh: 0; url="mailto:' . $address . '"');
Cela aura pour effet d'ouvrir l'outil de messagerie sur le poste client, avec l'adresse email pré-remplie. On peut ajouter des variables hein, rien ne nous l'interdit.
Le robot ne sait pas décrypter l'adresse email, c'est impossible pour lui. Il ne connaît pas l'emplacement du grain de sel et ne connaît pas non plus la technique et le nombre d'encodage intermédiaire utilisé (urlencode(), base64_encode(), serialize(), et même pourquoi pas gzdeflate()

). En plus, l'adresse n'apparaît pas en clair dans le code HTML, elle apparaît encodée. Pour le texte du lien, on peut remplacer l'arobase (@) par <em>chez</em> par exemple, ou mettre un texte du genre : nous contacter.
Je n'ai pas encore éprouvé cette technique à l'accessibilité, mais normalement, ça ne devrait pas poser de problème. Ça évite le SPAM, et c'est simple à mettre en place. En plus, ça permet de centraliser les demandes de mail, c'est pas plus mal.