Como esconder um email de crawlers e bots
Um monstro de comer emails
Geral

Quando criamos um website é importante colocar o nosso contacto para que possamos receber correspondencia dos nossos leitores ou clientes. O problema é que muitos bots ou spiders (programas feitos com o objectivo de obter o texto dos websites automaticamente) muitas vezes procuram os emails para enviar lixo para a nossa caixa de correio e vender esse email a mais empresas duvidosas com grandes listas para enviar spam para a nosssa caixa.

Então como podemos esconder o email desses bots?

A maneira de se pôr um email numa pagina web para que quando clicado abra o programa predefenido para enviar o email é:
<a href="mailto:utilizador@servidor_papa_spam.com">Enviar email</a>

O problema aqui é que os programas procuram isto e guardam todo o texto que têm depois da parte "mailto:" até ao fechar aspas.

Como posso resolver isto e obfuscar o email?

Para resolver isto podemos criar um botão que com codigo de javascript por trás faz com que o link mailto: só apareça depois de clicarmos no botão.

Abaixo mostro o codigo usado para a funcionalidade do botão:

<input id="bt_email" type="button" value="Mostrar email" onclick="mostraEmail();"/>
<div id="mto" >Aqui irá aparecer o email depois de clicar no botão></div>
<script>
function mostraEmail(){
var m = "servidor.pt";
m = ("utilizador" + "@" + m);
document.getElementById("mto").innerHTML= ("&lt;a href='mailto:" + m + "'&gt;" + m + "&lt;/a&gt;");
}
</script>
Depois de clicar no botão, se quiser experimentar outravez a ter o email escondido, tera de fazer refresh à pagina para a div ficar no estado original.

Conclusão:

O moral da história aqui é que os bots quando obiterem o texto da pagina em vez de terem uma string no formato de e-mail não a irão encontrar, apesar de ser possivel que mesmo assim obtenham o email se tiverem tiverem preparados para isso mas a verdade é que a probabilidade será muito mais baixa. Entretanto pode também ser mais criativo na concatenação da String e obfuscar ainda mais o email.
Ver en otros idiomas: PT EN ES