Svarga
Moderator | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору IntenT Цитата: Так коннектиться надо к тому серверу, на котором находится этот почтовый ящик. Тут надо ДНС-запрос отправлять и парсить ответ на предмет МХ-записей. | Немного более verbose mode для ранее приведённого скрипта: Код: <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <body onLoad="document.forms[0].elements[0].focus()"> <?php if($email=$_GET['mail']) { print "<pre><b>\nПроверяем $email</b>\n\n"; global $HTTP_HOST; list ( $Username, $Domain ) = split ("@",$email); if (getmxrr($Domain, $MXHost)) { $ConnectAddress = $MXHost[0]; print "MXHost = $MXHost[0]\n"; } else{$ConnectAddress = $Domain;} $Connect = fsockopen ( $ConnectAddress, 25 ); print "Соединяемся с $ConnectAddress...\n"; if ($Connect) { if (ereg("^220", $Out = fgets($Connect, 1024))) { fputs ($Connect, "HELO $HTTP_HOST\r\n"); $Out = fgets ( $Connect, 1024 ); print "out = $Out\n"; fputs ($Connect, "MAIL FROM: <{$email}>\r\n"); $From = fgets ( $Connect, 1024 ); print "from = $From\n"; fputs ($Connect, "RCPT TO: <{$email}>\r\n"); $To = fgets ($Connect, 1024); print "to = $To\n"; fputs ($Connect, "QUIT\r\n"); fclose($Connect); if (!ereg ("^250", $From) || !ereg ( "^250", $To )) {print"\nневерный e-mail<br>ответ сервера отрицательный";} else {print "\n$email скорее всего правилен.";} } else{print "\nневерный e-mail<br>нет ответа сервера";} } else{print "\nневозможно соедениться с сервером.";} print "</pre>\n<hr>\n"; } ?><div align=center> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method=get>Введите адрес для проверки:<br> <input type=text name=mail> <input type=submit value=check> </div> | Кидаем на юниховый сервер и смотрим: prajapati {злая@собака} mail.ru (заведомо существующий адрес): Цитата: Проверяем prajapati {злая@собака} mail.ru MXHost = mxs.mail.ru Соединяемся с mxs.mail.ru... out = 250 mx12.mail.ru Hello www.***.net [00.000.00.000] from = 250 OK to = 250 Accepted prajapati {злая@собака} mail.ru скорее всего правилен. | заведомо несуществующий адрес в той же почтовой системе: Цитата: Проверяем sjfgsjgfsegfse@bk.ru MXHost = mxs.mail.ru Соединяемся с mxs.mail.ru... out = 250 mx3.mail.ru Hello www.***.net [00.000.00.000] from = 250 OK to = 250 Accepted sjfgsjgfsegfse@bk.ru скорее всего правилен. | Далее: Цитата: Проверяем support@webmoney.ru MXHost = smtp.webmoney.ru Соединяемся с smtp.webmoney.ru... out = 250 webmoney.ru Hello www.***.net, pleased to meet you from = 250 , Sender ok to = 530 Authentication required неверный e-mail ответ сервера отрицательный | реальный адрес нашей конторы: Цитата: Проверяем support@наша_контора.com MXHost = наша_контора.com Соединяемся с наша_контора.com... out = 220-Our system is not used for unsolicited from = 220 and bulk e-mail. to = 250 address.hoster.com Hello www.***.net [00.000.00.000] неверный e-mail ответ сервера отрицательный | + не только mail.ru, но и очень многие другие серверы отвечают 250 на любой (даже несуществующий) адрес на них. Как парсить такие будем? + Цитата: Cheery: все зависит от настроек.. и релеет ли сервак куда нить потом почту на внутренний домен. Очень часто так настроены дублирующие почтовики.. Собирают почту для какого то почтовика (они не имеют понятия о том, какие юзеры у них есть), а потом пытаются ему перекинуть. |
|