NOVEDADES

Bloquea direcciones de correo y dominios spam en Formulario de contacto de Blogger

Bloquea direcciones de correo y dominios spam en Formulario de contacto de blogger

 Vamos a ver cómo bloquear direcciones de correo y dominios spam en tu Formulario de contacto 

Un problema común cuando tienes un blog de blogger y tienes Formulario de contacto es que este sea utilizado por spamers para enviar su  basura. 
 
Lo que vamos a hacer es insertar un script que hace lo siguiente:
 
✅ Bloquea emails de la lista y dominios si los añadiste. 
 ✅ Cancela la petición AJAX en todos los casos bloqueados.
 

Sígueme 


En el Panel de control de Blogger vamos a Tema
 
Bloquea direcciones de correo y dominios spam en Formulario de contacto de blogger
 
Siguiente paso Editar HTML 
 
Bloquea direcciones de correo y dominios spam en Formulario de contacto de blogger

 A partir de aquí se debe tener mucho cuidado, pues un error puede hacer que nuestra página no cargue.
 
Daremos clic en el centro de la ventana y pulsaremos las teclas CTRL + F y escribiremos </body> para que nos lleve a su ubicación
 
Bloquea direcciones de correo y dominios spam en Formulario de contacto de blogger
 
Justo antes de </body> pegaremos el siguiente script 
 
<script type='text/javascript'>
//<![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> 
 
Lo que vemos marcado en verde son las direcciones de correo y los dominios spam que queremos bloquear, modificar ese apartado y listo 
 
Y para asegurarnos que todo está bien construido y acorde a nuestra plantilla antes de guardar cambios clicaremos en Vista previa del Tema 
 
Bloquea direcciones de correo y dominios spam en Formulario de contacto de blogger
 
Si todo está bien y no hay ningún error HTML ya podemos Guardar los cambios
 
Y comprobaremos que si escribimos en el Formulario de contacto la dirección de correo que hemos bloqueado, escribimos mensaje y clicamos en Enviar, el botón se quedará en bucle en "Enviando" y el correo no se enviará a nuestra bandeja.
 
Bloquea direcciones de correo y dominios spam en Formulario de contacto de blogger


Cabe añadir que este código no va a funcionar en todas las plantillas de blogger, siempre dependerá de la clase especifica, esta en concreto es .contact-form-button, si la vuestra es otra clase, sólo sería modificarla en el código y ya debería funcionar.
 
 Cómo siempre espero que este Tutorial os sea de utilidad y si es así compartirlo en vuestras redes sociales.

Publicar un comentario

0 Comentarios