Un controle pour mettre un email sur un site sans se faire spammer : nospamemailhyperlink

Soyez le premier à donner votre avis sur cette source.

Vue 13 897 fois - Téléchargée 239 fois

Description

Dans la plupart des sitew web, on aime bien mettre au moins une adresse web.

Cependant depuis quelques temps, des robots sillone le web à la recherche d'adresse Email pour envoyer des spams, et on aime pas trop recevoir des spams.

Pour éviter cela il existe plusieurs techniques :
- on ne met pas son Email : pas la peine de dire le défaut de cette solution
- on ecrit son adresse mail en rajoutant des mots genre personne@ NoSpam serveur.com. mais de plus en plus de robots déjoues cette technique, et puis c'est pas tres professionnels
- on ecrit du javascript qui nous fera ca tres bien

c'est cette derniere solution que je vais vous presentez.
Cette source n'est pas de moi mais de Paul RILEY.
Vous pouvez trouvez les Articles expliquant son controle à cette adresse :
- http://www.codeproject.com/aspnet/NoSpamEmailHyperlink.asp

Je vous fait donc part de ce control, qui est abondamment expliqué sur le site.

Ci dessous vous pouvez voir comment l'implementer dans votre page

Je vous aussi mis le rendu, il y a le code Javascript, j'ai moi meme renoncé de le lire :p

Source / Exemple :


' Dans l'aspx :
' <%@ Register TagPrefix="cpspam" Namespace="CP.WebControls" Assembly="CP.WebControls.NoSpamEmailHyperlink" %>

' <cpspam:nospamemailhyperlink id="NoSpamEmailHyperlink1" runat="server" email="Personne@Site.com">Personne@Site.com</cpspam:nospamemailhyperlink>

'C'est tout, vous avez fait tout ce qu'il fallait faire pour plus etre spammé.

'Ci dessous je vous mets le rendu HTML 
'En dessous du <form> rajout de ce script : 

	<script language="javascript">
<!--
function NoSpamEmailHyperlink_DecodeScript(link, seed) { var ky = "yJzdeB4CcDnmEFbZtvuHlI1hA8SiLo9MwfN3O6Y5QaRqKTjUpxVk2WgXrP7Gs0"; var storeText = link.innerHTML; var baseNum = parseInt(seed); var atSym = link.href.indexOf("@"); if (atSym == -1) atSym = 0; var dotidx = link.href.indexOf(".", atSym); if (dotidx == -1) dotidx = link.href.length; var scramble = link.href.substring(7, dotidx); var unscramble = ""; var su = true; for (i=0; i < scramble.length; i++) { var ch = scramble.substring(i,i + 1); var idx = ky.indexOf(ch); if (idx < 0) { unscramble = unscramble + ch; continue; } idx -= (su ? -baseNum : baseNum); baseNum -= (su ? -i : i); while (idx < 0) idx += ky.length; idx %= ky.length; unscramble = unscramble + ky.substring(idx,idx + 1); su = !su; } var emAdd = unscramble + link.href.substring(dotidx, link.href.length + 1); link.href = "mailto:" + emAdd; var findEm = storeText.indexOf(scramble); while (findEm > -1) { storeText = storeText.substring(0, findEm) + emAdd + storeText.substring(findEm + emAdd.length, storeText.length); findEm = storeText.indexOf(scramble); } link.innerHTML = storeText; } // -->
</script>

' à l'endroit ou vous affichez le lien : 
'<a href="mailto:NiN1c329@CXsf.com" id="NoSpamEmailHyperlink1">NiN1c329@CXsf.com</a>

' Puis en bas de la page : 

<script language="javascript">
<!--
	var NoSpamEmailHyperlink_LinkNames =  new Array("NoSpamEmailHyperlink1");
	var NoSpamEmailHyperlink_Seeded =  new Array("23");
		// -->
</script>

			<script language="javascript">
<!--
for (NoSpamEmailHyperlink_DecodeScriptCall_idx = 0; NoSpamEmailHyperlink_DecodeScriptCall_idx < document.links.length; NoSpamEmailHyperlink_DecodeScriptCall_idx++) { for (NoSpamEmailHyperlink_DecodeScript_idx = 0; NoSpamEmailHyperlink_DecodeScript_idx < NoSpamEmailHyperlink_LinkNames.length; NoSpamEmailHyperlink_DecodeScript_idx++) { if (document.links[NoSpamEmailHyperlink_DecodeScriptCall_idx].id == NoSpamEmailHyperlink_LinkNames[NoSpamEmailHyperlink_DecodeScript_idx]) { NoSpamEmailHyperlink_DecodeScript(document.links[NoSpamEmailHyperlink_DecodeScriptCall_idx], NoSpamEmailHyperlink_Seeded[NoSpamEmailHyperlink_DecodeScript_idx]); } } } // -->
</script>

'On voit donc que nul part l'adresse mail apparait

Conclusion :


Dans le zip il y a la dll qui contient ce control, il vous suffit simplement de mettre ca dans le repertoire bin de l'application.
toutes les infos se trouvent ici :
http://www.codeproject.com/aspnet/NoSpamEmailHyperlink.asp

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
4
Date d'inscription
samedi 22 janvier 2005
Statut
Membre
Dernière intervention
22 janvier 2005

Je comprends ton choix. Moi j'évite Javascript, c'est pour cela.

Par contre, j'aimerai bien que tu m'expliques pour l'image, je ne vois pas ce que cela change ? D'accord l'emailest dans l'image, mais il doit toujours y avoir, si tu n'utilise pas javascript, et ça qui est récupéré par les bots.

Jeff
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
29
tout depend ce que tu veux faire, moi je prefere envoyé un mail via outlook plutot qu'une interface web, au moins on peut l'archiver, ecrire le mail en plusieurs fois etc... donc tout depend de ce que tu veux faire.

Sinon je ne vois pas pourquoi ne pas afficher son adresse mail, avant qu'un ordinateur arrive à voir que le code javascript est en fait une adresse mail, il va y passer du temps, et ce ne sera absolument pas rentable pour un spammeur, tu peux aussi inclure ton mail dans une image et l'afficher ensuite, moi je trouve qu'une adresse mail est souvent plus pratique qu'un formulaire, chacun son choix

Cyril
Messages postés
4
Date d'inscription
samedi 22 janvier 2005
Statut
Membre
Dernière intervention
22 janvier 2005

Selon moi, la meilleure solution est de ne pas mettre son email, mais de proposer un formulaire. Deux avantages à cette solution :
- Pas d'email affiché donc pas de spamming
- et pas la peine d'être sur son ordinateur. En effet, lorsque l'on clique sur une adresse email cela ouvre outlook et donc l'expéditeur peut ne pas être celui qui envoie le message.
Messages postés
1
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
10 septembre 2004

Comment on peut faire pour l'utiliser en CodeBehind ? Je voudrais créer le controle de manière dynamique.

Merci pour votre aide.

Roland
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
6
Ta source me semble très intéressante.
L'idée est très bonne, mais n'ayant pas de projet mettant en oeuvre des adresses mails, je ne peux pas encore le tester.

F___

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.