Svarga
Moderator | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору arto Цитата: по стандарту '_' в имени домена не может присутствовать. | действительно ошибся, сорри IntenT Цитата: Валидность по форме проверить можно на 100%. | скажем, postmaster также часто вполне валидный адрес, хотя даже без собаки... т.е. всё-таки подавляющее большинство адресов по форме проверить можно, но, всё-таки, не все. Цитата: А вот на существование - еще проще. Достаточно просто приконнектиться к смтп и попробовать передать что-то типа hello somehost sender qqq@www.nnn rcpt_to address@to.test и парсить ответ на предмет ошибок. | Код: <?php $email=$_GET['mail']; global $HTTP_HOST; list ( $Username, $Domain ) = split ("@",$email); if (getmxrr($Domain, $MXHost)) {$ConnectAddress = $MXHost[0];} else{$ConnectAddress = $Domain;} $Connect = fsockopen ( $ConnectAddress, 25 ); if ($Connect) { if (ereg("^220", $Out = fgets($Connect, 1024))) { fputs ($Connect, "HELO $HTTP_HOST\r\n"); $Out = fgets ( $Connect, 1024 ); fputs ($Connect, "MAIL FROM: <{$email}>\r\n"); $From = fgets ( $Connect, 1024 ); fputs ($Connect, "RCPT TO: <{$email}>\r\n"); $To = fgets ($Connect, 1024); fputs ($Connect, "QUIT\r\n"); fclose($Connect); if (!ereg ("^250", $From) || !ereg ( "^250", $To )) {print"false. Server rejected address";} else {print "true<br>$email appears to be valid.";} } else{print "false<br>No response from server";} } else{print "false<br>Can not connect E-Mail server.";} ?> | Обращаемся к скрипту в виде script.php?mail=hjfghxzxzjfgkdhsf@mail.ru и скрипт говорит, что есть такой адрес, смотрим какой-нибудь wxcfiuweigshg@canada.com — тоже есть... хотя во многих случаях правильно говорит , короче, тоже до 100% далеко.
| Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 15:53 07-01-2004 | Исправлено: Svarga, 16:00 07-01-2004 |
|