Guía

Correos catch-all explicados: lo que los dominios accept-all ocultan a la verificación

Por qué SMTP dice sí a cualquier dirección de un dominio catch-all, cómo lo detectan los verificadores y cuándo conservar o suprimir estos contactos B2B.

Una fila de buzones de colores sobre postes de madera

Respuesta corta

Un dominio catch-all (accept-all) le dice a cualquier remitente que todos los buzones existen, así que una comprobación SMTP demuestra que el dominio recibe correo, pero nunca que exista una persona concreta. Los verificadores lo detectan probando una dirección aleatoria: si también se acepta, un resultado «válido» no significa nada. Trata estas direcciones como arriesgadas: puntúalas según las pruebas, envía con cautela y suprime las que no tengan historial.

Tarde o temprano, todo remitente B2B se topa con el mismo enigma. La lista pasó por la verificación, las direcciones salieron bien y la campaña rebotó igualmente. Muy a menudo la causa es un dominio catch-all: un servidor de correo de empresa que dice que sí a cualquier dirección, así que la comprobación que debía proteger tu reputación como remitente no tenía nada real que contar.

Esta guía explica qué significa catch-all, por qué la verificación no puede ver más allá, cómo BounceIntel detecta y puntúa estas direcciones y qué reglas deciden a cuáles merece la pena enviar.

Qué significa catch-all (accept-all)

Un dominio catch-all, también llamado accept-all, es un dominio cuyo servidor de correo acepta mensajes para cualquier dirección de ese dominio. jane.doe@, j.doe@, sales-team@ y xq7k2@ reciben la misma bienvenida, exista o no un buzón con ese nombre.

Las empresas lo configuran por motivos que parecen razonables:

  • No perder correo. Un cliente que escribe mal el nombre de un empleado llega igualmente a alguien, porque las direcciones desconocidas acaban en un buzón compartido.
  • La rotación de personal. El correo dirigido a personas que ya se fueron sigue llegando a algún sitio en lugar de rebotar a los clientes.
  • Las pasarelas de seguridad. Algunos servicios de filtrado situados delante de los buzones de una empresa aceptan todo primero y lo clasifican después.
  • Una configuración antigua que nadie ha revisado en años.

Las configuraciones catch-all son habituales en dominios de empresa y raras en los grandes proveedores de consumo, y por eso el problema aparece sobre todo en listas B2B.

Por qué SMTP siempre dice «sí»

La verificación de email real se basa en una pregunta hecha por SMTP. El verificador se conecta al servidor de correo del dominio, indica la dirección con RCPT TO y lee la respuesta. Un servidor normal busca el buzón y lo acepta o lo rechaza como desconocido. Para la secuencia completa, consulta cómo funciona la verificación de email.

Un servidor catch-all se salta esa búsqueda o la deja para después. Responde 250, aceptado, a cada destinatario. Lo que le ocurra luego a un mensaje real depende de la configuración:

  • Se entrega en un buzón compartido que alguien puede leer o no.
  • Se acepta y después rebota, minutos u horas más tarde, como un mensaje de rebote aparte, mucho después de que terminara la conversación del verificador.
  • Se descarta sin aviso.

El segundo caso es el peligroso. Un rebote que llega tarde cuenta igualmente en tu contra ante tu proveedor de email marketing, y sigue diciendo a los proveedores de correo que escribes a direcciones que no existen. Tu informe de verificación estaba limpio y tu reputación pagó de todos modos.

Un abanico de sobres abiertos y cartas escritas a mano

Cómo lo detectan los verificadores

Como el servidor dice que sí a la dirección real, el verificador le pregunta por una dirección que seguro que no existe. BounceIntel lo hace en la misma conexión SMTP que usó para la dirección enviada: manda un segundo RCPT TO con una parte local aleatoria de 15 caracteres en el mismo dominio. En ningún caso se envía un mensaje.

  • Si la dirección aleatoria se rechaza, el servidor sí comprueba los buzones, y que aceptara tu dirección significa algo.
  • Si la dirección aleatoria se acepta, el dominio es catch-all, y que aceptara tu dirección no dice nada sobre ese buzón.

Para unos pocos proveedores de correo cuyos servidores tienen un comportamiento propio conocido, la sonda se omite y se aplican reglas específicas del proveedor.

En la respuesta de la API, un catch-all detectado tiene este aspecto. Es un resultado real para un nombre inventado en nuestro propio dominio, que acepta correo para cualquier dirección:

{
  "input": "[email protected]",
  "is_reachable": "risky",
  "smtp": {
    "can_connect_smtp": true,
    "is_deliverable": true,
    "is_catch_all": true,
    "is_disabled": false,
    "has_full_inbox": false
  },
  "score": {
    "reason_codes": ["catch_all", "catch_all_high_risk"],
    "catch_all": {
      "severity": "high",
      "confidence": 55,
      "factors": ["catch_all:corporate_domain", "website:present", "auth_records:present"]
    }
  },
  "bounce_risk": { "action": "verify_manually" }
}

Fíjate en smtp.is_deliverable: true. El servidor sí aceptó la dirección, y esa es precisamente la respuesta que no se puede tomar al pie de la letra.

Por qué «válido» es mentira aquí

Muchas herramientas de verificación marcan una dirección catch-all aceptada como válida o entregable, porque técnicamente el servidor dijo que sí. Pero el servidor dice lo mismo de un empleado real y de un nombre que te has inventado hace treinta segundos. Una etiqueta que da la misma respuesta a los dos no es información. Es una suposición disfrazada de resultado.

El daño es previsible. Una lista pasa la verificación, la tasa de rebote sube de todos modos y la culpa recae en el verificador. Es aún peor con listas construidas a base de suposiciones, cuando alguien generó [email protected] para cada nombre de una web o compró un archivo con ese tipo de direcciones. En un dominio catch-all cada suposición «se verifica», así que la lista parece perfecta hasta el momento del envío.

BounceIntel nunca marca una dirección catch-all como segura. is_reachable es risky, score.safe_to_send es false y el código de motivo catch_all explica por qué, de modo que ninguna parte de tu código puede confundirla con un buzón confirmado.

Puntuar los catch-all y send_with_caution

Llamar arriesgadas a todas las direcciones catch-all es honesto, pero por sí solo no sirve de mucho: en B2B, una gran parte de una lista perfectamente buena puede estar en dominios catch-all. Por eso BounceIntel valora cada dirección según las pruebas que la rodean y lo resume en score.catch_all, con una severity (low, medium o high), un valor de confidence y los factors que lo justifican.

El punto de partida depende del dominio. Un dominio de empresa empieza con gravedad alta; un proveedor gratuito de consumo, con gravedad baja. Después, las pruebas la mueven:

PruebaEfectoFactor
Tu cuenta ha visto esta dirección salir limpia al menos 3 veces en 180 díasLa gravedad pasa a bajatenant_history:safe_repeat
Al menos otras 5 direcciones con el mismo patrón de nombre verificadas en este dominio en tu cuenta en 180 díasLa gravedad pasa a bajapattern:…:verified_matches
Entre 2 y 4 direcciones asíAlta pasa a mediapattern:some_verified_matches
El dominio tiene al menos un añoAlta pasa a mediadomain_age:established
El dominio no tiene sitio webLa gravedad pasa a altawebsite:missing
Falta SPF o DMARCLa gravedad pasa a altaauth_records:weak

La gravedad se repite como código de motivo sobre el que puede decidir tu código: catch_all_low_confidence, catch_all_medium_confidence o catch_all_high_risk. La recomendación de bounce_risk.action sigue después el riesgo global de la dirección. Una dirección catch-all con buenas pruebas detrás suele volver como send_with_caution, una con pocas pruebas como verify_manually y una que además tiene otras señales malas, como una dirección genérica en un dominio sin sitio web, como do_not_send.

send_with_caution significa exactamente eso. La dirección probablemente está bien, y aun así conviene enviarle de forma que el daño sea limitado si no lo está.

Reglas B2B: conservar o suprimir

La verificación te da las pruebas. Qué haces con una dirección catch-all es una decisión de política, y conviene ponerla por escrito para que todo el equipo la aplique igual. Estas son las reglas que recomendamos.

Conserva la dirección, y envíale en un segmento propio, cuando:

  • venga de un formulario que la persona rellenó por sí misma, idealmente con doble opt-in, o de una conversación real;
  • el contacto haya abierto, hecho clic o respondido en los últimos meses;
  • su gravedad sea low o medium, o siga un patrón de nombre ya verificado en esa empresa;
  • pertenezca a una persona con nombre en un dominio con sitio web y con SPF o DMARC configurados.

Suprímela cuando:

  • sea una dirección genérica como info@ o sales@ en una lista fría, donde aparecen juntos los códigos catch_all y role_account;
  • se haya deducido, extraído por scraping o comprado, diga lo que diga cualquier verificador;
  • su gravedad sea high y no tengas historial de interacción con ella;
  • haya tenido un rebote duro, aunque sea una sola vez. Nunca reintentes un rebote duro.

Cuando sí envíes a direcciones catch-all:

  1. Mantenlas en un segmento separado de tus direcciones confirmadas, para que un problema quede contenido.
  2. Empieza con un lote pequeño y mira la tasa de rebote antes de enviar el resto.
  3. Detente y revisa si los rebotes suben, en lugar de enviar el segmento completo.
  4. Elimina de inmediato cada rebote duro, de todas las listas.
  5. Vuelve a verificar el segmento antes de la siguiente campaña, porque las pruebas de patrón en las que se basa la puntuación se acumulan con cada comprobación.

Comprueba tú mismo una dirección catch-all

En tu propio código, lee smtp.is_catch_all en la respuesta de POST /v1/check_email, o en cada fila de un trabajo masivo, y decide según score.catch_all.severity y bounce_risk.action. La documentación de la API describe cada campo y la verificación masiva muestra cómo pasar una lista entera por las mismas comprobaciones.

Preguntas

Lo que la gente pregunta sobre esto

¿Es válida una dirección de email catch-all?

Quizá. El dominio acepta correo para cualquier dirección, así que una comprobación no puede distinguir un buzón real de uno inventado. Algunas llegan a una persona, otras a un buzón compartido y otras rebotan más tarde o desaparecen. «Arriesgada» es la etiqueta honesta.

¿Se puede verificar un email en un dominio catch-all?

No con certeza por SMTP, porque el servidor da la misma respuesta para cada destinatario. Lo que sí puedes hacer es sopesar las pruebas alrededor de la dirección: si sigue un patrón de nombre ya confirmado en ese dominio, tu propio historial con ella y las señales sobre el propio dominio.

¿Cómo detectan los verificadores un dominio catch-all?

En la misma conexión usada para la dirección real, el verificador pregunta al servidor por una dirección aleatoria del mismo dominio que no puede existir. Si el servidor también la acepta, el dominio es catch-all. BounceIntel usa una parte local aleatoria de 15 caracteres e informa del resultado en smtp.is_catch_all.

¿La comprobación catch-all envía un email a alguien?

No. La comprobación se detiene antes de transmitir cualquier mensaje. Solo se pregunta al servidor si aceptaría cada destinatario y luego se cierra la conexión.

¿Debo enviar a direcciones catch-all?

A menudo sí, pero no a ciegas. Envía a las que tengan pruebas a favor en un segmento aparte y más pequeño, vigila de cerca los rebotes y elimina cualquier dirección con rebote duro. Suprime las direcciones catch-all sin interacción ni otras pruebas, sobre todo en listas compradas o antiguas.

¿Cómo encuentro direcciones catch-all en la API de BounceIntel?

Lee smtp.is_catch_all en la respuesta. La dirección también lleva el código de motivo catch_all, un código de gravedad (catch_all_low_confidence, catch_all_medium_confidence o catch_all_high_risk) y un objeto score.catch_all con la gravedad, un valor de confianza y los factores que la explican.

Protege tu reputación como remitente antes del próximo envío.

Verifica una lista, conecta la API a tu formulario de registro y mantén las direcciones malas lejos de tus campañas.