Plugin jQuery antispammailto



Il peut arriver que vous souhaitiez que les visiteurs humains puissent vous contacter via votre site. Pour cela, deux solution possibles :

  • Mettre un formulaire de contact
  • Mettre un lien "mailto" vers votre email
Dans le premier cas, il faut mettre en place un système évitant les robots de remplir le formulaire et de l'envoyer. Un exemple fréquent est le "captcha", soit un image aléatoire présentant des lettres et chiffres que l'utilisateur doit recopier dans un champ texte. Cette méthode à deux inconvénients :
  1. Il faut mettre en place un système de captcha et ca ne fonctionne pas toujours. Certains robots arrivent a reconnaitre les carractères sur l'image
  2. Elle ne permet pas à l'utilisateur d'avoir le mail dans sa boite "emails envoyés".

La deuxième solution, le lient mailto, permet d'utiliser entièrement le client mail préféré de l'utilisateur mais a le gros inconvénient que les robots ont accès à l'email dans le lien et peuvent donc spammer à leur aise.

En effet, l'email est lisible par les robots dans le code :

mon email

Le plugin jQuery-antispammailto que j'ai écris et mis sur Github permet d'éviter cela (dans une commune mesure)
Son utilisation est très simple :

$('#contact_email').antispammailto({
    user: 'user',
    domain: 'domain.tld',
  });

Le plugin va injecter dynamiquement dans l'attribut href du lien le mailto vers l'email user@domain.tld. Deux options supplémentaires sont disponibles :

  • onlyAtRollover : si mis à true, le champ href n'est mis à jour que lorsqu'on passe le curseur sur le lien et est remis à # lorsque le curseur quitte la zone du lien
  • htmlToo : si mis à true, l'intitulé du lien est également l'email sous la forme :
    user@domain.tld

Il y a certainement moyen de l'améliorer et de le rendre plus efficace. Si vous avez des idées d'amélioration, envoyez-moi un email ou participez via github !