|
|
|
|
|
для: 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 в 19:11)
| | Не совсем то, что надо. Это практически выдержка из мануала - описание функции getmxrr.
А ещё в "РНР на примерах..." тоже нашел нечто похожее.
Интересно, а когда происходит отправка сообщения функцией mail( ), получает ли отправитель к-л. отклик от сервера, получившего послание ?
PS. RFC 2821 не читал, каюсь... | |
|
|
|
|
|
|
|
для: 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;
}
|
| |
|
|
|
|
|
|
|
для: elenaki
(09.04.2008 в 13:50)
| | >...какая лафа была бы спаммерам...
Согласен! И с тем, что быстро проверить (непосредственно в процессе регистрации) не получится - тоже!
Ну а если что-то наподобие "запросить подтверждение прочтения" (как сделано на том же майл.ру), когда приходит отклик почтового сервера-получателя? То есть, как это устроено в принципе, алгоритм? | |
|
|
|
|
|
|
|
для: Evgen
(09.04.2008 в 13:43)
| | если б было так просто проверить существование ящика - какая лафа была бы спаммерам...
можно проверить только наличие почтового сервера на домене. и то это много времени
занимает. послать ему запрос и получить ответ. но если юзер ошибся в имени ящика, а не
в домене, то никак. | |
|
|
|
|
|
|
| При регистрации на сайте скрипт отправляет клиенту пароль на мыло, указанное им. Поскольку, как оказалось, не все эти письма доходят до получателя (ошибки написания, настройки антиспама ящика и тп), то возникает вопрос - как проверить существование того адреса, что ввел пользователь в регистрационную форму (кроме регулярок, проверяющих на формат name@domen.ru) ?
PS. Хотя очевидно, что неправильный адрес и антиспам - разные проблемы, и соответственно разные пути их решения... | |
|
|
|
|