Saltar al contenido

Función getmxrr() de PHP: Todo lo que necesitas saber

Como desarrollador de PHP, es posible que necesites obtener los registros de intercambio de correo (MX) para un nombre de dominio determinado. En estos casos, se utilizaba históricamente la función getmxrr(). Importante: getmxrr() fue marcada como obsoleta en PHP 8.2 y eliminada en PHP 8.4. Para aplicaciones modernas de PHP, utiliza dns_get_record() en su lugar. Este artículo explica la función heredada para mantener bases de código antiguas.

¿Qué es la función getmxrr()?

La función getmxrr() realiza una búsqueda DNS en un nombre de dominio especificado y devuelve un array con todos los registros MX asociados. Requiere que la extensión dns esté habilitada en tu entorno PHP. La función devuelve true en caso de éxito y false en caso de fallo.

Cómo usar la función getmxrr()

El uso de la función getmxrr() es sencillo. A continuación se muestra la sintaxis de la función:

La sintaxis de PHP de la función getmxrr()

php
getmxrr($hostname, &$mxhosts, &$weight);

La función acepta tres parámetros:

  • $hostname: El nombre de dominio del cual deseas obtener los registros MX.
  • $mxhosts: Una referencia a un array que almacenará los hosts MX para el nombre de dominio. (Nota: En PHP 5.3+, el símbolo & solo es necesario en la firma de la función, no al llamarla).
  • $weight: Una referencia a un array que almacenará los pesos de prioridad de los hosts MX.

A continuación se muestra un ejemplo de cómo usar la función getmxrr() para obtener los registros MX de un nombre de dominio:

¿Cómo usar la función getmxrr()?

php
<?php

$hostname = "example.com";
$mxhosts = [];
$weight = [];
if (getmxrr($hostname, $mxhosts, $weight)) {
  for ($i = 0; $i < count($mxhosts); $i++) {
    echo "MX record for $hostname: " . $mxhosts[$i] . ", Weight: " . $weight[$i] ;
  }
} else {
  echo "No MX record found for $hostname";
}

En este ejemplo, obtenemos los registros MX para el nombre de dominio "example.com". La función realiza una búsqueda DNS y llena los arrays $mxhosts y $weight. Luego, iteramos sobre los arrays y mostramos los hosts MX y sus pesos. Si la búsqueda falla, el bloque else maneja el error de manera adecuada.

Conclusión

La función getmxrr() es una herramienta heredada para obtener registros MX en versiones antiguas de PHP. Al comprender su sintaxis y comportamiento, puedes mantener la compatibilidad con bases de código heredadas. Para nuevos proyectos, recomendamos usar dns_get_record() con la bandera de tipo DNS_MX en su lugar. Esperamos que este artículo haya sido útil para trabajar con funciones DNS históricas de PHP.

Práctica

¿Cuál es el papel de la función getmxrr() en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.