COMO PROTEGER SEU ENDEREÇO DE E-MAIL CONTRA SPAMS NA INTERNET
Postado em: 13 de julho de 2007 por Pedro RogérioMuitos usuários avançados sabem que se você colocar seu e-mail em um arquivo HTML, por exemplo, dessa forma: nome@provedor.com.br, no futuro terá uma grande dor de cabeça com Spam, pois os bots que circulam pela internet irão seguí-lo, verão que é um e-mail e a festa está pronta. Uma alternativa seria escrevê-lo assim:
nome_at_provedor.com.br
Mas dessa forma, para os usuários que não tem um mario conhecimento em internet não saberiam que aquele at significa @, então como faríamos? Existe uma forma bem simples de contornar isso com JavaScript, basta colocar esse script em sua página:
<script type="text/javascript">
var Convert = {
initialize: function() {
var spans = document.getElementsByTagName("span");
for (var i = 0; i < spans.length; i++) {
if(spans[i].getAttribute("class") == "address") {
string = spans[i].childNodes[0].nodeValue;
email = string.split("_")[0] + "@" + string.split("_")[2];
spans[i].innerHTML = '<a href="mailto:' + email + '">' + email + '<\/a>';
}
}
}
}
window.onload = Convert.initialize;
</script>
Agora, em nosso HTML, você deve deixá-lo da seguinte forma:
<span class="address">pedrorogerio_at_pinceladasdaweb.com.br</span>
Basicamente, utilizaremos de um span com uma classe chamada address, e o e-mail deve ser escrito da forma como foi citada acima, o que o script faz é substituir o at pelo @, mas essa substituição é somente visual, se você olhar o código fonte da página, seu e-mail está protegido. Dêem uma olhada nesse exemplo.
Referência:









Rafael Dourado disse: 13.07.07 ás 13:59
O que eu faço as vezes quando quero divulgar meu e-mail em sites que não são meus é escrever o endereço por extenso: meunome arroba gmail ponto com. Mas a solução em JS é bacana. Isso aliado a um filtro no CMS fica seguro para todos que participam do site.
Eduardo Melo disse: 13.07.07 ás 16:00
Tem uma maneira muito legal de inverter o e-mail via css… Eu faço assim só de sacanagem
Camilo disse: 13.07.07 ás 17:27
Também tem um recurso do site Dynamic Drive que faz algo parecido com isso.
Email Riddler - http://www.dynamicdrive.com/emailriddler/
o ruim é que o javascript fica inline
Camilo disse: 14.07.07 ás 02:59
O problema é que não funciona no Internet Explorer.
Firefox, Opera, até o Safari rodam direitinho e nosso amigo azul não ajuda.
Aurélio V. Schuelter disse: 14.07.07 ás 15:35
Uma solução simples é colocar uma imagem com o endereço.
Não é muito elegante, mas funciona.
Rodrigo disse: 14.07.07 ás 15:42
É uma solução interessante, mas acredito que só funcionará até os spammers alterarem seus bots para indentificarem esta artimanha.
Jr. Hames disse: 16.07.07 ás 19:45
Legal o exemplo. Utilizo mascaramento de endereço também, mas faço de uma outra maneira.
Dê uma olhada:
http://wws.x4u.com.br/2007/03/16/classe-php-para-captcha-inverso-e-mail-makeup/
Abraços
Vinícius Borriello disse: 17.07.07 ás 12:00
Fiz uma alteraçãozinha, ficando compatível com o Microformato hCard.
var Convert = {
initialize: function() {
var spans = document.getElementsByTagName(”span”);
for (var i = 0; i < spans.length; i++) {
if(spans[i].getAttribute(”class”) == “email”) {
string = spans[i].childNodes[0].nodeValue;
email = string.split(”_”)[0] + “@” + string.split(”_”)[2];
spans[i].innerHTML = ‘<a href=”""' + email + '” + email + <\/a> ”;
}
}
}
}
window.onload = Convert.initialize;
Até mais
Vinícius Borriello disse: 17.07.07 ás 12:01
Ops, na realidade mandei o seu script. Segue o modificado
var Convert = {
initialize: function() {
var spans = document.getElementsByTagName(”span”);
for (var i = 0; i < spans.length; i++) {
if(spans[i].getAttribute(”class”) == “email”) {
string = spans[i].childNodes[0].nodeValue;
email = string.split(”_”)[0] + “@” + string.split(”_”)[2];
spans[i].innerHTML = ‘<a href=”"' + email + '” rel=”nofollow”»’ + email + <\a> ”;
}
}
}
}
window.onload = Convert.initialize;
Falou
Sérgio Douglas disse: 03.03.08 ás 09:15
Para funcionar em Internet Explorer é só trocar o getAttribute(”class”) pela propriedade className
var Convert = {
initialize: function() {
var spans = document.getElementsByTagName(”span”);
for (var i = 0; i < spans.length; i++) {
if(spans[i].className == “address”) { /* < —– linha modificada */
string = spans[i].childNodes[0].nodeValue;
email = string.split(”_”)[0] + “@” + string.split(”_”)[2];
spans[i].innerHTML = ‘‘ + email + ”;
}
}
}
}
window.onload = Convert.initialize;