web-dev-qa-db-fra.com

Comment afficher les adresses e-mail sur le site pour éviter les spams?

Je montre l'email sur mon site Web comme suit

 <a href="mailto:[email protected]">Email</a>

Mais j’ai lu ce qui suit lors de l’analyse de mon site Web avec woorank.com , que dois-je faire pour éviter cela?

Les robots malveillants explorent le Web à la recherche d'adresses e-mail et les adresses e-mail en texte brut risquent davantage d'être spammées.

52
Jack

Il existe plusieurs choix différents pour masquer les e-mails sur les sites Web, en utilisant généralement la version d'entité HTML de l'adresse e-mail (comme suggéré par Aziz-Saleh), mais à partir d'un site Web réel design, juste Afficher l'adresse e-mail de cette manière sur un site Web n'est pas la chose la plus conviviale à faire.

Par exemple, le mailto: _ link déclenche automatiquement l'ouverture par le navigateur de l'application de messagerie de choix de l'utilisateur - mais tenez-en compte. Pas tout le monde a une application de messagerie dédiée. Par exemple, je n'utilise pas Outlook (j'utilise Windows) et, à moins d'installer Windows Live Mail, mon ordinateur ne peut pas ouvrir ce lien. Je pense Chrome peut ouvrir les liens dans GMail si vous êtes connecté, mais je devrai vérifier cela.

Finalement, en utilisant mailto:, vous êtes en train d'aliéner une partie de votre base d'utilisateurs qui ne pourra pas utiliser ce lien en premier lieu.

Je suggérerais d’utiliser des formulaires d’e-mail , et il existe de nombreux tutoriels faciles à suivre disponibles pour PHP et votre langue de JSP, telle que ce lien ici: Envoi de courrier électronique en JSP et même sur StackOverflow

En utilisant votre serveur pour envoyer le courrier électronique, vous obtenez un contrôle plus étroit sur la manière dont le courrier est généré, sur les données que l'utilisateur est autorisé à saisir et vous pouvez même lui envoyer un courrier électronique de retour (généré par le serveur) pour confirmer que vous avez bien reçu votre courrier électronique. reçu leur message. Il s'agit d'une méthode éprouvée permettant aux clients et aux visiteurs de vous contacter, dans le monde réel, tout en vous offrant une protection et un contrôle sur l'ensemble du processus.

TL; DR : Raw mailto: Les liens peuvent aliéner des personnes ne disposant pas de programmes de messagerie dédiés, alors que si vous utilisez des formulaires JSP, vous pouvez contrôler la manière dont ils vous contactent, avec quelles informations (vous pouvez utiliser des champs et l’attribut HTML5 required pour imposer certains champs de saisie) et vous pouvez même répondre avec un do-not-reply email pour qu'ils sachent que leur message a été entendu (n'oubliez pas de demander leur adresse email)

22
Singular1ty

Dans le passé, j'ai vu cela fait avec javascript. Fondamentalement, vous attribuez l'adresse électronique à des variables javascript et modifiez le contenu d'un élément à l'aide de celles-ci. Vous pouvez également fournir une solution de repli aux utilisateurs dont le javascript est désactivé, ce qui les oriente au besoin vers un formulaire. Voici un exemple

var user = 'foo',
    domain = 'bar.com',
    element = document.getElementById('email');

    element.innerHTML = user + '@' + domain;
    //OR
    //'<a href="mailto:' + user + '@' + domain + '">Email</a>'  

De cette façon, les bots ne voient jamais l'adresse email car ils ne chargent pas de javascript.

30
JazzyP

Eh bien, vous pouvez trouver une façon différente chaque jour. En voici une qui utilise jQuery.

<a class="mail" href="mailto:[email protected]">e-mail</a>

Puis gérez le clic avec jQuery.

$('a.mail').on('click', function(){
    var href = $(this).attr('href');
    $(this).attr('href', href.replace('badmail.', ''));
});

La raison pour laquelle je l'aime bien, c'est que je peux laisser les spammeurs spammer le domaine de messagerie factice en pensant qu'ils ont encore récolté un autre courrier électronique. Si je maintenais mon propre filtre anti-spam, je pourrais collecter des échantillons dans mon mauvais compartiment.

En outre, cette approche vous permet de rendre la page très propre avec des données dynamiques et d'avoir simplement l'extrait de code javascript une seule fois sur l'ensemble du site pour gérer les clics réels de l'utilisateur.

Fonctionne aussi sur les mobiles.

28
Jani Hyytiäinen

Solution 1:

Vous pouvez utiliser de nombreux encodeurs d'adresses e-mail disponibles au public, comme (premier résultat sur Google):

http://www.wbwip.com/wbw/emailencoder.html

Ceci encode les emails dans leur valeur d'entité de caractère, cela nécessitera plus de grattoirs de forme logique pour le décoder.

Donc un email comme: [email protected] devient &#116;&#101;&#115;&#116;&#064;&#103;&#109;&#097;&#105;&#108;&#046;&#099;&#111;&#109; qui peut également être utilisé dans un mailto.

Solution 2:

Utilisez un e-mail en ligne pour convertir des images (encore une fois le premier résultat sur Google):

http://www.email2image.com/Convert-Email-to-Image.aspx

Pour en faire une image. D'autres services vous permettent de le faire automatiquement via une API telle que:

https://www.mashape.com/seikan/img4me-text-to-image-service#!endpoint-Main

18
Aziz Saleh

Personnellement, j'ai trouvé ceci, assez simple et assez drôle, je lance ce code où je veux que mon adresse email apparaisse:

<script>(function whatever(){var s='@',n='nabil',k='kadimi.com',e=n+s+k,l='<a href=mailto:{{[email protected]}}>{{[email protected]}}</a>'.replace(/{{.+?(}})/g,e);document.write(l)})()</script>

Étendu

<script>
    (function whatever() {
        var s = '@'
            , n = 'nabil'
            , k = 'kadimi.com'
            , e = n + s + k
            , l = '<a href=mailto:{{[email protected]}}>{{[email protected]}}</a>'.replace(/{{.+?(}})/g, e)
        ;
        document.write(l);
    })();
</script>

Démo

<script>(function whatever(){var s='@',n='nabil',k='kadimi.com',e=n+s+k,l='<a href=mailto:{{[email protected]}}>{{[email protected]}}</a>'.replace(/{{.+?(}})/g,e);document.write(l)})()</script>
5
Nabil Kadimi

Google fournit effectivement un service pour cela. Libre d'utilisation et fonctionne plutôt bien: Mail ReCaptcha

3
A. Riesbeck

J'utilise des encodeurs de messagerie tels que http://www.wbwip.com/wbw/emailencoder.html . Il suffit de mettre votre adresse à la source et entre les balises "a". Quelque chose comme ça

<a href="mailto:&#105;&#110;&#102;&#111;&#064;&#101;&#120;&#097;&#109;&#112;&#108;&#101;&#046;&#099;&#111;&#109;">&#105;&#110;&#102;&#111;&#064;&#101;&#120;&#097;&#109;&#112;&#108;&#101;&#046;&#099;&#111;&#109;</a>

C'est l'encodage de [email protected]

3
AlexPrinceton

Mettez votre adresse électronique sur une image transparente au format png ou gif et affichez cette image sur vos pages Web. Seul un lecteur humain sait que l’image montre une adresse électronique. Cela empêchera les robots de trouver votre adresse e-mail sur votre site Web.

1
Usman

Oui, cela signifie que vous devez utiliser un formulaire php pour que les visiteurs vous contactent. Il est beaucoup plus sûr et empêche les robots de vous envoyer des courriels des milliers de fois. Regardez autour de Google pour un tutoriel de formulaire de contact, il y en aura beaucoup!

Un tutoriel vous indiquera d'utiliser php. Ainsi, lorsque l'utilisateur remplira un formulaire, il vous sera envoyé par courrier électronique avec les détails qu'il a remplis dans le formulaire. Cependant, la plupart des formulaires utilisent comme une entrée "Captcha" et cela stoppe les robots, presque comme un "Êtes-vous humain?" tester.

J'espère que cela t'aides.

1
Sam Joy

J'utilise depuis la fonctionnalité gratuite de masquage d'adresse e-mail de CloudFlare: https://support.cloudflare.com/hc/en-us/ articles/200170016-Qu'est-ce-que-est-Email-Address-Obfuscation -

Les moissonneurs d'emails et autres robots naviguent sur Internet à la recherche d'adresses e-mail à ajouter aux listes qui ciblent les destinataires pour le spam. Cette tendance entraîne une augmentation du nombre de courriels indésirables.

Les administrateurs Web ont mis au point des solutions astucieuses pour se protéger de cette situation en écrivant des adresses électroniques (par exemple, help [at] cloudflare [dot] com) ou en utilisant des images incorporées de l'adresse électronique. Cependant, vous perdez la commodité de cliquer sur l'adresse électronique pour envoyer automatiquement un courrier électronique.

En activant l'obscurcissement des adresses e-mail Cloudflare, les adresses e-mail de votre page Web seront masquées (cachées) des robots, tout en les rendant visibles pour les humains. En fait, il n'y a aucun changement visible sur votre site Web pour les visiteurs.

Pour éviter tout comportement inattendu sur le site Web, les adresses électroniques ne sont pas obscurcies lorsqu'elles apparaissent dans:

  • Tout attribut de balise HTML, à l'exception de l'attribut href de la balise a.
  • Autres balises HTML
  • Toute page qui n'a pas de type MIME "text/html" ou "application/xhtml + xml"

Je ne suis pas affilié à CloudFlare. J'apprécie tout ce qu'ils offrent gratuitement.

1
Ryan