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
- ATTENTION ! Sous Windows, cette fonction n'est supporté qu'à partir de «PHP version 5.3.0». Pour les version antérieur, il faudra utilisé une commande «nslookup -type=MX» disponible sous l'interpréteur de commande du système d'exploitation combiné avec un «regex» afin d'obtenir cette information. Ensuite, il faudra changer les autorisations de Windows afin d'autoriser le «Compte Invité d'Internet» l'exécution du programme «system32/nslookup.exe».
Exemple
Voici un exemple retourné par cette fonction :
- <?php
- function callback($string) {
- global $message;
- $message = $string;
- return $message;
- }
-
- if (!function_exists('getmxrr')) {
-
- /**
- * Cette fonction permet d'émuler la fonction «getmxrr» sous Windows, si elle n'existe pas à l'aide de NSLOOKUP.
- * L'auteur est HM2K <php [spat] hm2k.org>, j'ai dû là modifier, car je recevais des messages d'erreurs d'entête
- * CGI non retourné à cause d'accès refusé.
- *
- * @name getmxrr
- * @author HM2K <php [spat] hm2k.org>
- * @since 2011/10/05
- *
- */
-
- function getmxrr($hostname, &$mxhosts, &$mxweight=false) {
- if (strtoupper(substr(PHP_OS, 0, 3)) != 'WIN') return false;
- if(empty($hostname)) return false;
- $mxhosts = array();
- ob_start();
- header("Content-type: text/html");
- ob_end_flush();
- flush();
- ob_start("callback");
- exec('nslookup -type=MX '.escapeshellarg($hostname),$output);
- ob_end_clean();
- if(empty($output)) return false;
- $i=-1;
- foreach ($output as $line) {
- $i++;
- if (preg_match("/^$hostname\tMX preference = ([0-9]+), mail exchanger = (.+)$/i", $line, $parts)) {
- $mxweight[$i] = trim($parts[1]);
- $mxhosts[$i] = trim($parts[2]);
- }
- if (preg_match('/responsible mail addr = (.+)$/i', $line, $parts)) {
- $mxweight[$i] = $i;
- $mxhosts[$i] = trim($parts[1]);
- }
- }
- return ($i!=-1);
- }
- }
-
- if(getmxrr("gladir.com",$gladirMX)) {
- var_dump($gladirMX);
- } else {
- echo "Aucun enregistrement MX n'a été trouvé !";
- echo $message;
- }
- ?>
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