Position actuelle: Accueil> Derniers articles> Comment utiliser la fonction GetMXRR pour implémenter un mécanisme de vérification simple et efficace de la boîte aux lettres?

Comment utiliser la fonction GetMXRR pour implémenter un mécanisme de vérification simple et efficace de la boîte aux lettres?

gitbox 2025-07-10

Dans le développement Web, la vérification des boîtes aux lettres est une fonctionnalité commune et importante. Qu'il s'agisse d'enregistrement de l'utilisateur, de récupération de mot de passe ou d'autres scénarios, la vérification si l'adresse e-mail fournie par l'utilisateur est valide peut efficacement améliorer la sécurité et l'expérience utilisateur du système. En tant que langage de programmation côté serveur largement utilisé, PHP fournit plusieurs méthodes pour la vérification des boîtes aux lettres, où la fonction GetMXRR est un outil très utile. Cet article présentera comment utiliser la fonction GetMXRR pour implémenter un mécanisme de vérification simple et efficace de la boîte aux lettres.

1. Quelle est la fonction GetMXRR ?

GetMXRR est une fonction intégrée en PHP pour obtenir l'enregistrement d'échange de courrier (MX) du nom de domaine spécifié. L'enregistrement MX est un enregistrement dans DNS (système de nom de domaine) qui spécifie le nom d'hôte du serveur de messagerie. Lorsque nous obtenons l'enregistrement MX d'un nom de domaine via la fonction GetMXRR , cela signifie que le nom de domaine a un serveur qui peut recevoir du courrier, afin qu'il puisse nous aider à déterminer si la boîte aux lettres est valide.

Prototype de fonction:

 <span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">getmxrr</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">array</span></span><span> &amp;</span><span><span class="hljs-variable">$mxhosts</span></span><span> [, </span><span><span class="hljs-keyword">array</span></span><span> &amp;</span><span><span class="hljs-variable">$weight</span></span><span> = </span><span><span class="hljs-literal">NULL</span></span><span> ] )
</span></span>

Description du paramètre:

  • $ hostname : le nom de domaine à interroger, généralement la partie du nom de domaine de l'adresse e-mail.

  • $ MXHOSTS : Renvoie le tableau de résultat contenant la liste des serveurs d'échange de courrier liés au nom de domaine.

  • $ poids (facultatif): le tableau de priorité du serveur d'échange de courrier.

2. Principe de vérification par e-mail

La vérification par e-mail est généralement divisée en deux étapes: la vérification de la syntaxe et la vérification du nom de domaine.

  • Vérification de la syntaxe : Vérifiez si le format de la boîte aux lettres est correct, par exemple s'il contient le symbole @ et s'il répond au format de boîte aux lettres standard.

  • Vérification du nom de domaine : Vérifiez si la partie du nom de domaine de la boîte aux lettres a un enregistrement MX valide pour confirmer si le nom de domaine de la boîte aux lettres peut recevoir des e-mails.

La fonction GETMXRR nous aide à terminer la deuxième étape - Vérification du nom de domaine.

3. Utilisez la fonction GetMXRR pour implémenter la vérification des boîtes aux lettres

Nous utilisons la fonction GetMXRR pour vérifier s'il existe un serveur de messagerie valide dans la partie du nom de domaine de la boîte aux lettres. Voici l'exemple de code pour implémenter la vérification des boîtes aux lettres:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>

</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">isValidEmail</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$email</span></span></span><span>) {
    </span><span><span class="hljs-comment">// Vérifiez le format de la boîte aux lettres en utilisant des expressions régulières</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">filter_var</span></span><span>(</span><span><span class="hljs-variable">$email</span></span><span>, FILTER_VALIDATE_EMAIL)) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
    }

    </span><span><span class="hljs-comment">// Obtenez la partie du nom de domaine de l&#39;adresse e-mail</span></span><span>
    </span><span><span class="hljs-variable">$domain</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-title function_ invoke__">strrchr</span></span><span>(</span><span><span class="hljs-variable">$email</span></span><span>, </span><span><span class="hljs-string">"@"</span></span><span>), </span><span><span class="hljs-number">1</span></span><span>);

    </span><span><span class="hljs-comment">// utilisergetmxrrObtenez le nom de domaineMXEnregistrer</span></span><span>
    </span><span><span class="hljs-variable">$mxhosts</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-comment">// S&#39;il peut être obtenu avec succèsMXEnregistrer,Cela signifie que le nom de domaine des e-mails est valide</span></span><span>
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-comment">// S&#39;il ne peut pas être obtenuMXEnregistrer,Indique que le nom de domaine des e-mails n&#39;est pas valide</span></span><span>
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
    }
}

</span><span><span class="hljs-comment">// Tester le courrier électronique</span></span><span>
</span><span><span class="hljs-variable">$email</span></span><span> = </span><span><span class="hljs-string">"[email protected]"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">isValidEmail</span></span><span>(</span><span><span class="hljs-variable">$email</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Le courrier électronique est valide"</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">"E-mail non valide"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

4. Analyse de code

  • filter_var ($ e-mail, filter_validate_email) : d'abord, effectuez la vérification de la syntaxe de la boîte aux lettres via la fonction filter_var . Si le format de boîte aux lettres est incorrect, la fonction renvoie false .

  • substr (strrchr ($ e-mail, "@"), 1) : utilisez la fonction strrchr pour obtenir la partie de nom de domaine dans la boîte aux lettres (c'est-à-dire la pièce après le symbole @ ), puis utilisez substr pour supprimer le symbole @ pour obtenir un nom de domaine pur.

  • getmxrr ($ domain, $ mxhosts) : utilisez la fonction getmxrr pour obtenir l'enregistrement MX du nom de domaine. Si TRUE est retourné, cela signifie que le nom de domaine est valide et que vous pouvez recevoir des e-mails; Si false est renvoyé, cela signifie que le nom de domaine n'a pas de serveur de messagerie et que la boîte aux lettres n'est pas valide.

5. Choses à noter

  • Vérification du nom de domaine uniquement : il convient de noter que GetMXRR ne peut que vérifier s'il existe un serveur de messagerie valide dans la partie du nom de domaine de la boîte aux lettres, et il ne peut pas vérifier si l'utilisateur spécifique de la boîte aux lettres existe. Par exemple, si la partie du nom de domaine de [email protected] est valide, cela ne signifie pas que le compte de messagerie de [email protected] existe.

  • Problèmes de mise en cache : certains serveurs DNS peuvent mettre en cache les enregistrements MX. Si les enregistrements MX de la boîte aux lettres sont modifiés dans certaines circonstances particulières, il peut prendre un certain temps à mettre à jour. Par conséquent, bien que GetMXRR puisse vérifier efficacement si le nom de domaine de la boîte aux lettres existe, il ne garantit pas en temps réel.

  • Empêcher les abus : lors de la mise en œuvre de la vérification des boîtes aux lettres, il est recommandé d'éviter d'appeler la fonction GetMXRR trop fréquemment, car cela augmente la charge du serveur DNS et peut faire considérer le serveur.

6. Conclusion

L'utilisation de la fonction GetMXRR pour la vérification des boîtes aux lettres est une méthode simple et efficace. Il aide les développeurs à déterminer si la boîte aux lettres est valide en vérifiant l'enregistrement MX de la pièce de nom de domaine de boîte aux lettres. Bien qu'il ne puisse pas vérifier l'existence du compte de messagerie lui-même, pour la plupart des scénarios, la vérification du nom de domaine est suffisante pour répondre aux besoins. Dans les applications pratiques, la combinaison de la vérification de la syntaxe et de la vérification du nom de domaine peut efficacement améliorer la précision de la vérification des boîtes aux lettres et éviter l'enregistrement du spam et non valide.