Muchas veces nos encontramos con que al publicar una página web, algunos de nuestros correos comienzan a saturarse de SPAM, esto es porque generalmente publicamos un email de contacto correocontacto@newbie.cl. Para los robots, esto es ideal ya que al escanear nuestra página se encontraran con todas la direcciones email que tengamos publicadas, estos correos van a una base de datos que posteriormente es utilizada por empresas de SPAM.

Con este simple código, podemos evitar que muchos de estos robots detecten nuestro correo y también que se sature nuestro mail.

PHP
<?PHP
⁄*
* Devuelve una cadena en su valor ascii
* para ser interpretada por los navegadores
*⁄
function encodeMailAscii($mail){
for($i=0;$i<strlen($mail);$i++){
$result.="&#".ord($mail[$i]);
}
return $result;
}
⁄*
* Devuelve una cadena en su valor hexadecimal
* para ser interpretada por los navegadores
*⁄
function encodeMailHexadecimal($mail){
for($i=0;$i<strlen($mail);$i++){
$result.="&#x".bin2hex($mail[$i]);
}
return $result;
}
?>
<a href="mailto:<?PHP echo encodeMailAscii("correocontacto@newbie.cl")?>"><?PHP echo encodeMailAscii("correocontacto@newbie.cl")?></a>
<a href="mailto:<?PHP echo encodeMailHexadecimal("correocontacto@newbie.cl")?>"><?PHP echo encodeMailHexadecimal("correocontacto@newbie.cl")?></a>

ASP
<%
'
' Devuelve una cadena en su valor ascii
' para ser interpretada por los navegadores
'
function encodeMailAscii(mail)
dim result
for i=1 to len(mail)
result = result & "&#" & asc(mid(mail, i, 1)) & ";"
next
encodeMailAscii = result
end function
'
' Devuelve una cadena en su valor hexadecimal
' para ser interpretada por los navegadores
'
function encodeMailHexadecimal(mail)
dim result
result = ""
for i=1 to len(mail)
result = result & "&#x" & hex(asc(mid(mail, i, 1))) & ";"
next
encodeMailHexadecimal = result
end function
%>
<a href="mailto:<% response.Write(encodeMailAscii("correocontacto@newbie.cl"))%>"><% response.Write(encodeMailAscii("correocontacto@newbie.cl"))%></a>
<a href="mailto:<% response.Write(encodeMailHexadecimal("correocontacto@newbie.cl"))%>"><% response.Write(encodeMailHexadecimal("correocontacto@newbie.cl"))%></a>

JavaScript – Prototype
<script type="text/javascript" src="http://www.newbie.cl/js/prototype.js"></script>
<script type="text/javascript">
function email(a_id, user, domain){
et = String.fromCharCode(64);
a = $(a_id);
email = user+et+domain;
a.update(email);
a.title = email;
a.href = email;
}
</script>
<a id="cemail" href="" title=""></a>
<script type="text/javascript">email("cemail", "correocontacto", "newbie.cl");</script>

HTML y XHTML

En un sitio creado 100% en HTML o XHTML, se puede utilizar &#64; a cambio de @, o reemplazando el caracter o el e-mail completo con una imagen:

<a href=”mailto:correocontacto&#64;newbie.cl” >correocontacto&#64;newbie.cl</a>
<a href=”mailto:correocontacto&#64;newbie.cl” >correocontacto<img src=”imagen/arroba.gif” alt=”&#64;”/>newbie.cl</a>
<a href=”mailto:correocontacto&#64;newbie.cl” ><img src=”imagen/correocontacto_et_newbie.gif” alt=”correocontacto&#64;newbie.cl”/></a>