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

Автор: Aport Суббота, Январь 31st, 2015 Нет комментариев

Рубрика: Язык PHP

Функция getmxrr

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

Эта функция принимает в качестве аргумента имя хоста

hostname

в данном домене и заполняет массив

mxhost

списком почтовых ретрансляторов этого домена. Если указан третий необязательный
аргумент

weight

, то функция заполняет его значениями предпочтения,
которые возвращает ей почтовый ретранслятор

Функция

getmxrr

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

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

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


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


 

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

Заметим сразу, что речь идет не о проверке адресов с помощью
регулярного выражения, а о проверке существования хоста почтового ретранслятора
для некоторого домена. Т.е. приведенный выше код можно практически не
перерабатывая приспособить для проверки существования 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>"
);
}

?>

Источник: yapro.ru

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

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты