Aktueller Standort: Startseite> Neueste Artikel> Wie kann ich die GetMxRR -Funktion verwenden, um einen einfachen und effektiven Mailbox -Überprüfungsmechanismus zu implementieren?

Wie kann ich die GetMxRR -Funktion verwenden, um einen einfachen und effektiven Mailbox -Überprüfungsmechanismus zu implementieren?

gitbox 2025-07-10

In der Webentwicklung ist die Postbox -Überprüfung eine häufigste und wichtige Funktion. Unabhängig davon, ob es sich um Benutzerregistrierung, Kennwortwiederherstellung oder andere Szenarien handelt, können Sie überprüfen, ob die vom Benutzer bereitgestellte E -Mail -Adresse gültig ist, die Sicherheits- und Benutzererfahrung des Systems effektiv verbessern kann. Als weit verbreitete serverseitige Programmiersprache bietet PHP mehrere Methoden für die Mailbox-Überprüfung, bei denen die GETMXRR -Funktion ein sehr nützliches Tool ist. In diesem Artikel wird vorgestellt, wie die GetMxRR -Funktion verwendet wird, um einen einfachen und effektiven Mailbox -Überprüfungsmechanismus zu implementieren.

1. Was ist die GetMxRR -Funktion?

GetMxRR ist eine integrierte Funktion in PHP, um den Datensatz für Mail Exchange (MX) des angegebenen Domänennamens zu erhalten. Der MX -Datensatz ist ein Datensatz in DNS (Domänenname -System), das den Hostnamen des Mailservers angibt. Wenn wir den MX -Datensatz eines Domänennamens über die GetMxRR -Funktion erhalten, bedeutet dies, dass der Domänenname einen Server enthält, der E -Mail empfangen kann. Damit können Sie feststellen, ob das Mailbox gültig ist.

Funktionsprototyp:

 <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>

Parameterbeschreibung:

  • $ hostname : Der zu befragte Domain -Name, normalerweise der Domänenname Teil der E -Mail -Adresse.

  • $ mxhosts : Gibt das Ergebnisarray mit der Liste der E -Mail -Exchange -Server zurück, die sich auf den Domain -Namen beziehen.

  • $ Gewicht (optional): Das Priority -Array des Mail Exchange -Server.

2. Prinzip der E -Mail -Überprüfung

Die E -Mail -Überprüfung ist normalerweise in zwei Schritte unterteilt: Überprüfung der Syntax- und Domänennamen.

  • Überprüfung der Syntax : Überprüfen Sie, ob das Format des Mailbox korrekt ist, z .

  • Überprüfung des Domain -Namens : Überprüfen Sie, ob der Domänenname -Teil des Mailbox einen gültigen MX -Datensatz hat, um zu bestätigen, ob der Domänenname des Mailboxs E -Mails erhalten kann.

Die GetMxRR -Funktion hilft uns, den zweiten Schritt zu vervollständigen - Domain -Namensbestätigung.

3.. Verwenden Sie die GetMxRR -Funktion, um die Mailbox -Überprüfung zu implementieren

Wir verwenden die GetMxRR -Funktion, um zu überprüfen, ob im Domänennamen Teil des Mailbox ein gültiger Mailserver vorhanden ist. Hier ist der Beispielcode zum Implementieren von Mailbox -Überprüfung:

 <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">// Überprüfen Sie das Postfachformat mit regulären Ausdrücken</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">// Holen Sie sich den Domainnamen Teil der E -Mail -Adresse</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">// verwendengetmxrrHolen Sie sich den DomainnamenMXAufzeichnen</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">// Wenn es erfolgreich erhalten werden kannMXAufzeichnen,Dies bedeutet, dass der Name der E -Mail -Domain gültig ist</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">// Wenn es nicht erhalten werden kannMXAufzeichnen,Gibt an, dass der Name der E -Mail -Domänen ungültig ist</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">// Test -E -Mail</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">"E -Mail ist gültig"</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">"Ungültige E -Mail"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

4. Code Parsen

  • filter_var ($ mail, filter_valate_email) : Erstens durch die Syntax -Prüfung des Mailboxs über die Funktion filter_var . Wenn das Mailbox -Format falsch ist, gibt die Funktion false zurück.

  • Substr (Strrchr ($ -M -E -Mail, " @"), 1) : Verwenden Sie die FRRCHR -Funktion, um den Domänennamenteil in der Mailbox (dh den Teil nach dem @ -Symbol) zu erhalten, und verwenden Sie dann Substr , um das @ -Symbol zu entfernen, um einen reinen Domänennamen zu erhalten.

  • getMxrr ($ domain, $ mxHosts) : Verwenden Sie die GetMxRR -Funktion, um den MX -Datensatz des Domänennamens zu erhalten. Wenn True zurückgegeben wird, bedeutet dies, dass der Domänenname gültig ist und Sie E -Mails erhalten können. Wenn FALSE zurückgegeben wird, bedeutet dies, dass der Domänenname keinen Mailserver hat und die Mailbox ungültig ist.

5. Dinge zu beachten

  • Nur Domänenname -Überprüfung : Es ist zu beachten, dass GetMxRR nur überprüfen kann, ob ein gültiger Mailserver im Domänennamenteil des Mailboxs vorhanden ist, und es kann nicht überprüfen, ob der spezifische Benutzer des Mailbox existiert. Wenn der Domänenname beispielsweise Teil von [email protected] gültig ist, bedeutet dies nicht, dass das E -Mail -Konto von [email protected] existiert.

  • Caching -Probleme : Einige DNS -Server können MX -Datensätze zwischenspeichern. Wenn die MX -Datensätze der Mailbox unter bestimmten besonderen Umständen geändert werden, kann die Aktualisierung eine gewisse Zeit dauern. Obwohl GETMXRR effektiv überprüfen kann, ob der Name des Mailbox-Domänennamens vorhanden ist, garantiert er keine Echtzeit.

  • Missbrauch verhindern : Bei der Implementierung der Mailbox -Überprüfung wird empfohlen, die GetMxRR -Funktion zu häufig zu rufen, da dies die Belastung des DNS -Servers erhöht und den Server als Missbraucher betrachtet.

6. Schlussfolgerung

Die Verwendung der GETMXRR -Funktion zur Mailbox -Überprüfung ist eine einfache und effiziente Methode. Es hilft Entwicklern, zu bestimmen, ob das Mailbox gültig ist, indem der MX -Datensatz des Mailbox -Domänennamens teilgenommen wird. Obwohl es die Existenz des E -Mail -Kontos selbst nicht überprüfen kann, reicht für die meisten Szenarien die Domain -Namensüberprüfung aus, um die Anforderungen zu erfüllen. In praktischen Anwendungen kann die Kombination von Syntaxüberprüfung und Domänenname -Überprüfung die Genauigkeit der Mailbox -Überprüfung effektiv verbessern und Spam und ungültige Mailbox -Registrierung vermeiden.