Section courante

A propos

Section administrative du site

GETMXRR

Demande l'enregistrement MX
PHP 4.0+

Syntaxe

function getmxrr($hostname, $mxhosts);
function getmxrr ($hostname, $mxhosts, $weight);

Paramètres

Nom Description
$hostname Ce paramètre permet d'indiquer l'adresse du nom de domaine de l'hôte
$mxhosts Ce paramètre permet de recevoir les informations de l'enregistrement MX.
$weight Ce paramètre permet de recevoir les informations de poids.

Description

Cette fonction permet de demander l'enregistrement MX (qu'utilise les serveurs d'envoi de courriels) du nom de domaine.

Remarques

Exemple

Voici un exemple retourné par cette fonction :

  1. <?php
  2. function callback($string) {
  3.     global $message;
  4.     $message = $string;
  5.     return $message;
  6. }
  7.  
  8. if (!function_exists('getmxrr')) {
  9.     
  10.     /**
  11.      * Cette fonction permet d'émuler la fonction «getmxrr» sous Windows, si elle n'existe pas à l'aide de NSLOOKUP.
  12.      * L'auteur est HM2K <php [spat] hm2k.org>, j'ai dû là modifier, car je recevais des messages d'erreurs d'entête 
  13.      * CGI non retourné à cause d'accès refusé.
  14.      *
  15.      * @name                                getmxrr
  16.      * @author                              HM2K <php [spat] hm2k.org>
  17.      * @since                               2011/10/05
  18.      *
  19.      */
  20.     
  21.     function getmxrr($hostname, &$mxhosts, &$mxweight=false) {
  22.         if (strtoupper(substr(PHP_OS, 0, 3)) != 'WIN') return false;
  23.         if(empty($hostname)) return false;
  24.         $mxhosts = array();
  25.         ob_start();
  26.         header("Content-type: text/html");
  27.         ob_end_flush(); 
  28.         flush();
  29.         ob_start("callback");
  30.           exec('nslookup -type=MX '.escapeshellarg($hostname),$output);
  31.           ob_end_clean();
  32.         if(empty($output)) return false;
  33.         $i=-1;
  34.         foreach ($output as $line) {
  35.             $i++;
  36.             if (preg_match("/^$hostname\tMX preference = ([0-9]+), mail exchanger = (.+)$/i", $line, $parts)) {
  37.               $mxweight[$i] = trim($parts[1]);
  38.               $mxhosts[$i] = trim($parts[2]);
  39.             }
  40.             if (preg_match('/responsible mail addr = (.+)$/i', $line, $parts)) {
  41.               $mxweight[$i] = $i;
  42.               $mxhosts[$i] = trim($parts[1]);
  43.             }
  44.         }
  45.         return ($i!=-1);
  46.     }
  47. }
  48.  
  49. if(getmxrr("gladir.com",$gladirMX)) {
  50.    var_dump($gladirMX);
  51. } else {
  52.    echo "Aucun enregistrement MX n'a été trouvé !";
  53.    echo $message;
  54. }
  55. ?>

on obtiendra le résultat suivant :

array(1) { [3]=> string(9) "gladir.ca" }

Voir également

Langage de programmation - PHP - Référence de procédures et fonctions - CHECKDNSRR
Langage de programmation - Perl - Référence des modules - Email::Valid
DNS - Création d'un DNS en réseau local pour un site Web

Dernière mise à jour : Dimanche, le 5 avril 2015