Saltar al contenido principal

Consulta MX: adónde se entrega de verdad el correo de un dominio

Todos los registros MX de un dominio, ordenados como los lee un servidor que envía, con IP, DNS inverso y estado en listas negras en el Mac.

Por Lucas Russo, desarrollador de SSHive · Actualizado el

El correo ha dejado de llegar, o está llegando al servidor equivocado. Lo primero que hay que establecer no es si tu cortafuegos está abierto o tu buzón lleno, sino dónde cree internet ahora mismo que debe entregarse tu correo. Esa respuesta vive en un único sitio: los registros MX del dominio. Todos los servidores de correo emisores del planeta los consultan antes de abrir una sola conexión SMTP, y si dicen algo que no esperabas, nada de lo que venga después importa. La consulta MX es además el paso que la gente se salta tras una migración. Mueves un dominio a un proveedor nuevo, el cambio parece correcto en el panel de control, y el correo sigue cayendo en el buzón antiguo un día más porque los registros nunca se actualizaron o porque se sigue sirviendo una copia caducada. Una consulta de treinta segundos lo habría mostrado. SSHive ejecuta esa consulta por su cuenta, en Mac, iPhone y iPad. Pregunta a los resolutores DNS que tu dispositivo ya usa: sin API web por medio, sin cuenta y sin anuncios. En el Mac no se queda en la lista de registros: cada servidor de intercambio se resuelve a sus direcciones IPv4, cada dirección se resuelve a la inversa hasta su nombre PTR, y la primera dirección de cada servidor se comprueba contra ocho zonas DNSBL. Obtienes todo el borde de correo de un dominio en una tabla: quién recibe, en qué orden, en qué hosts y si esos hosts arrastran un problema de reputación. En iPhone y iPad obtienes la lista de registros en sí, prioridad y nombre del servidor de intercambio, sacada del resolutor del sistema con una consulta DNS de tipo 15 real, que es más de lo que te dan las APIs estándar de iOS. Es gratis en Mac, iPhone y iPad, incluida la versión del Mac App Store en sandbox: ninguna herramienta de red de SSHive está tras la barrera Pro. Un límite dicho sin rodeos: esto es una herramienta de MX y reputación, no una auditoría completa de autenticación de correo. SSHive no inspecciona SPF, DKIM, DMARC, MTA-STS ni TLS-RPT, no captura banners SMTP y no prueba el puerto 25 en ninguna plataforma.

Qué hace SSHive

Prioridades, en el orden en que SMTP las lee

SSHive consulta los registros MX del dominio y los ordena de forma ascendente por preferencia, que es exactamente el orden en que los recorre un MTA emisor. Se prueba primero el número más bajo. En macOS el resultado es una tabla de cinco columnas; en iPhone y iPad cada fila lleva una cápsula de prioridad con color: verde hasta 10, naranja hasta 20 y roja por encima.

Cada servidor de intercambio resuelto a sus direcciones

En macOS, cada nombre de host MX se resuelve a sus direcciones IPv4 y se muestra separado por comas en la columna IP. Una raya significa que no volvió ningún registro A: o el host es solo IPv6, ya que SSHive resuelve aquí en IPv4, o el MX apunta a un nombre que ya no existe. Ambas cosas merecen investigarse.

DNS inverso para cada IP de servidor de correo

La columna rDNS muestra el nombre PTR de cada dirección resuelta. Revela quién opera realmente el host que hay detrás de un nombre MX de fachada, y deja al descubierto los PTR genéricos de proveedor que los servidores receptores suelen penalizar en el correo saliente. La resolución inversa no tiene tarjeta propia en el panel de escritorio: aquí es donde aflora.

Estado en listas negras en línea, ocho zonas

En macOS, la primera IPv4 de cada servidor de intercambio se comprueba en paralelo contra zen.spamhaus.org, b.barracudacentral.org, bl.spamcop.net, dnsbl.sorbs.net, bl.mailspike.net, dnsbl-1.uceprotect.net, psbl.surriel.com y all.s5h.net. La columna muestra una píldora verde «No listado», o una píldora roja «En lista negra» cuya descripción emergente nombra las zonas exactas que marcaron la dirección.

Consultas MX reales en iPhone y iPad

iOS solo expone la resolución de nombre a dirección, así que getaddrinfo nunca puede devolver un registro MX. SSHive emite una consulta de tipo 15 auténtica a través del resolutor BSD, analiza él mismo la sección de respuesta y lee la preferencia de 16 bits directamente del cable. Obtienes prioridad y nombre del servidor de intercambio, hasta 32 registros, con un botón de copia en cada fila.

Gratis en todas las plataformas, sin anuncios

La consulta MX no es una función Pro. Ninguna de las herramientas de red de SSHive está bloqueada en ninguna plataforma: sin aviso de compra en el panel de herramientas, sin anuncio antes de una consulta y sin cuenta que crear. Pro, un pago único en compra universal para Mac, iPhone y iPad, es lo que necesitas para pasar de 2 sesiones SSH simultáneas o 5 perfiles guardados, para los túneles remotos y para RDP y VNC.

Cómo hacerlo, paso a paso

  1. 1

    Abre el panel de herramientas de red en el Mac

    En la app de Mac, haz clic en el icono de red de la barra lateral o en la píldora Herramientas de red de la pantalla de bienvenida. Cualquiera de los dos abre una pestaña Herramientas de red. No hace falta ninguna sesión SSH ni ninguna conexión previa.

  2. 2

    Introduce el dominio en la tarjeta Búsqueda MX

    En el Mac, Búsqueda MX es la tercera tarjeta de la sección Resolución y reputación, después de Búsqueda DNS y Verificación DNSBL. Escribe el dominio del ápex, no un nombre de host (example.com, no mail.example.com), y pulsa «Buscar registros MX». El marcador del campo indica el formato esperado.

  3. 3

    Lee las cinco columnas

    Los resultados vuelven como Prioridad, Servidor MX, IP, rDNS y DNSBL, ordenados de forma ascendente por prioridad. Pasa el cursor por una píldora roja «En lista negra» para ver exactamente qué zonas marcaron la dirección; una píldora verde «No listado» significa que ninguna de las ocho zonas devolvió una respuesta 127.x.

  4. 4

    En iPhone o iPad, ve a Herramientas y luego a Email e IP

    Toca Herramientas en la barra de pestañas inferior del iPhone, o Herramientas de red en la barra lateral del iPad, y luego Consulta MX, la primera fila de la sección Email e IP. Introduce el dominio y ejecútalo. Cada fila muestra una cápsula de prioridad con color y el nombre del servidor de intercambio en monoespaciado.

  5. 5

    Encadena con la Verificación de lista negra en el móvil

    Para el detalle zona por zona en iPhone o iPad, toca el botón de copia de una fila de servidor, abre la Verificación de lista negra en esa misma sección Email e IP y pega el nombre de host: resuelve él mismo el nombre a su primera IPv4 y luego comprueba diez zonas DNSBL.

Cómo leer de verdad una tabla MX

El número de prioridad es una preferencia, no una nota de calidad, y su valor absoluto no significa nada. 5/10/20 y 1/2/3 describen exactamente el mismo enrutado. Solo importa el orden: un MTA emisor ordena de forma ascendente y prueba el más bajo primero, y pasa al siguiente únicamente cuando la conexión falla. Entre dos registros que comparten número se elige al azar: así funciona el reparto de carga a nivel de MX. Eso convierte al registro con el número más alto en el que hay que mirar con más atención. Un MX de respaldo es un punto débil clásico: suele ser más viejo, menos filtrado y menos vigilado que el principal, y los emisores de spam lo eligen deliberadamente justo por eso. Si tu tabla muestra un respaldo en un proveedor distinto del principal, confirma que todavía debe estar ahí. Un resultado vacío no es necesariamente una avería. Existen dos casos legítimos. Prioridad 0 con un único punto como servidor es un null MX (RFC 7505): el dominio declara que no recibe correo en absoluto, lo cual es correcto para un dominio usado solo para una web. Y un dominio sin registros MX no es inalcanzable: SMTP recurre al registro A o AAAA del propio dominio por la regla del MX implícito del RFC 5321. Se intentará entregar el correo contra tu servidor web, cosa que rara vez es la intención, pero no es silencio. Una raya en la columna IP significa que el servidor de intercambio no devolvió ningún registro A. SSHive resuelve aquí en IPv4, así que un servidor de correo solo IPv6 aparece en blanco; ejecuta DNS Lookup sobre ese nombre de host y comprueba si hay un AAAA antes de darlo por roto. La misma comprobación caza la otra mala configuración clásica: un MX que apunta a un CNAME, cosa que el RFC 2181 y el RFC 5321 prohíben y que algunos MTA rechazan de plano. Por último, un acierto DNSBL en un MX entrante no te impide recibir correo. Su valor está en que, en la mayoría de instalaciones pequeñas, ese mismo host también envía, y un listado en zen.spamhaus.org, consultado por una parte muy grande de los receptores, es un problema materialmente mayor que uno en dnsbl-1.uceprotect.net, que lista bloques de red enteros de forma agresiva y al que consultan muchos menos servidores. Lee la zona, no el recuento.

Preguntas frecuentes

¿Qué significa en realidad el número de prioridad MX?+
Es un valor de preferencia, y solo importa el orden. Un servidor de correo emisor ordena los registros de forma ascendente y prueba primero el número más bajo, y pasa al siguiente solo si la conexión falla. 5/10/20 y 1/2/3 describen un enrutado idéntico. Los registros que comparten número se eligen al azar, que es como funciona el reparto de carga a nivel de MX. El número no es una calificación de calidad y no lleva unidad.
Mi dominio no devuelve registros MX. ¿Está roto el correo?+
No necesariamente. Si un dominio no tiene ningún registro MX, SMTP recurre al propio registro A o AAAA del dominio por la regla del MX implícito del RFC 5321. Se intenta entregar el correo contra lo que sea tu servidor web, lo cual suele ser una mala configuración pero no es silencio. El otro caso legítimo es un null MX: un único registro con prioridad 0 y un punto suelto como servidor, que declara según el RFC 7505 que el dominio no recibe correo y hace que los emisores lo rechacen de inmediato.
¿Funciona MX Lookup en iPhone y iPad?+
Sí, en ambos, y gratis. Eso sí, la versión móvil es más estrecha que la del Mac: devuelve la prioridad y el nombre del servidor de intercambio, sin columna de IP ni DNS inverso, que solo existen en el Mac. El analizador móvil además se detiene en 32 registros. Para la reputación zona por zona de un resultado móvil, copia el nombre de host en la herramienta aparte Verificación de lista negra.
¿Está disponible MX Lookup en la versión del Mac App Store?+
Sí, con todas sus columnas y todas sus zonas DNSBL. MX Lookup es DNS normal sobre el resolutor del sistema, así que no necesita sockets raw y el App Sandbox no lo restringe. Ahí no hay nada restringido en el panel de herramientas: el ping y el traceroute envían ICMP real también desde la versión del App Store, a través de un socket de datagramas que no necesita privilegios.
¿SSHive comprueba SPF, DKIM o DMARC?+
No. No hay inspección de SPF, DKIM, DMARC, MTA-STS ni TLS-RPT en ninguna plataforma, ni captura de banners SMTP, ni prueba de conectividad al puerto 25. Lo que sí puedes hacer es leer los registros en bruto: el SPF se publica como registro TXT en el ápex del dominio, y la tarjeta Búsqueda DNS del Mac devuelve TXT junto a A, AAAA, MX, CNAME y NS. SSHive te muestra esa cadena; no la analiza ni la valida. Las políticas DMARC viven en el nombre aparte _dmarc.
¿Por qué la columna IP está vacía para uno de mis servidores de correo?+
El MX Lookup de escritorio resuelve los servidores de intercambio solo a IPv4, así que un servidor de correo solo IPv6 no tiene nada que mostrar y aparece con una raya tanto en la columna IP como en rDNS, y nunca se comprueba en listas negras, porque el motor DNSBL también es solo IPv4. La otra explicación es peor: el MX apunta a un nombre de host sin ningún registro de dirección. Ejecuta DNS Lookup sobre ese servidor para distinguir los dos casos. Si vuelve un registro AAAA, es el primero.
¿Puedo fiarme de un resultado «No listado»?+
En general sí, con una salvedad que conviene conocer. Varios operadores de DNSBL, Spamhaus en particular, rechazan las consultas que llegan desde grandes resolutores públicos y responden con un error o con un código de retorno genérico. El Mac cuenta como listada cualquier respuesta que empiece por 127., y como no listada todo lo demás, incluido un error de DNS, así que ahí ambos sentidos pueden engañarte en un resolutor público: Spamhaus rechaza esas consultas con un código 127.255.255.x, que se lee como «En lista negra» aunque no haya nada listado, mientras que una zona que responde con un error franco parece limpia aunque sí te tenga listado. iPhone y iPad apartan ambos casos como indeterminados en lugar de contarlos en un sentido o en otro. Cuando un resultado importa, confírmalo contra el resolutor de tu operador o con un comprobador web dedicado antes de actuar.

El MX en el cable, y qué hace falta para consultarlo desde un iPhone

Un registro MX es uno de los registros de recurso más simples del DNS y uno de los de mayor consecuencia. Tipo 15, clase IN, y una sección RDATA con exactamente dos partes: una preferencia de 16 bits en orden de red, seguida de un nombre de dominio para el servidor de intercambio. Ese nombre está sujeto a la compresión de nombres del DNS, así que con frecuencia se guarda como un puntero a una parte anterior del mensaje en lugar de como una cadena literal, razón por la cual no puedes leer una respuesta MX tratando el paquete como texto. El RFC 5321, sección 5.1, define qué hace un MTA emisor con ese conjunto. Consulta el MX del dominio destinatario, ordena los resultados por preferencia ascendente, resuelve cada servidor de intercambio a registros de dirección e intenta la entrega en ese orden, eligiendo al azar entre los registros que comparten valor de preferencia. Si la consulta MX no devuelve nada, el emisor recurre a los registros de dirección del propio dominio: la regla del MX implícito. Si devuelve un único registro con preferencia 0 y un punto suelto como servidor, el RFC 7505 dice que el dominio no acepta correo y que el emisor debe rechazarlo de inmediato en vez de reintentar durante cinco días. El servidor de intercambio tiene que ser un nombre de host con registros de dirección; no puede ser un CNAME ni una dirección literal. Conseguir esa respuesta en macOS es sencillo. SSHive usa el resolutor de Node basado en c-ares, que habla DNS directamente con los servidores que tiene configurados tu sistema operativo en lugar de pasar por getaddrinfo. resolveMx devuelve el conjunto, ordenado de forma ascendente. Cada servidor de intercambio pasa luego por resolve4, cada dirección resultante por una consulta PTR, y la primera dirección de cada servidor por el motor DNSBL, que despliega las ocho zonas en paralelo. Cada paso de enriquecimiento tiene su propio control de errores, así que un servidor sin registro PTR o sin registro A degrada a una raya en vez de hacer fallar toda la consulta. Nada de esto necesita un socket raw, y por eso MX Lookup se comporta igual en la versión del Mac App Store. iOS es el problema difícil. La red de alto nivel de Apple te da resolución de nombre a dirección y nada más: getaddrinfo y NWEndpoint devuelven registros A y AAAA, y no hay ninguna API pública de Swift para un tipo de registro arbitrario. Para leer MX (y, dado que el mismo auxiliar se generalizó, todos los demás tipos de registro que ahora muestra la pantalla DNS Lookup), SSHive baja hasta el resolutor BSD de libresolv mediante un pequeño auxiliar en C: res_init, luego res_query con clase C_IN y tipo T_MX para la respuesta en bruto, después ns_initparse y ns_parserr sobre la sección de respuesta, leyendo la preferencia en big-endian de los dos primeros bytes del RDATA y expandiendo el nombre comprimido del servidor con dn_expand. Swift ordena el resultado por preferencia y se lo entrega a la vista. Ninguna biblioteca resolutora de terceros, ninguna API web por el camino: la consulta va de tu dispositivo a los resolutores que ya está usando. Los costes son honestos. La consulta usa la configuración del resolutor del sistema: un portal cautivo o una red DNS64/NAT64 que maneje mal el tipo 15 hace fallar res_query, y la app informa de que no hay registros MX en lugar de dar un error de red. El analizador se detiene en 32 registros. Y en todas las plataformas no hay campo de servidor de nombres personalizado, ni visualización de TTL, ni inspección de SPF, DKIM, DMARC, MTA-STS o TLS-RPT.