Ce face dns_check_record
dns_check_record răspunde doar cu da sau nu: există cel puțin o înregistrare de tipul cerut? Tipul se dă ca text: "MX" (implicit), "A", "AAAA", "TXT", "NS", "CNAME", "ANY".
Se folosește des la formularele de înregistrare, ca să verifici că domeniul unei adrese de email chiar poate primi mesaje. Numele vechi checkdnsrr este un alias.
Parametri
| Parametru | Descriere |
|---|---|
$hostname |
Domeniul verificat, de exemplu "exemplu.ro". |
$type |
Opțional. Tipul înregistrării, ca text. Implicit "MX". |
Ce returnează
true dacă există înregistrări de acel tip, altfel false.
Exemple
Exemplul 1: Domeniul unui email poate primi mesaje?
Un domeniu fără MX poate primi totuși email pe adresa din înregistrarea A, de aceea verificăm ambele.
<?php
function domeniu_email_valid(string $email): bool
{
$domeniu = substr(strrchr($email, "@"), 1);
return dns_check_record($domeniu, "MX") || dns_check_record($domeniu, "A");
}
foreach (["ana@gmail.com", "ion@domeniu-inexistent.invalid"] as $email) {
echo $email . ": " . (domeniu_email_valid($email) ? "valid" : "invalid") . "\n";
}
Rezultat posibil (depinde de DNS)
ana@gmail.com: valid
ion@domeniu-inexistent.invalid: invalid
Greșeli frecvente
- Consideri că un domeniu cu MX dovedește că adresa există. Verificarea arată doar că domeniul primește email, nu că există căsuța
ana@.... Trimite un email de confirmare. - Dai adresa întreagă (
ana@gmail.com) în loc de domeniu. Răspunsul estefalse.
Comenzi înrudite
dns_get_mx: Află serverele de email (înregistrările MX) ale unui domeniu și prioritățile lor.dns_get_record: Citește înregistrările DNS ale unui domeniu: A, AAAA, MX, TXT, NS, CNAME și altele.filter_var: Validează sau curăță o valoare: email, număr întreg, URL, adresă IP, valoare booleană.