Привет всем! Подскажите как проверить email перед сдедующей операцией отправки почты через SMTP Код (Text): fputs($smtp_connect, "RCPT TO:".$to."\r\n");//кому почта if(Fn_Get_Smtp_Code($smtp_connect)!=250) die("Ошибка: Сервер не принял адрес получателя ".$to); function Fn_Get_Smtp_Code($smtp_connect){ $line=""; while($str=fgets($smtp_connect, 515)){ $line.=$str; if(substr($str, 3 ,1)==" ") break; } $smtp_code=substr($line, 0, 3); return $smtp_code; } В начале я, конечно, проверяю корректность адреса Код (Text): function Fn_Email_Filter($fn_email){ return preg_match("/^[a-z0-9]+([_.-][a-z0-9]*)*@([a-z0-9]+([.-][a-z0-9]+)*)+\.[a-z]{2,4}$/i", trim($fn_email)); } Затем проверяю хост Код (Text): function Fn_Host_Exist($fn_email){ $email_arr=explode("@", $fn_email); $host=$email_arr[1]; return getmxrr($host, $maillist)?true:false; } И отправляю RCPT TO:, и все равно находятся адреса на которые сервер НЕ выдает 250, например nbritvina@yahoo.ru Вроде как-то VRFY можно проверить, но он отключен. Подскажите как быть? Заранее всем большое спасибо.
Пришлось переписать функцию, остался вопрос может ли быть у почтового ретранслятора НУЛЕВОЕ занчение предпочтения, и возможно ли что-то отправить на единсвтенный почтоый ретранслятор со значением педпочтения =0? Код (Text): function Fn_Host_Exist($fn_email){ $email_arr=explode("@", $fn_email); $host=$email_arr[1]; if(getmxrr($host, $maillist)){ $all=count($maillist); $e=0; for($i=0; $i<$all; ++$i){ if($maillist[$i]=='') $e++; } if($e==$all) return false; else return true; } else return false; }