Técnicas para evitar el spam en las direcciones de correos

  • Por
Dos técnicas para evitar que el spam capture la dirección de mail publicadas en una página web.
Como viene siendo habitual el spam aprovecha las direcciones de mail que se publican en las páginas web para introducirlas en sus bases de datos y posteriormente utilizarlas para el envío masivo de mails publicitarios.

Bueno, pues existen algunos truquillos para que esto no ocurra, en DesarrolloWeb tiene dos artículos relacionados con el tema.
El primero nos cuenta como Ocultar un mail de un enlace utilizando para ello imágenes y Javascript.
El segundo nos cuenta como esconder con CSS el mail a los spambots.

Este artículo aprenderemos otras dos formas más simples pero igual de efectivas.
Antes de empezar, sería bueno comentar que en este truquillo hemos decidido no hacer el enlace a la dirección de correo, porque si alguna persona lee una dirección de correo en una página y desea escribir, realmente sólo necesita copiar la dirección en su programa de correo y este no es un trabajo muy complicado o molesto.

Una primera idea, sería tan sencilla como poner la dirección de correo y sustituir la @ por la palabra arroba. De este modo todo el mundo entenderá perfectamente la dirección y los spambots no podrán capturar la dirección.

Un ejemplo sería el siguiente:
   nombre[arroba]loquesea.com

A partir de esta idea, podemos complicar tanto como deseemos el texto, para que sea todavía más difícil de capturar. Por ejemplo, escribiendo las direcciones de email como:

nombre [@] loquesea.com
nombre [@nospam] loquesea.com
nombre [pon una arroba aquí] loquesea.com

La segunda técnica es un poco mas compleja pero muy efectiva y más adecuada desde el punto de vista del diseño de la página y la usabilidad de la página. Está basada también en utilizar imágenes para ocultar las direcciones.

Si en una página tenemos que sustituir un único correo por una imagen y éste es siempre el mismo, no cuesta trabajo crear una imagen con un email y ponerla en la página en lugar del texto. Pero si tenemos que hacer listados con decenas o cientos de imágenes distintas, no vamos a crear una imagen por cada dirección que se vaya incorporando al listado.

La idea es sustituir mediante PHP la @ por una imagen de la misma, de tal forma que si el spambots lee el texto donde está la dirección, no la reconocerá como tal, porque será algo como esto:

nombre<img src="arroba.gif">loquesea.com

Para hacer esto con PHP utilizaremos una función llamada str_replace(), que tiene por objeto remplazar una cadena por otra dada.

La sintaxis de la función es la siguiente:
Str_replace(cadena_buscada, cadena_sustituida,cadena_original)
Siendo cadena_buscada: la cadena que queremos sustituir.
Cadena_sustituida: la cadena que queremos colocar en el lugar de la cadena buscada
Cadena_original: la cadena donde se buscara la cadena a sustituir.

Quedando el script de la siguiente manera:

<?
//Se crea una variable con la imagen de la @
$arroba='<img src="ruta_imagen">';
//Se crea una variable con la dirección
$direccion=nombre@loquesea.com

//Se ejecuta la funcion str_replace
$mail=str_replace("@",$arroba,$direccion);
//De esta forma busca dentro de $direccion la @ y la reemplaza por $arroba, finalmente se visualiza la direccion
echo $mail;

?>


Si, como comenté al principio, se quiere hacer un enlace tan solo tendríais que hacer el enlace tal como viene explicado en el articulo ocultar un email de un enlace para evitar el spam.

Autor

Sara Alvarez

Equipo DesarrolloWeb.com

Compartir

Comentarios

alejandro

29/4/2006
Antes que nada, felicito por el articulo.
Intente hacerlo con una imagen enves del punto pero no me salio, ¿como podria hacerlo?, gracias.

gabriela

22/8/2006
quisiera saber como evitar recibir correo de una persona que me molesta muy feo si se puede y como me esta causando problemas

Swanyta

30/11/2006
He intentado probar este script PHP, "embebiéndolo" en una página.html.
Ejemplo:
arch.html
<html>
<head><title>Prueba</title></head>
<body>
<?php // el script php ?>
</body>
</html>
y guardada con extensión html...
No me funcionó...
¿Es que sólo funciona con páginas con estensión PHP?...