Проверка E-mail на основе проверки информации об обменах хостов


 


В этой статье я хочу рассказать, как на PHP можно реализовать
проверку E-mail на предмет существования. Хочу сразу предупредить,
что ни о каких регулярных выражениях, которые проверяют только
правильность синтаксиса введеного адреса, не будет и речи.
О такой проверке только ленивый не писал :-)
Я хочу описать способ более точной проверки введенного адреса
в форму, которая основана на проверке информации об обменах хостов.

Итак приступим к делу.
Допустим у нас есть форма, в которую посетитель сайта должен ввести свой E-mail,
чтобы в будущем получать новости:

<form action="check_email.php" method="post">
Введите ваш E-mail<input type="text" name="email" size="12">
<input type="submit" value="Жми!">
</form>

В файле-обработчике формы - check_email.php, производим следующие мероприятия:
1. Разбиваем введенный адрес на имя пользователя и имя хоста
   (для адреса tabyretkin@bla-bla.ru:
        tabyretkin - это пользователь  
        bla-bla.ru - это хост)

$email_arr = explode("@" , $email);
$emailhost = $email_arr[1];

2.  Далее следует "гвоздь программы" - функция getmxrr(), которая  возвращает набор
записей MX (Mail Exchange - почтового обмена). MX-запись содержится в DNS.

if (!getmxrr($emailhost, $mxhostsarr)):
{
   echo "На адрес $email нельзя отправить почту!";
   exit;
}

3.  При желании можно выдать список хостов, через которые возможна отправка писем.
Этот список находится в массиве $mxhostsarr

echo "На $email возможна отправка писем через следующие хосты: ";
for ($i=0; $i<count($mxhostsarr); $i++):
{
     echo $mxhostsarr[$i]."<br>";
}         

Дествующий пример можно посмотреть здесь:
http://www.pocherk.ru/price.html
Вот собственно и все.
 
В конце хочу отметить, что основой для этой статьи послужил пример из книги:
Л.Томсон, Л.Веллинг "Разработка Web-приложений на PHP и MySQL", изд. DiaSoft, 2001

Удачи вам! 
----------------------
Чернухин Евгений (Pocherk)
web-pocherk@mail.ru
http://www.pocherk.ru


   Перепечатка материалов разрешается, только после письменного разрешения автора (e-mail). При перепечатке любого материала с журнала видимая ссылка на источник www.wmaster.ru и все имена, ссылки авторов обязательны.
© Copyright Wmaster Design Group  2002. © Все права защищены. Designed by WWW.DESIGN.ST/udio