Index des mots-clés
|
I N D E X
|
Système de codage des adresses mail
Tout webmestre sait qu'il ne faut jamais mettre sur une page
web une adresse mail en clair : les robots de recherche la trouverait rapidement
et l'heureux propriétaire de cette adresse serait rapidement noyé sous le spam.
Il
existe donc plusieurs méthode pour leurer les robots et ainsi leur cacher cette
adresse. La plupart de ces méthodes font appel à Javascript. Le but est
donc toujours de dissimuler la balise <A> ou du moins sa propriété HREF.
Certains
système sont basés sur un script "en ligne" d'une seule (longue) ligne insérée à l'endroit
de la balise <A>, mais un robot un tantinet malin va exécuter ces scripts
"en ligne" et décodera donc l'adresse convoitée. De plus il faut un
programme externe pour générer ce script.
D'autres méthodes font appel à
une question posée à l'utilisateur, un robot ne peux pas y répondre; mais c'est
un peu lourd.
Ma méthode
fait appel à une fonction placée dans le HEAD et appelée lors d'un événement. Le script contient
les adresses mail avec un codage assez faible pour être facile à travailler mais suffisant
pour qu'un robot y perde ses octets.
Pourquoi cette méthode est elle sûre ? Ce sont les
événements "onmouseover" de chaque balise <A> qui déclenchent
le script qui va initialiser le HREF de la balise concernée. C'est donc l'utilisateur
qui en ammenant le pointeur de sa souris sur le lien va déclencher le décodage
de celui-ci. Je pense qu'on
est pas prêt de voir un robot qui s'occupe des événement "onmouseover"
!
<html> <head> <title>Codage 2</title> <script language = javascript> function EcritMail(Id) { var Sujet = "?subject=Demande%20de%20renseignements"; var Adresses = new Array; Adresses[0] = "hotmail.com;toto"; Adresses[1] = "hotmail.com;titi"; document.getElementById("email" + Id).href = "mailto:" + Adresses[Id].substring(Adresses[Id].indexOf(";") + 1) + "@" + Adresses[Id].substr(0, Adresses[Id].indexOf(";")) + Sujet; } </script> </head> <body> Ecrivez à <a href = "" id = "email0" onmouseover = "javascript:EcritMail(0);"> Monsieur l'oiseau</a> ou encore à <a href = "" id = "email1" onmouseover = "javascript:EcritMail(1);"> Madame la Pie</a> </body> </html>
|
A noter :
- Les propriétés ID des balises <A> sont constituées d'un
mot (email ici) et d'un nombre commençant à 0 sans espace entre les
deux. Le mot choisi se retrouve dans le script : ... getElementById("email" + Id
...
- L'appel de la fonction EcritMail prend pour paramètre le nombre
seul.
- Les adresses sont stockées dans un tableau avec en premier le domaine
puis ensuite le nom d'utilisateur séparés par un point-virgule. Le premier
élèment est l'élèment zéro.
En pratique pour mettre la méthode en œuvre :
- Editez normalement la page avec votre programme
favori et placez vos liens émail normalement. Vous pouvez toutefois laisser
l'adresse du lien vide.
- Ouvrez le code HTML et ajouter le script dans le HEAD
- Initialisez les variables Adresses[xx] avec les adresses
mail : d'abord le domaine, un point-virgule et ensuite le nom d'utilisateur.
Aucun espace, xx doit commencer à zéro.
- Enfin modifiez les balises <A> :
- HREF ne doit pas
contenir l'adresse !!! Il peux très bien être vide : HREF
= ""
- Ajoutez la propriété ID = "email0"
pour le premier lien, ID = "email1"
pour le deuxième lien, etc ... Si vous modifiez le mot "email",
modifiez le aussi dans le script après getElementById.
- Ajoutez onmouseover = "javascript:EcritMail(xx);"
avec xx qui correspond au nombre dans l'ID
- Servez chaud !