MailCrypt version 2

MailCrypt remplace les liens de courriels dans vos textes par un lien javascript afin d’éviter que des robots spammeurs ne collectent les emails affichés sur votre site. La modification est transparente sur un navigateur disposant de javascript. Lorsque javascript n’est pas installé, le mail reste compréhensible par un être humain.

Historique

MailCrypt a d’abord été développée par Paolo sous forme de contribution pour SPIP 1.8.3 puis portée sous forme de plugins pour SPIP 1.9 avec l’aide d’Alexis Roussel (voir Mailcrypt, système antispam). Elle a ensuite été intégrée au Couteau Suisse et améliorée par Patrice Vanneufville (voir De beaux liens hypertexte). Enfin, Joseph a mis à jour le plugin autonome pour SPIP 2.1 en reprenant les avancées apportées par le Couteau Suisse.

Fonctionnement

Ordinairement, SPIP transforme le raccourci suivant [->nom@domaine.org] produit le code HTML :

<a href="mailto:nom@domaine.org" class="spip_mail">nom@domaine.org</a>

L’adresse nom@domaine.org est de fait directement accessible à deux endroits : dans le lien (attribut href de la balise <a>) et dans le texte du lien.

Une fois activé, MailCrypt 2 détectera automatiquement les courriels présents dans le texte, qu’ils soient en lien et/ou en texte du lien. Ainsi, [->nom@domaine.org] produira le code HTML :

<a href="#" title="nom..åt..domaine.org" onclick="location.href=mc_lancerlien('nom','domaine.org'); return false;" class="spip_mail">nom<span class="mcrypt"> chez </span>domaine.org</a>

Visuellement, cela ressemblera à nom chez domaine.org.

En l’absence de javascript, le lien est inopérant : un clic sur le lien ne produira rien. Cependant, l’adresse email sera visible au survol du lien dans un format compréhensible par un être humain (nom..åt..domaine.org) de même qu’un email dans le texte sera affiché sous la forme : nom chez domaine.com. Cette forme ne contient pas d’arobase (@) et ne sera donc pas détectée par un robot mais reste compréhensible par un être humain, le texte chez [1] devant être remplacé par un @ pour obtenir l’adresse email complète.

Lorsque javascript est actif, le lien devient opérationnel, la fonction mc_lancerlien permettant de reconstituer le mail complet et de le transmettre au navigateur. Pour le visiteur, l’opération est totalement transparente. De plus, via jQuery, une fois la page chargée, le texte du mail ainsi que le titre du lien sont corrigés pour réintroduire l’@ au bon endroit. Le visiteur verra alors : nom@domaine.org.

Filtres propre et mailcrypt

MailCrypt utilise le pipeline post_propre pour détecter et protéger les courriels. Il sera donc sans effet sur un email indiqué en dur dans un squelette ou dans une balise qui ne passe pas par la fonction propre.

Pour appliquer MailCrypt sur ces balises dans votre squelette, vous pouvez soit leur appliquer le filtre |propre (ce qui entrainera également le traitement de tous les raccourcis SPIP) soit juste le filte |mailcrypt qui ne traitera que les courriels.

Pour un courriel indiqué en dur dans votre squelette, vous pouvez faire :

[(#VAL{<a href="mailto:nom@domaine.com">nom@domaine.com</a>}|mailcrypt)]

Remarques sur la protection des adresses emails

Bien que MailCrypt permette de bloquer la plupart des robots collecteurs d’adresse email, il est toujours possible pour un programmeur voulant spécifiquement récupérer les mails de votre site de prendre le temps d’analyser le contenu de vos pages pour créer un programme spécifique de collecte des adresses email.

Le moyen le plus sûr pour éviter qu’un email ne soit récupéré est de ne jamais l’afficher. Il reste possible de fournir des formulaires de contact qui permettront aux visiteurs de votre site de vous envoyer un email sans pour autant connaître votre adresse. Pour cela, vous pouvez utiliser la balise #FORMULAIRE_ECRIRE_AUTEUR, le plugin Formulaire de contact avancé ou encore le plugin Contact Libre.

Notes

[1Traduit selon la langue du contexte, par exemple at en anglais.

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom