Un registro MX (del inglés Mail eXchange record, en español "registro de intercambio de correo") es un tipo de registro, un recurso DNS que especifica cómo debe ser encaminado un correo electrónico en internet. Los registros MX apuntan a los servidores a los cuales envían un correo electrónico, y a cuál de ellos debería ser enviado en primer lugar, por prioridad.
Cuando un mensaje de correo electrónico es enviado a través de internet, el remitente (el agente de transferencia de correo - MTA Mail Transfer Agent) hace una petición al DNS solicitando el registro MX para los nombres de dominio de destino. El nombre de dominio es la parte de la dirección de correo que va a continuación de la "@". Esta consulta devuelve una lista de nombres de dominios de servidores de intercambio de correo que aceptan correo entrante para dicho dominio, junto con un número de preferencia. Entonces el agente emisor (o remitente) intenta establecer una conexión SMTP (Simple Mail Transfer Protocol - Protocolo Simple de Transferencia de Correo) hacia uno de estos servidores, comenzando con el que tiene el número de preferencia más pequeño, y enviando el mensaje al primer servidor con el cual puede establecer una conexión. Si no hay registros MX disponibles, una segunda petición es solicitada al registro A (A Record) del dominio en su lugar.
El mecanismo MX permite usar múltiples servidores de correo para un solo dominio y establece el orden en el cual deberían ser interrogados, aumentando la probabilidad que el correo pueda ser entregado y proporcionando la capacidad de distribuir el procesamiento del correo entrante a través de múltiples servidores físicos. Esta característica resulta muy útil aplicada a un cluster de alta disponibilidad con puertas de enlace de correo baratas, que son capaces de procesar cientos de mensajes por segundo (además de poner en cuarentena o quitar spam y/o virus).
El mecanismo MX no garantiza la capacidad de proporcionar un servicio de correo en puertos TCP y UDP alternativos, ni tampoco la del balance de carga en un conjunto de servidores de igual prioridad (mediante la asignación de valores de carga para cada uno). A fecha de 2004, algunos MTA (Mail Transfer Agent), el más notable de ellos exim, soportan el uso de SRV records para la publicación de direcciones IP, puertos, prioridad y peso de los servidores de correo.
Un punto principal de confusión es el funcionamiento del sistema de selección de prioridad MX. La prioridad relativa de un servidor MX viene determinada por el número de preferencia presente en el registro MX del DNS. Cuando un cliente remoto (habitualmente otro servidor de correo) hace un MX lookup (operación de búsqueda) para el nombre de dominio, este consigue una lista de servidores y sus números de preferencias. El registro MX con un número de preferencia más pequeño tiene la mayor prioridad y será el primero en ser probado. El cliente remoto continuará recorriendo, de mayor a menor prioridad, la lista de servidores hasta que logre entregar con éxito el mensaje, o este sea permanentemente rechazado debido a un mensaje de servidor inalcanzable o a que la cuenta de correo no existe en ese servidor. Si hay más de una sola entrada con el mismo número de preferencia, todos ellos deben ser probados antes de desplazarse a una entrada con menor prioridad.
Una técnica habitual de los spammers es conectarse al servidor de menor prioridad MX de un dominio (los que poseen el valor numérico más grande) como intento de evitar los filtros antispam que pueden ser ejecutados en el servidor MX primario (de más alta prioridad). Los virus informáticos también han sido conocidos por emplear esta técnica en un esfuerzo por evitar los programas antivirus.
Si se desea consultar el registro MX de un dominio web desde un ordenador UNIX o GNU/Linux simplemente se escribe lo siguiente en una ventana de comandos: dig nombredeldominio MX
.[1] También es posible utilizar la utilería nslookup introduciendo nslookup -query=mx nombrededominio
[2]
Para comprobar el registro MX de un dominio en Windows, se puede abrir una ventana de línea de comandos (pulsar Inicio->Ejecutar, y escribir cmd
). Al aparecer la ventana de línea de comandos se debe escribir nslookup
y presionar tecla Entrar. Luego se escribe set type=mx
y se pulsa la entrar. Entonces se escribe server <DNS>
(donde <DNS> puede ser nameserver.example.org) y se presiona entrar. Por último se introduce el nombre de dominio, ejemplo wikipedia.org, se pulsa entrar, y aparecerá el registro MX.