Checking for live email addresses in PHP
Written by Mike James   
Monday, 23 August 2010
Article Index
Checking for live email addresses in PHP
SMTP
Final Function

 

Banner

Using the function

To make everything fit together the complete function is:

function validateEmail($email){
list($name,$Domain) = split('@',$email);
$result=getmxrr($Domain,$POFFS);
if(!$result){$POFFS[0]=$Domain;}
$timeout=5;
$oldErrorLevel=
error_reporting(!E_WARNING);
$result=false;
foreach($POFFS as $PO )
{
$sock = fsockopen($PO, 25,
$errno, $errstr,  $timeout);
if($sock){
fwrite($sock, "HELO Mydomain.com\n");
$response= getResponse($sock);
fwrite($sock,
"MAIL FROM: <me@mydomain.com>\n");
$response= getResponse($sock);
fwrite($sock,"RCPT TO: <".$email.">\n");
$response= getResponse($sock);
list($code,$msg)=explode(' ',$response);
fwrite($sock,"RSET\n");
$response= getResponse($sock);
fwrite($sock,"quit\n");
fclose($sock);
if ($code == '250') {
$result= true;
break;
}
}
}
error_reporting($oldErrorLevel);
return $result;
}

To use the function you simply write something like:

if( validateEmail("name@domain")){
echo "valid";
}else{
echo "not valid";
}

There is a small possibility that if you use this sort of validation too often at any given site then you might be blacklisted, but as long as the frequency is low enough not to annoy it should be fine.

 

To access the code for this project, once you have registered,  click on CodeBin.

 

If you would like to be informed about new articles on I Programmer you can either follow us on Twitter, on Facebook or you can subscribe to our weekly newsletter.

 

Banner


Setting Up Site-To-Site OpenVPN

Setting up a point-to-point VPN is relatively easy but site-to-site is much more complicated involving certificates and more IP addresses than you can count. Find out how to do it using OpenVPN.



QuickSort Exposed

QuickSort was published in July 1961 and so is celebrating its 60th birthday.  QuickSort is the most elegant of algorithms and every programmer should study it. It is also subtle and this often m [ ... ]


Other Projects

<ASIN:0470872497>

<ASIN:1593271735>

<ASIN:1590599063>

<ASIN:0596514018>



Last Updated ( Monday, 23 August 2010 )