Home Evitar SPAM en enlaces al correo
Evitar que los bots capturen direcciones de correo electrónico desde el código HTML, generando el enlace mailto: dinámicamente mediante JavaScript.
Este sistema impide que la dirección de email aparezca visible en el código fuente de la página.
Cuando se publica un enlace así:
<a href="mailto:info@midominio.com">Contactar</a>
La dirección queda visible en el HTML y puede ser capturada por bots de spam. Con este método cconseguiremos:
En el CMS, crear el enlace con la siguiente estructura:
<a href="#"
class="emailLink"
data-user="info,ventas"
data-domain="midominio.com"
data-subject="Alta Redsys"
data-body="Me gustaría darme de alta en Redsys">
Solicitar alta
</a>
Explicación de los atributos:
href="#": Enlace neutro (será interceptado por JavaScript)
class="emailLink": Identifica los enlaces que usarán este sistema
data-user: Parte anterior al @, puedes añadir varios usuarios separador por comas.
data-domain: Dominio del email
data-subject: Definimos el título del mensaje (opcional, puedes dejarlo en blanco)
data-body: Definimos el contenido inicial del mensaje (opcional, puedes dejarlo en blanco)
Este script debe estar incluido en la plantilla general o antes del cierre de :
document.addEventListener("DOMContentLoaded", function() {
document.querySelectorAll(".emailLink").forEach(function(link) {
link.addEventListener("click", function(e) {
e.preventDefault();
var usuarios = this.dataset.user.split(",");
var dominio = this.dataset.domain;
var emails = usuarios.map(function(user) {
return user.trim() + "@" + dominio;
}).join(",");
var subject = encodeURIComponent(this.dataset.subject || "");
var body = encodeURIComponent(this.dataset.body || "");
var mailto = "mailto:" + emails +
"?subject=" + subject +
"&body=" + body;
window.location.href = mailto;
});
});
});
Cómo funciona
Se pueden añadir tantos enlaces como se necesiten:
<a href="#" class="emailLink" data-user="ventas" data-domain="midominio.com">Ventas</a>
<a href="#" class="emailLink" data-user="soporte" data-domain="midominio.com">Soporte</a>
No es necesario modificar el script.
Para comprobar que funciona correctamente: