PHP функция за проверка на SMTP

XTYLING

Registered
Някой може ли да ми даде някаква функция за да проверявам дали даден емайл е валиден ( в регистрацията)
 
а ще може ли да ми дадеш една форма за попълване да видя как работи точно ?

мерси предварително.
 
XTYLING,

имаш проблем с извикването?

Формуляр не ти е нужен за проба, но:

<?
if(isset($_POST['check']))
{
$mail=trim(htmlspecialchars($_POST['mail']));
$fm=explode("@", $mail);
check($fm[1], $fm[0]);
}



function check($host, $user)
{
$fp = fsockopen ($host, 25);
set_socket_blocking ($fp, true);
fputs ($fp, "Helo Localn");
fgets ($fp, 2000);
fgets ($fp, 2000);
fputs ($fp, "Mail From:<$user@$host> n");
fgets ($fp, 2000);
fputs ($fp, "RCPT to:aetos<$user@$host> n");
$result= fgets ($fp, 2000);
$st= substr($result,0,3);
if ($st==250){

echo"Email address is valid";
}

else
echo"The address is not valid";

}
}
?>

<FORM METHOD="POST" ACTION="">
<INPUT TYPE="TEXT" NAME="mail" VALUE="">
<INPUT TYPE="SUBMIT" NAME="check" VALUE="Proveri">
</FORM>



Ако функцията проработи, пиши. Отдавна търся вариант за валидиране на пощенски адреси, но силно се съмнявам, че има друг начин освен с изпращане на мейл...
 
По принцип това е начина да се разбере дали е валиден даден мейл. Обаче, аз преди като си играх с smtp протокола не успях да се справя с всички мейл сървъри. Общо взето стигнах до извода, че не е много надежден метод и реших да не го ползвам. По добре да пусна някой с несъщестуващ мейл, отколкото да откажа някой (клиент, потребител или там какъвто се пада...)
Има две причини заради които стигнах до този извод:
1. Админ параноик може да настрой да връща друга грешка при несъществуващ потребител - например: (не ми се рови да видя, конкретен номер на грешка, затова давам примерна грешка, която си измислих. Но дава яснота, на човека изпратил мейла, че получателя не е получил писмото. Но на нас не ни дава яснота дали съществува този потребител.) 'Грешка, съобщението не може да бъде доставено'
2. Разни спам филтри

относно горната функция - някои мейл сървъри не приемат писма от непознати хостове, както е в случая:
fputs ($fp, "Helo Localn");
 

Back
Горе