De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Glaydson Lima
Data de Publicação: 06 de Janeiro de 2005
Um dos grandes problemas na publicação de e-mails em sites, fóruns e lista de discussão, é a possibilidade de programas robôs de spammers capturarem este e-mails. E aí, uma vez capturados, os e-mail publicados tendem a receber cada vez mais lixos eletrônicos. Em muitos fóruns ficou comum a modificação da escrita do e-mail para formas similares. Por exemplo:
<fulano (a) provedor com br> torna-se fulano [!arroba!] provedor [ponto] com [ponto] br
Os programas dos spammers buscam nas páginas informações com o símbolo arroba e montam os e-mails.
Para segurança das pessoas que postam mensagens, existe a possibilidade de usar uma combinação de PHP e Java Script que camuflam os e-mails. Para este modelo, é necessário ter a biblioteca GD do PHP instalada.
Iremos desenvolver com 3 arquivos:
Arquivo que contém a codificação dos caracteres arroba e ponto. Esta codificação não pode conter sequência de caracteres comuns e deve variar sempre que possível.
<?php
# Define as constantes de substituição do arroba e ponto dos e-mails
define("CONS_ARROBA","_arroba_");
define("CONS_PONTO","_pt_");
?>
Criará uma imagem com o e-mail codificado. Esta imagem será normalmente legível pelos usuários.
<?php
require("inc_vars.php");
// define tamanho da imagem de acordo com o e-mail
$largura = strlen($_GET["email"])*6;
// cria uma imagem
$im = imagecreate($largura, 13);
// Define cor de fundo e cor do texto
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 39, 104, 124);
// Escreve a string do e-mail
imagestring($im, 3, 0, 0, str_replace(CONS_PONTO,".",str_replace(CONS_ARROBA,"@",$_GET["email"])), $textcolor);
// Retorna a imagem
header("Content-type: image/png");
imagepng($im);
?>
3.arquivo.php Será o arquivo principal, contendo a chamada para o script de imagem e o JavaScript que montará o mailto correto.
<?php
require("inc_vars.php");
function ocultaEmail($PEmail) {
$emailCodificado = str_replace("@",CONS_ARROBA,$PEmail);
$emailCodificado = str_replace(".",CONS_PONTO,$emailCodificado);
return "<a href=\"#\" onClick=\"converteMailTo(this,'$emailCodificado')\"><img border=\"0\" src=\"imagemEmail.php?email=" . $emailCodificado ."\"></a>";
}
?>
<html>
<head>
<script language="JavaScript">
function converteMailTo(PObj,PEmail) {
PEmail = String(PEmail).replace(new RegExp("<? echo CONS_ARROBA; ?>","gi"),"@");
PEmail = String(PEmail).replace(new RegExp("<? echo CONS_PONTO; ?>","gi"),".");
PObj.href = "mailto:" + PEmail;
}
</script>
</head>
<body>
<p>
<? echo ocultaEmail("fulano@provedor.com.br");?>
</p>
</body>
</html>
Veja um exemplo do resultado desta combinação.