Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UN CONTROLE POUR METTRE UN EMAIL SUR UN SITE SANS SE FAIRE SPAMMER : NOSPAMEMAILHYPERLINK


Information sur la source

Catégorie :ASP.Net Source .NET ( DotNet ) Classé sous : nospam, webcontrol, encoding, email Niveau : Débutant Date de création : 22/06/2004 Date de mise à jour : 23/06/2004 00:02:31 Vu / téléchargé: 8 762 / 153

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
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

  • ' 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
' 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





 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • CP.WebControls.NoSpamEmailHyperlink.dllTélécharger ce fichier [Réservé aux membres club]28 672 octets

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de fabrice69 le 15/07/2004 11:25:54 administrateur CS

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___

signaler à un administrateur
Commentaire de antoine_ranou le 10/09/2004 23:07:31

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

Merci pour votre aide.

Roland

signaler à un administrateur
Commentaire de jfbernier le 22/01/2005 19:39:39

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.

signaler à un administrateur
Commentaire de jesusonline le 22/01/2005 23:53:52 administrateur CS

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

signaler à un administrateur
Commentaire de jfbernier le 23/01/2005 10:53:13

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, <a href=mailto:tonpseudo@tondomaine.com></a> et ça qui est récupéré par les bots.

Jeff

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

automatiser l'envoie d'email ???? [ par berserk ] Salut à tous Comment faire pour envoyer un mail en fonction d'une date déterminéeciao Probleme d'email [ par thedentiste ] Voila mon problème je voudrais envoyer un email à quelqu'un, celui ci le reçoit et l'ouvre et dans son email se trouve un bouton qui le redirige vers un peu daide svp [ par CooLNicK ] salut bon jai une page en asp qui post des infos sue un email et ca marche . (la page est la suivante)&lt;%Dim objCDOMailSet objCDOMail = Server.Creat cacher l'adresse email sous outlook [ par Arken ] bonjour, j'aimerai savoir si on peut mettre un autre texte à la place de l'adresse email sous outlook, en faisant un mailto, en html si possible, et s html dans asp [ par fuji ] salut,j'envois un mail de confirmation à l'adresse de la personne qui s'est abonné à ma newsletter et j'arrive pas à mettre un texte à la ligne!Je vou Problème avec l'envoie d'un email avec asp!!! [ par ali ] la section body de l'email contient un lien, ce lien contient un paramétre, le problème c'est que ce paramétre est vide (Ex: mail.asp?ID= ) Bug webcontrol treeview [ par karim ] Bonjour a tous !J'utilise VS.Net version Beta 2.je crée une webform dans laquelle j'ajoute un treeview et un bouton(webcontrols). Je ne rajoute aucun html dans un email [ par thedentiste ] Comment envoyer une page html dans un email. je veux que l'administrateur du site recoive un email en html avec de l'asp et quand on clique sur un bou Tracker un Email ouvert [ par Fred ] Je cherche comment faire pour détecter si un email a été ouvert. J'ai essayé de mettre en html dans le mail &lt;script src="incremente.asp ou de même enregistrements multiples [ par rony ] bjr, j'utilise aspsmartupload pour uploader dans ma base le nom d'un fichier est six champs texte: nom, prenom, tel, email, q1, et f1mon petit pbs est


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.