Главная » Полезные статьи » Язык PHP » PHP и DNS. Проверка почтового адреса
Распечатать статью

PHP и DNS. Проверка почтового адреса

Функция getmxrr

string getmxrr(string hostname, array mxhost, [, array weight])

Эта функция принимает в качестве аргумента имя хоста
hostname
в данном домене и заполняет массив
mxhost
списком почтовых ретрансляторов этого домена. Если указан третий необязательный аргумент weight ,
то функция заполняет его значениями предпочтения, которые возвращает ей почтовый ретранслятор

Обычно когда требуется послать сообщения по адресу username@someserver.com,
необходимо сначала узнать хост почтового ретранслятора для домена someserver.com, а затем получить его ip-адрес.
После этого можно соединяться с хостом для доставки почты.
В домене может быть несколько почтовых ретрансляторов с разными значениями предпочтения, поэтому,
получив список ретрансляторов, имеет смысл устанавливать соединение с тем из них, который имеет максимальное значение предпочтения.

В следующем листинге показан пример кода, с помощью которого можно получить список почтовых ретрансляторов:

Получение списка почтовых ретрансляторов

<? $domain = "server.com"; getmxrr($domain, $maillist, $priority); echo("Список почтовых ретрансляторов хоста $domain: <br>n"); for($i = 0; $i < count($maillist), ++$i) { echo("$maillist[$i] = $priority[$i] <br>n"); } ?>

Проверка существования адреса электронной почты

Заметим сразу, что речь идет не о проверке адресов с помощью регулярного выражения,
а о проверке существования хоста почтового ретранслятора для некоторого домена.
Т.е. приведенный выше код можно практически не перерабатывая приспособить для проверки существования e-mail адреса:

<? $email_arr = explode("@" , $email); $host = $email_arr[1]; if (!getmxrr($host, $mxhostsarr)) { echo "На адрес $email отправка почты невозможна"; exit; } getmxrr($host, $mxhostsarr, $weight); echo "На $email письма могут отправляться через следующие хосты:<br>"; for ($i=0; $i < count($mxhostsarr); $i++) { echo ("$mxhostsarr[$i] = $weight[$i]<br>"); } ?>
Источник: internet-technologies.ru
Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи