Position actuelle: Accueil> Derniers articles> Comment utiliser la fonction DNS_CHECK_RECORD pour vérifier les enregistrements d'échange de messagerie MX? Méthode de fonctionnement détaillée

Comment utiliser la fonction DNS_CHECK_RECORD pour vérifier les enregistrements d'échange de messagerie MX? Méthode de fonctionnement détaillée

gitbox 2025-07-09

Comment utiliser la fonction DNS_CHECK_RECORD pour vérifier les enregistrements d'échange de messagerie MX? Méthode de fonctionnement détaillée

Dans PHP, la fonction DNS_CHECK_RECORD peut être utilisée pour vérifier le type d'enregistrement DNS spécifié, en particulier l'enregistrement MX (Mail Exchange). Les enregistrements MX sont le type d'enregistrements DNS utilisé pour spécifier le serveur de messagerie qui reçoit le courrier. DNS_CHECK_RECORD est un outil très efficace lorsque vous devez vérifier qu'un nom de domaine a un ensemble d'enregistrements MX.

Qu'est-ce que MX Record?

Les enregistrements MX sont un type d'enregistrement dans DNS (système de noms de domaine) qui est utilisé pour spécifier le serveur de messagerie responsable de la réception et de la livraison des e-mails. Chaque serveur de messagerie doit avoir un enregistrement MX pointant vers son adresse IP. Sans configurer les enregistrements MX, le système de messagerie ne peut pas livrer correctement le courrier au serveur de messagerie correspondant.

Utilisation de la fonction DNS_CHECK_RECORD

La fonction DNS_CHECK_RECORD est utilisée pour vérifier si un type spécifique d'enregistrement DNS existe dans un nom de domaine spécifié. Il prend en charge une variété de types d'enregistrements DNS, y compris un enregistrement, un enregistrement MX, un enregistrement CNAME, etc. Ici, nous nous concentrerons sur l'inspection des enregistrements MX.

Syntaxe de la fonction DNS_CHECK_RECORD

 <span><span><span class="hljs-title function_ invoke__">dns_check_record</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$hostname</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$type</span></span><span> = DNS_MX): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
  • $ hostname : le nom de domaine à vérifier (par exemple, example.com ).

  • $ Type : Le type d'enregistrement à vérifier, par défaut est DNS_MX , c'est-à-dire vérifier les enregistrements MX. Si vous devez vérifier d'autres types d'enregistrements, vous pouvez les définir sur les constantes correspondantes (telles que DNS_A , DNS_CNAM , etc.).

  • Valeur de retour: renvoie true si l'enregistrement du type spécifié existe; S'il n'existe pas, revenez faux .

Étapes de fonctionnement

  1. Vérification des enregistrements de base MX

    Si vous avez seulement besoin de vérifier qu'un nom de domaine a des enregistrements MX, le moyen le plus simple est d'appeler DNS_CHECK_RECORD directement et de passer le nom de domaine cible.

     <span><span><span class="hljs-meta">&lt;?php</span></span><span>
    </span><span><span class="hljs-variable">$domain</span></span><span> = </span><span><span class="hljs-string">"example.com"</span></span><span>;
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">dns_check_record</span></span><span>(</span><span><span class="hljs-variable">$domain</span></span><span>, DNS_MX)) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$domain</span></span></span><span> has MX records.";
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$domain</span></span></span><span> does not have MX records.";
    }
    </span><span><span class="hljs-meta">?&gt;</span></span><span>
    </span></span>

    Ce code simple publiera des informations sur la question de savoir si le nom de domaine a des enregistrements MX.

  2. Obtenez des informations détaillées sur les enregistrements MX

    Si vous souhaitez savoir non seulement si le nom de domaine a des enregistrements MX, mais que vous souhaitez également obtenir des informations spécifiques d'enregistrements MX, vous pouvez utiliser la fonction GETMXRR . GetMXRR renvoie tous les enregistrements MX et leur priorité.

     <span><span><span class="hljs-meta">&lt;?php</span></span><span>
    </span><span><span class="hljs-variable">$domain</span></span><span> = </span><span><span class="hljs-string">"example.com"</span></span><span>;
    </span><span><span class="hljs-variable">$mxhosts</span></span><span> = [];
    </span><span><span class="hljs-variable">$mxweights</span></span><span> = [];
    
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">getmxrr</span></span><span>(</span><span><span class="hljs-variable">$domain</span></span><span>, </span><span><span class="hljs-variable">$mxhosts</span></span><span>, </span><span><span class="hljs-variable">$mxweights</span></span><span>)) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$domain</span></span></span><span> has the following MX records: \n";
        </span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$mxhosts</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> =&gt; </span><span><span class="hljs-variable">$host</span></span><span>) {
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Host: <span class="hljs-subst">$host</span></span></span><span>, Weight: " . </span><span><span class="hljs-variable">$mxweights</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
        }
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$domain</span></span></span><span> does not have MX records.";
    }
    </span><span><span class="hljs-meta">?&gt;</span></span><span>
    </span></span>

    Dans cet exemple, nous utilisons GetMXRR pour obtenir toutes les adresses de serveur MX ($ MXHOSTS) et leur priorité ($ MXweights). Ceci est très utile pour la vérification détaillée de la configuration d'échange de courrier du nom de domaine.

  3. Vérifiez les enregistrements MX pour plusieurs noms de domaine

    Si vous devez vérifier les enregistrements MX pour plusieurs noms de domaine, vous pouvez le faire en faisant boucle:

     <span><span><span class="hljs-meta">&lt;?php</span></span><span>
    </span><span><span class="hljs-variable">$domains</span></span><span> = [</span><span><span class="hljs-string">"example.com"</span></span><span>, </span><span><span class="hljs-string">"google.com"</span></span><span>, </span><span><span class="hljs-string">"yahoo.com"</span></span><span>];
    
    </span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$domains</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$domain</span></span><span>) {
        </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">dns_check_record</span></span><span>(</span><span><span class="hljs-variable">$domain</span></span><span>, DNS_MX)) {
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$domain</span></span></span><span> has MX records.\n";
        } </span><span><span class="hljs-keyword">else</span></span><span> {
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$domain</span></span></span><span> does not have MX records.\n";
        }
    }
    </span><span><span class="hljs-meta">?&gt;</span></span><span>
    </span></span>

    De cette façon, vous pouvez vérifier les enregistrements MX pour plusieurs noms de domaine à la fois.

Choses à noter

  1. Problèmes de mise en cache DNS : Dans certains cas, les résultats de la requête DNS peuvent être affectés par le cache local ou le cache du serveur DNS, de sorte que les enregistrements MX obtenus peuvent ne pas être à jour. Si ce problème se produit, vous pouvez envisager de rafraîchir le cache ou d'utiliser un autre serveur de résolution DNS.

  2. Prise en charge IPv6 : dans les environnements réseau modernes, de nombreux serveurs de messagerie ont commencé à prendre en charge IPv6. Si vous souhaitez vérifier les enregistrements IPv6, vous pouvez utiliser le type DNS_AAAA de DNS_CHECK_RECORD pour vérifier les enregistrements d'adresse IPv6.

  3. Priorité des enregistrements MX : les enregistrements MX ont généralement la priorité (indiqué par le champ "poids" du dossier d'échange de courrier). Plus le numéro de priorité est petit, plus la priorité du serveur de messagerie est élevée. La compréhension de ces priorités peut vous aider à mieux comprendre la configuration de votre serveur de messagerie.

Résumer

Il est très simple de vérifier si le nom de domaine est configuré avec les enregistrements MX Mail Exchange via la fonction DNS_CHECK_RECORD en PHP. De cette façon, vous pouvez rapidement vérifier que le système de messagerie est correctement configuré. De plus, en combinant la fonction GetMXRR , vous pouvez également obtenir des informations d'enregistrement MX plus détaillées, obtenant ainsi une compréhension plus complète de la configuration du service de messagerie du nom de domaine. Ces outils et techniques peuvent vous aider à garantir la stabilité et la fiabilité de votre service de messagerie lors du développement d'applications liées aux e-mails.