it-swarm-es.com

¿Es posible enumerar la dirección de correo electrónico "Contáctenos" en el sitio web y reducir la probabilidad de spam?

¿Cuál es una buena manera de incluir una dirección de correo electrónico "Contáctenos" en un sitio web, mientras se reduce la probabilidad de que se envíe spam?

¿Poner la dirección de correo electrónico en una imagen es la mejor técnica, o hay otras?

70
Chris W. Rea

Paso todos los formularios de contacto a través de una cuenta de Gmail desechable, que reenvía el correo a la dirección de correo electrónico real. Es gratis, es fácil y la detección de spam de Gmail es de primera categoría.

No requiere ningún esfuerzo adicional al hacer el sitio web, y si algo pasa, simplemente inicie sesión en la cuenta de Gmail y márquelo como spam.

Luego puede configurar la bandeja de entrada de Gmail para archivar automáticamente todo lo que se ha reenviado, o incluso eliminarlo si no desea que se guarde esa copia adicional.

54
Callan
30
Jason

Mi no respuesta es no hacer esto. Los sistemas de correo electrónico modernos, como GMail y el dispositivo antispam Barracuda, hacen un excelente trabajo al filtrar el correo no deseado. Cualquier barrera que ponga entre usted y sus visitantes significa un menor nivel de compromiso y, según el tipo de sitio, una posible pérdida de ventas.

Si le preocupan los usuarios que no tienen instalado un cliente de correo nativo, o que no tienen el manejador mailto: configurado correctamente, entonces tengan una página Contáctenos con AMBOS la dirección de correo electrónico vinculada y un formulario (sin CAPTCHA) y deja que el usuario elija.

El spam es molesto, pero es nuestra carga, no nuestros usuarios.

20
JasonBirch

Use lenguaje natural para deletrear la dirección de correo electrónico ...

Ex:

thatguy at gmail dot com

Te sorprendería lo difícil que es escribir un bot que pueda diferenciar el lenguaje natural en lugar de escribir un bot que solo busque el signo @ y regexifique una dirección normal.

No es 100% infalible, pero no es peor que la ofuscación y no alienará a sus usuarios con discapacidad visual y/o usuarios que tienen JavaScript deshabilitado.

Actualización: Aquí hay un ejemplo de esta técnica en acción .

Actualización 2:

Resulta que alguien realmente ha investigado sobre esto y lo ha publicado en línea. Vea el publicación del Superusuario que describe los resultados o el artículo original

18
Evan Plaice

Personalmente, no visualizo direcciones de correo electrónico en sitios, sino que tengo un formulario de contacto accesible y fácil de usar, junto con una indicación de quién es el correo electrónico; permitiendo a los usuarios enviar correos electrónicos a los propietarios y operadores del sitio, sin exponer direcciones de correo electrónico o tener que saltar a través de varios aros de JavaScript, etc.

Esta suele ser la mejor manera de hacerlo si su filtro de spam no es tan sofisticado.

12

use css para ocultar algo de ruido del texto real (solo en una línea, lo formateé para ilustrar mejor la técnica):

u<span class="spam">noise</span>ser
@<span class="spam">noise</span>
example<span class="spam">noise</span>
.com

y luego use este pequeño fragmento de CSS:

.spam { display: none; }

si necesita contenido válido de mailto:, entonces debe crearlo a través de jscript en el dom, vea algunas de las otras respuestas para eso. Pero no soy un gran amigo de eso.

9
akira

Lo que hago es escribir la dirección de correo electrónico como palabras, envueltas en una etiqueta span: <span class="email">joe dot blow at gmail dot com</span>. Luego se ejecuta una secuencia de comandos a nivel de página, que toma esos espacios y reemplaza cada uno con un enlace de correo electrónico construido. Puede que no sea demasiado oscuro, pero no he tenido quejas. Además, si JavaScript está deshabilitado, el usuario aún puede leer el texto de extensión real.

8
Grant Palin

La mejor solución: se un filtro de spam.

De hecho, uso Gmail para manejar mi cuenta de correo electrónico POP3 para mi negocio, porque es mucho más fácil revisar el correo electrónico en diferentes computadoras. Los filtros de spam de Gmail son los mejores del mundo.

Por lo tanto, puede mostrar [email protected] como su dirección de correo electrónico y olvidarse del spam.

8
DisgruntledGoat

usando codificación html como &#649&#7854&#7575, el navegador lo mostrará como "abc"

7
ilhan

Una manera bastante buena, aunque no perfecta, es crear la dirección de correo electrónico a través de JavaScript. La mayoría de las arañas que buscan correos electrónicos no ejecutan javascript y, por lo tanto, no encuentran una dirección de correo electrónico legible.

Aquí es solo un ejemplo de cómo se podría hacer.

5
txwikinger

Use una biblioteca gráfica (como Gd que es compatible con PHP , o similar) para crear dinámicamente imágenes .png que contengan las direcciones de correo electrónico.

En comparación con mi otra respuesta esta solución es menos molesta para los usuarios (pero no transparente; no pueden copiarla y pegarla, pero deben volver a escribirla desde cero) pero también es menos segura: una computadora potencialmente puede leer la imagen no ofuscada.

Pero en general creo que es un buen compromiso; detendrá la gran mayoría de los bots de spam.

5
Thomas Bonini

Utilizo un script simple Python para convertir la dirección de correo electrónico en un enlace mailto donde la dirección de correo electrónico está codificada en una entidad HTML. Esto es completamente transparente para el usuario, pero parece oscurecer el contenido lo suficiente como para derrotar a la mayoría de los bots de recolección de mente simple.

#! /usr/bin/env python3.0

def entity_encode(text):
    out = ""
    ba = text.encode()
    for i in range(len(ba)):
        out = out + "&#x{0:02x};".format (ba[i])
    return out

def print_email_link(address) :
        print('<!-- {0} -->'.format(address))
        print('<a href="{0}{1}">{1}</a>'.format(entity_encode("mailto:"), entity_encode(address)))


print_email_link("[email protected]")

Esto da la salida

<!-- [email protected] -->
<a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#x74;&#x65;&#x73;&#x74;&#x31;&#x32;&#x33;&#x40;&#x65;&#x78;&#x61;&#x6d;&#x70;&#x6c;&#x65;&#x2e;&#x63;&#x6f;&#x6d;">&#x74;&#x65;&#x73;&#x74;&#x31;&#x32;&#x33;&#x40;&#x65;&#x78;&#x61;&#x6d;&#x70;&#x6c;&#x65;&#x2e;&#x63;&#x6f;&#x6d;</a>

Cuando el resultado se pega en una página web, el navegador muestra el texto "[email protected]" como una hiperlínea a "mailto: [email protected]", por lo que es tan conveniente para el usuario final como incluir la dirección en el claro. Pero parece derrotar a muchos robots de cosecha.

Obviamente, elimino el comentario con la versión simple ASCII de la dirección una vez que pegué el enlace oculto del correo electrónico en el lugar apropiado en la fuente HTML de la página web.

5
Stephen C. Steel

Pídale al usuario que resuelva un CAPTCHA antes de mostrarle la dirección de correo electrónico (o si tiene un formulario de contacto, antes de permitir que el usuario lo envíe).

Es lo más molesto para los usuarios pero definitivamente lo más efectivo.

4
Thomas Bonini

Soy fanático de la ofuscación, donde la dirección de correo electrónico se representa esencialmente con Javascript.

Por ejemplo, [email protected] podría representarse como

<a href="javascript:location='mailto:\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d';void 0">
<script type="text/javascript">document.write('\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d')</script></a>

En lo que respecta al usuario, es texto normal y se puede copiar y pegar. Los bots, por otro lado, lo tendrán más difícil.

Aquí está el ofuscador que usé.

3
Paperjam

De una sola mano:

_  <script language="javascript"> 
  <!--
  var name = "user"
  var Host1 = "gm"
  var Host2 = "ail.com"
  var addr =
  document.write("<a href=mai" + "lto:" + 
    name + "&#64;" + Host1 + Host2 +
    ">" + name + "&#64;" + Host1 + Host2 + "</a>")
  //-->
 </script> 
_

Puede escribir "Descifrar mi correo electrónico: usuario en com dot gmail" en etiquetas <noscript> para aquellos que tienen JavaScript desactivado. De esta forma obtienes la funcionalidad de hipervínculo. Tiene una buena oportunidad de mantener a los spammers alejados de su dirección y las personas con JavaScript desactivado o navegadores de solo texto pueden obtener su dirección de correo electrónico.

2
Adam

Todas las técnicas de ofuscación en el mundo no pueden ayudar a largo plazo si consigue que muchas personas se comuniquen con usted. Todo lo que necesita es que alguien le envíe un mensaje y luego se infecte con algún malware que escanea su bandeja de entrada/correo enviado/libreta de direcciones/lo que sea para direcciones válidas, y su dirección se transmite de una lista a otra [Incluso tengo contactos que son lo suficientemente estúpidos como para poner su dirección de correo electrónico y contraseña en formularios en línea por las razones más idiotas, probablemente también lo haya hecho, el más reciente fue un sitio que ofreció calcular el "cuadro de astrología de correo electrónico y las predicciones" que inmediatamente envió spam a todos los contactos del tonto con una invitación al mismo sitio y <deity> solo sabe en qué otras listas estamos ahora como resultado].

La dirección en mis sitios web públicos no es solo una dirección desechable, está en un subdominio desechable. Si empiezo a recibir spam en ese subdominio, creo uno nuevo, actualizo los sitios donde figuran mis datos de contacto y poco tiempo después elimino completamente el subdominio de los registros DNS. Si hace esto, o cualquier otra técnica de direcciones desechables, asegúrese de dejar en claro (en cualquier página que enumere la dirección y en el pie de página de cualquier correo que envíe usando esa dirección) que la dirección cambiará en el futuro y si las personas pueden No entres, deben volver a verificar para asegurarse de que tienen la dirección correcta.

Esto tiene la ventaja de ser simplemente una dirección para que la gente haga clic (si su navegador + correo está vinculado de esa manera) o copiar + pegar sin necesidad de usar sus cerebros para editar la dirección después (siempre me sorprende cuántos las personas inteligentes y observantes no pueden hacer bien ese tipo de cosas). También significa que mi servidor de correo no pasa sus días enviando mensajes devueltos a direcciones "aleatorias" (aaron @, adam @, amy01 @, ...) en los subdominios vencidos. Tampoco confunde los lectores de pantalla utilizados por los ciegos o mal ubicados.

Otra opción que aún no he probado es usar una solicitud AJAX para leer la dirección de correo electrónico y otros detalles. Esto puede ser un poco más efectivo que la ofuscación basada en document.write, aunque agregará una pequeña carga adicional en el servidor web.

Solía ​​usar formularios de "contáctame/nosotros" en su lugar, pero descubrí que se envían spam tanto como, a veces más que, las direcciones de correo electrónico de texto sin formato, a veces mediante scripts que intentan usar el formulario para crear una cuenta en algún lugar Úselo como un formulario de contacto.

2
David Spillett

¡De ninguna manera, José! - Sí, José!

No hay absolutamente ninguna manera de "detener" la recolección de a href="mailto:" direcciones de correo electrónico. Se cree desde hace mucho tiempo que usar JavaScript es una buena manera de prevenir la mayoría de los bots de recolección, pero hoy en día los bots son muy buenos para derrotar este método. También pueden derrotar imágenes que contienen direcciones de correo electrónico, de la misma manera que pueden derrotar captcha usando el software decaptcha.

¡La mejor manera!

El mejor enfoque sería utilizar un servicio de correo de buena reputación que proporcione un buen bloqueo de spam. Google G Suite y Microsoft Office 365 usan un algoritmo que no tiene comparación con ningún software en el mercado, principalmente porque reciben millones de correos electrónicos al día y pueden 'aprender' y los spammers de la lista negra mucho antes de que incluso intenten enviarte un correo electrónico.

De hecho, hace un año Google dijo que su tecnología de aprendizaje automático ahora bloquea el 99.9% de los mensajes de spam y phishing de Gmail , Microsoft Exchange local y los servidores de correo que se ejecutan detrás de plesk/cpanel no pueden competir con esta protección.

Resumen

Bloquee el correo no deseado mediante el uso de un servicio de correo de buena reputación que sea capaz de aprendizaje automático de IA. También puede ir un paso más allá al evitar que los spammers visiten su sitio usando Cloudflare, que detectará una gran mayoría de bots agresivos antes de que lleguen a su sitio.

1
Simon Hayter

Si tiene un filtro de bot (usando 1x1px, subred, bots conocidos, detección de jscript, referencia http y agente de navegador), simplemente no puede mostrar la información si es un bot.

Solución en PHP:

<?
if (!isbot()) {
  echo 'mailto:'.$email_address_for_real_people;
  }
  else {
  echo 'mailto:[email protected]'.$bots_domain_address;
  }
?>
1
Talvi Watia

Lo más fácil que he encontrado es utilizar un formulario de contacto donde hay una dirección predeterminada, pero también la capacidad del usuario de seleccionar a quién debe dirigirse la comunicación (marketing, ventas, soporte técnico, etc.). Luego, en función del valor del menú desplegable, el servidor envía los datos del formulario publicado a la dirección de correo electrónico correspondiente.

Ejecute esta lista de contactos desde una tabla de base de datos para que pueda actualizar/agregar fácilmente entradas al menú desplegable. De esa manera, nunca expondrá ningún tipo de dirección al amplio mundo de los bots de spam, y aún así les dará a sus usuarios una excelente manera de enviar comentarios.

1
Milner

Use Zoho Creator para configurar un formulario de contacto. Los comentarios que reciba se almacenarán en una base de datos a la que puede acceder en línea y también se le enviarán por correo electrónico.

0
mvark

Uso un función PHP para generar algunos javascript para generar el script en tiempo de ejecución. Tenga en cuenta que no necesita PHP para generar el JS en tiempo de ejecución, puede generar el JS una vez localmente y luego incluir el JS estático en su página.

También puede usar la función vinculada con este fragmento a continuación para ofuscar automáticamente las direcciones de correo electrónico en un determinado HTML (donde $ processContent es el HTML):

 $emailMatches = array();
 $matchCount = preg_match_all('/(?:[a-zA-Z0-9_\.\-])+\@(?:(?:[a-zA-Z0-9\-])+\.)+(?:[a-zA-Z0-9]{2,4})+/', $processedContent, $emailMatches);

 if($matchCount > 0) {
    $emailMatches = $emailMatches[0];

    foreach($emailMatches as $email) {
    $replacement = createJSMailLink($email);

    $processedContent = str_replace($email, createJSMailLink($email), $processedContent);
 }
}
0
iloveitaly

Una cosa que hago es usar la API de http://www.stopforumspam.com para buscar spammers. ¡No dude en ponerse en contacto conmigo para obtener más detalles y con gusto lo ayudaré!

Bud Manz

Manz Web Designs, LLC

0
Bud

He usado [email protected] durante años. Los usuarios generalmente saben lo suficiente como para eliminar el "no-spam".

De lo contrario, solo uso un formulario de contacto con un 'captcha' y envío el correo directamente desde el sitio web.

0
Gary.Ray

Aquí hay otro ofuscador de correo electrónico: Enkoder , de Dan Benjamin. Viene como una aplicación en línea y una aplicación independiente para Mac.

0
Alex

Si no le importa usar javascript, puede usar algo como ROT13 para ofuscar la dirección de correo electrónico. Por ejemplo, mira esto:
http://scott.yang.id.au/2003/06/obfuscate-email-address-with-javascript-rot13/

Personalmente, prefiero usar un formulario de contacto y no preocuparme por los robots de spam, pero, por supuesto, todo depende de sus requisitos.

0
Mee

Si está utilizando un formulario de contacto, podría hacer la técnica divertida de usar nombres aleatorios para sus entradas.

Por ejemplo, hago un formulario de contacto, en lugar de usar el correo electrónico como entrada, usaría liame, lo mismo con el nombre (eman) y el comentario (tnemmoc). Los bots en realidad no saben qué hacen esas entradas, por lo que simplemente las ignoran.

0
dkuntz2

He configurado un formulario/hoja de cálculo de Google Docs. Puedo revisar las entradas del formulario una vez al día y mi bandeja de entrada no se inunda.

0
Sri