Como espamproof um link de E-mail?
quero que os visitantes possam clicar em (ou copiar) um endereço de E-mail directamente na minha página web. No entanto, se eu pudesse torná-lo (um pouco) mais difÃcil para os bots e outros crawlers para obter o referido endereço de E-mail e registrá-lo em uma lista de spam, seria incrÃvel.
encontrei diferentes formas de fazer isto (isto é, codificar links HTML do mailto), seja com JavaScript ou em HTML puro, mas o que é que vocês recomendam ? As técnicas de JavaScript parecem mais complicadas, mas isso pode potencialmente afetar usuários que o têm desligado, e rastreadores legÃtimos como o Google.
Por outro lado, o HTML parece um pouco básico, os escritores de bot já deveriam ter percebido... Devo dar-me ao trabalho de fazer isto, ou os spammers recebem o meu e-mail ? Sei que os filtros anti-spam estão cada vez melhores, mas se puder fazer algo mais para abrandar os spammers, fá-lo-ei.6 answers
O seguinte é um popular JavaScript anti spam email ofuscador:
Existe também uma versão do php para ser capaz de gerar e-mails ofuscados do lado do servidor.
Este é o código JavaScript que o a ferramenta acima Gerar-se-ia para ofuscar o meu endereço de E-mail (comentários intactos):
<script type="text/javascript" language="javascript">
<!--
// Email obfuscator script 2.1 by Tim Williams, University of Arizona
// Random encryption key feature by Andrew Moulden, Site Engineering Ltd
// This code is freeware provided these four comment lines remain intact
// A wizard to generate this code is at http://www.jottings.com/obfuscator/
{ coded = "[email protected]"
key = "1DtzZ8TGBuhRjJMKWI4gkUF2qidfOyPmSN7X30Vpso6xvErLnwQCbalA95HcYe"
shift=coded.length
link=""
for (i=0; i<coded.length; i++) {
if (key.indexOf(coded.charAt(i))==-1) {
ltr = coded.charAt(i)
link += (ltr)
}
else {
ltr = (key.indexOf(coded.charAt(i))-shift+key.length) % key.length
link += (key.charAt(ltr))
}
}
document.write("<a href='mailto:"+link+"'>Email Me</a>")
}
//-->
</script><noscript><a href='contact-form.html'>Email Me</a></noscript>
Tu podias usar a reCAPTCHA Mailhide funcionalidade. Isto irá mostrar os endereços de E-mail no formulário [email protected]
onde as elipses são uma ligação para ver o endereço completo. É um pouco complicado para o visitante, mas deve dar uma proteção premium. Dito isto, esta técnica não permitirá que os seus visitantes copiem o endereço directamente da sua página web.
não percebo a parte dos "gatinhadores legÃtimos" como o Google. Pelo menos, não posso veja por que o Google deve indexar o endereço de E-mail de qualquer maneira. (ver comentário da OPs abaixo.)
Http://robspangler.com/blog/encrypt-mailto-links-to-stop-email-spam/
Por isso
<a href="mailto:[email protected]">Email</a>
Torna-se
<a href="mailto:test@test.com">Email</a>
É apelativo na medida em que não requer nenhum Javascript.
EdifÃcio de Daniel Vassallo de sua resposta, uma forma de encriptar um link mailto que pode evitar mais esperta spam bots, pelo que irá avaliar JS document.write
s (como apontado pelo encarnado) seria colocar a descriptografia em uma função Javascript que só é avaliada quando o link é clicado. Por exemplo, usando o base64 como "criptografia":
<script>
function decryptEmail(encoded) {
var address = atob(encoded);
window.location.href = "mailto:" + address;
}
</script>
<a href="javascript:decryptEmail('dGVzdEB0ZXN0LmNvbQ==');">Email</a>
Não tenho a pretensão de saber se isto pode ou não ser enganado por uma pessoa mais sofisticada. indexacao.
Pode utilizar serviços externos como aemail.com:
@email é um serviço de E-mail gratuito que esconde e-mails usando o curto Os URLs redireccionam os remetentes para o url do mailto depois de carregar na ligação.
Depois de introduzir um e-mail em aemail.com, você vai obter um URL curto, que pode ser usado para substituir o seu link 'mailto'. Uma vez que o link é clicado, o seu usuário será redirecionado para o URL' mailto ' sem qualquer aviso do aemail.com. a API pode ser usada para esconder e-mails/obter URLs dinamicamente.
Exemplo:
<a href="mailto:[email protected]">Contact</a>
SubstituÃdo Por
<a href="https://aemail.com/q2">Contact</a>
Vai Manter O Link De E-Mail A Funcionar.
Eu simplesmente uso:
<script language="javascript" type="text/javascript">
var pre = "hideme";
document.write("<a href='mailto:" + pre + "@domain.com'>" + pre
+ "@domain.com</a>");
</script>
<noscript>Enable javascript to see our email!</noscript>