Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Определить: существует ли почтовый ящик?

Сообщения:  [1-7] 

 
 автор: elenaki   (09.04.2008 в 21:03)   письмо автору
 
   для: Evgen   (09.04.2008 в 20:37)
 

ini_set("max_execution_time",999999);
// проверка MX-записи
function detect_email($strmail="")
{
if($strmail=="")return 0;
$email_arr = explode("@", $strmail); 
$host = $email_arr[1];
$mxhostsarr="";
if(!getmxrr($host, $mxhostsarr)) 

return 0;
}else{
return 1;
}
}

   
 
 автор: Evgen   (09.04.2008 в 20:37)   письмо автору
 
   для: Evgen   (09.04.2008 в 19:11)
 

Не совсем то, что надо. Это практически выдержка из мануала - описание функции getmxrr.

А ещё в "РНР на примерах..." тоже нашел нечто похожее.

Интересно, а когда происходит отправка сообщения функцией mail( ), получает ли отправитель к-л. отклик от сервера, получившего послание ?

PS. RFC 2821 не читал, каюсь...

   
 
 автор: Evgen   (09.04.2008 в 19:11)   письмо автору
 
   для: mechanic   (09.04.2008 в 18:05)
 

Блдрю! Бум попробовать !

   
 
 автор: mechanic   (09.04.2008 в 18:05)   письмо автору
 
   для: Evgen   (09.04.2008 в 16:18)
 

есть у меня какой то код, но не проверял на работоспособность
define("EMAIL_EMPTY",1);
define("EMAIL_INVALID",2);
define("EMAIL_NO_MX_RECORD",3);
define("EMAIL_NO_SUCH_USER",4);

function valid_email($check_email) {
    if(trim($check_email)=="")
        return EMAIL_EMPTY;
    list($user,$domain)=explode("@",$check_email);

$match_user=eregi('^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$',$user);
    $match_domain=eregi('^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$',$domain);

    if(!$match_user || !$match_domain)
            return EMAIL_INVALID; 

    if(!getmxrr($domain,$mx))
    {
        if(gethostbyname($domain)==$domain)
                return EMAIL_NO_MX_RECORD;
        $ms=$domain;
    }
    else
    {
        $ms=$mx[0];
    }
    
    if(!$sock=fsockopen($ms,25))
    {
        echo "Can't connect to server<br>";
    }
    else
    {
        fgets($sock,255);
        fputs($sock,"HELO dh.net.ru\n");
        fgets($sock,255);
        fputs($sock,"MAIL FROM:dh@dh.net.ru\n");
        fgets($sock,255);
        fputs($sock,"RCPT TO:$check_email\n");
        $ans=fgets($sock,255);
        fputs($sock,"QUIT\n");
        if(!ereg("^250",$ans))
                return EMAIL_NO_SUCH_USER;
        fclose($sock);
    }
    
    return 0;
}

   
 
 автор: Evgen   (09.04.2008 в 16:18)   письмо автору
 
   для: elenaki   (09.04.2008 в 13:50)
 

>...какая лафа была бы спаммерам...

Согласен! И с тем, что быстро проверить (непосредственно в процессе регистрации) не получится - тоже!
Ну а если что-то наподобие "запросить подтверждение прочтения" (как сделано на том же майл.ру), когда приходит отклик почтового сервера-получателя? То есть, как это устроено в принципе, алгоритм?

   
 
 автор: elenaki   (09.04.2008 в 13:50)   письмо автору
 
   для: Evgen   (09.04.2008 в 13:43)
 

если б было так просто проверить существование ящика - какая лафа была бы спаммерам...
можно проверить только наличие почтового сервера на домене. и то это много времени
занимает. послать ему запрос и получить ответ. но если юзер ошибся в имени ящика, а не
в домене, то никак.

   
 
 автор: Evgen   (09.04.2008 в 13:43)   письмо автору
 
 

При регистрации на сайте скрипт отправляет клиенту пароль на мыло, указанное им. Поскольку, как оказалось, не все эти письма доходят до получателя (ошибки написания, настройки антиспама ящика и тп), то возникает вопрос - как проверить существование того адреса, что ввел пользователь в регистрационную форму (кроме регулярок, проверяющих на формат name@domen.ru) ?

PS. Хотя очевидно, что неправильный адрес и антиспам - разные проблемы, и соответственно разные пути их решения...

   

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования