dns_get_mx în PHP

Rețea PHP 5.3+

Află serverele de email (înregistrările MX) ale unui domeniu și prioritățile lor.

Sintaxă
dns_get_mx(string $hostname, &$hosts, &$weights = null): bool

Ce face dns_get_mx

dns_get_mx pune în $hosts numele serverelor care primesc email pentru domeniu și, opțional, în $weights prioritățile lor, în aceeași ordine. Prioritatea mai mică înseamnă server încercat primul.

Numele vechi getmxrr este un alias. Pentru toate detaliile (inclusiv TTL), folosește dns_get_record($domeniu, DNS_MX).

Parametri

Parametru Descriere
$hostname Domeniul.
$hosts Variabilă în care se pune tabloul cu serverele.
$weights Opțional. Variabilă în care se pun prioritățile.

Ce returnează

true dacă s-au găsit înregistrări MX, altfel false.

Exemple

Exemplul 1: Serverele de email, ordonate

Funcția nu ordonează rezultatul. array_combine leagă fiecare server de prioritatea lui, apoi asort le ordonează.

<?php
if (dns_get_mx("gmail.com", $servere, $prioritati)) {
    $mx = array_combine($servere, $prioritati);
    asort($mx);
    foreach ($mx as $server => $prioritate) {
        echo "$prioritate $server\n";
    }
}

Rezultat posibil (depinde de DNS)

5 gmail-smtp-in.l.google.com
10 alt1.gmail-smtp-in.l.google.com
20 alt2.gmail-smtp-in.l.google.com
30 alt3.gmail-smtp-in.l.google.com
40 alt4.gmail-smtp-in.l.google.com

Greșeli frecvente

  • Iei primul element din $hosts ca server principal. Ordinea vine de la DNS, nu după prioritate. Ordonează după $weights.

Comenzi înrudite

  • dns_check_record: Verifică dacă un domeniu are înregistrări DNS de un anumit tip (implicit MX, adică poate primi email).
  • dns_get_record: Citește înregistrările DNS ale unui domeniu: A, AAAA, MX, TXT, NS, CNAME și altele.
  • sort: Sortează elementele unui tablou crescător. Există și variante pentru descrescător și pentru chei.