Avisos
Vaciar todo

Recaptcha y Cloudflare no impiden que se registren correos spam

16 Respuestas
3 Usuarios
0 Reactions
39 Visitas
Respuestas: 2665
Famed Member
Topic starter
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Buenos días, por limitaciones de Recaptcha gratuito en su última actualización, optamos por instalar el plugin de Cloudflare en la página de registro y en los formularios. Sin embargo, algo falla porque se siguen registrando o consultando e-mails de spam con direcciones que no existen y a los cuales el sistema no puede enviar respuesta. Nos aparecen notificaciones del tipo:

Delivery Status Notification (Failure)

No se ha encontrado la dirección
Tu mensaje no se ha entregado a oxxxxxxx8@mail.ru porque no se ha encontrado la dirección o esta no puede recibir correo.

Saludos y gracias por la ayuda

Contenido solo visible a usuarios registrados


 
Respondido : 05/11/2025 6:43 am
Tags del tema
Pepe
 Pepe
Respuestas: 42205
Illustrious Member Admin
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Hola Alceste

El código que te pase es PHP y estaría bien según lo que comentas.

Solo entro ese correo ? los demás los paro ?

Sustituye el código anterior por el siguiente:

// Bloquear TODOS los Gmail/Hotmail spam rusos/chinos
add_filter('registration_errors', function($errors, $sanitized_login, $user_email) {

$user_email = strtolower($user_email);
$local_part = explode('@', $user_email)[0]; // parte antes del @

// 1. Más de 3 puntos en total o 2 puntos seguidos
if (substr_count($local_part, '.') >= 4 || preg_match('/\.{2,}/', $local_part)) {
$errors->add('spam_email', __('Correo no permitido.', 'woocommerce'));
return $errors;
}

// 2. Más de 22 caracteres antes del @
if (strlen($local_part) > 22) {
$errors->add('spam_email', __('Correo no permitido.', 'woocommerce'));
return $errors;
}

// 3. Alternancia de consonante-vocal o patrones típicos rusos
if (preg_match('/([bcdfghjklmnpqrstvwxyz][aeiouy])\2{2,}/i', $local_part) ||
preg_match('/(^[a-z]{1,3}\.){3,}/', $local_part)) {
$errors->add('spam_email', __('Correo no permitido.', 'woocommerce'));
return $errors;
}

// 4. Palabras spam (más amplias)
$spam_words = ['love','sex','fuck','xxx','porn','hot','girl','boy','sexy','cum','dick','pussy','mail','temp','test','spam','shit','ass','cock','tits','fuck','bitch','slut','russian','mattenly','shlubely','triuko','stiff'];
foreach ($spam_words as $word) {
if (strpos($local_part, $word) !== false) {
$errors->add('spam_email', __('Correo no permitido.', 'woocommerce'));
return $errors;
}
}

return $errors;
}, 10, 3);

 

Un saludo


 
Respondido : 01/12/2025 11:44 am
Página 2 / 2