Vamos a ver cómo bloquear direcciones de correo y dominios spam en tu Formulario de contacto
Sígueme
A partir de aquí se debe tener mucho cuidado, pues un error puede hacer que nuestra página no cargue.
//<![CDATA[
(function () {
// === LISTA DE EMAILS BLOQUEADOS ===
var listaBloqueados = [
«correo1@ejemplo.com»,
«correo2@ejemplo.com»
];
// === OPCIONAL: DOMINIOS BLOQUEADOS ===
var dominiosBloqueados = [
«spam.com»,
«mailtest.com»
];
function emailBloqueado(email) {
if (!email) return false;
email = email.toLowerCase().trim();
// Bloqueo por email exacto
for (var i = 0; i < listaBloqueados.length; i++) {
if (email === listaBloqueados[i].toLowerCase()) return true;
}
// Bloqueo por dominio
var parts = email.split(«@»);
if (parts.length === 2) {
var dominio = parts[1];
for (var j = 0; j < dominiosBloqueados.length; j++) {
if (dominio === dominiosBloqueados[j].toLowerCase()) return true;
}
}
return false;
}
// === FUNCION PARA LIMPIAR MENSAJE DE ESTADO ===
function resetEstado() {
var status = document.querySelector(«.contact-form-status-message»);
if (status) {
status.innerHTML = «»;
status.style.display = «none»;
}
// Restaurar botón
var btn = document.querySelector(«.contact-form-button»);
if (btn) {
btn.disabled = false;
btn.classList.remove(«disabled»);
}
}
// === INTERCEPTAR CLICK EN EL BOTÓN ===
document.addEventListener(«click», function(e) {
var btn = e.target;
if (!btn.classList || !btn.classList.contains(«contact-form-button»)) return;
var emailInput = document.querySelector(«input[type=’email’]»);
if (!emailInput) return;
var email = emailInput.value;
if (emailBloqueado(email)) {
e.preventDefault();
e.stopImmediatePropagation();
// Restaurar estados inmediatamente y varias veces
setTimeout(resetEstado, 0);
setTimeout(resetEstado, 20);
setTimeout(resetEstado, 50);
console.log(«ENVÍO BLOQUEADO:», email);
return false;
}
}, true); // fase de captura
// === BLOQUEO REAL DE LA PETICIÓN AJAX ===
var sendOriginal = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(data) {
try {
if (typeof data === «string» && data.indexOf(«email=») !== -1) {
var params = data.split(«&»);
for (var i = 0; i < params.length; i++) {
if (params[i].indexOf(«email=») === 0) {
var email = decodeURIComponent(params[i].substring(6));
if (emailBloqueado(email)) {
// Reset del estado visual
setTimeout(resetEstado, 0);
setTimeout(resetEstado, 50);
return; // cancelar envío
}
}
}
}
} catch (e) {}
return sendOriginal.apply(this, arguments);
};
})();
//]]>
</script>






