Core Coding®

PHP Email Validation

  PHP Email Validation
Verify an email address in PHP by first checking for proper format. It then checks the domain mx records. Lastly it connects to the domain and verifies that the account exists.
function check_email($email) {
  global 
$domain;

  
$err '';

  if (
eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$"$email)) {
    list(
$alias$host) = split("@"$email);

    if (
checkdnsrr($host"MX")) {
      
getmxrr($host$mxhosts);
      for (
$i=0;$i<count($mxhosts);$i++) {
        if (
$socket = @fsockopen ($mxhosts[$i], 25$errno$errstr10)) break;
      }

      if (
$socket) {
        if (
ereg("^220"$out fgets($socket1024))) {
          
fputs ($socket"HELO $domain\r\n");
          
$out fgets $socket1024);
          
fputs ($socket"MAIL FROM: <{$email}>\r\n");
          
$from fgets $socket1024);
          
fputs ($socket"RCPT TO: <{$email}>\r\n");
          
$to fgets ($socket1024);
          
fputs ($socket"QUIT\r\n");
          
fclose($socket);
          if (!
ereg ("^250"$from) || !ereg ("^250"$to)) {
            
$err 'Server rejected address';
          }
        } else {
          
$err 'No response from server';
        }
      } else {
        
$err 'Can not connect E-Mail server.';
      }
    } else {
      
$err 'no mx record/invalid domain';
    }
  } else {
    
$err 'Invalid email format';
  }

  return 
$err;
}

Go back to resources
Home Mail GitHub