Como verificar si un email en realidad existe usando PHP

Existen muchas formas de verificar si un email en realidad es válido, una de ellas es http://verify-email.org/ y de aqui surge la idea de este script, que aunque puede contener errores o no funcionar para todos los servidores de email, es una solucion rápida para verificar emails en PHP.

$email = "email@test.org"; // the email you want to verify
list($userName, $mailDomain) = split("@", $email);
$mxhosts = array();
if (getmxrr($mailDomain, $mxhosts)) {
	// it is a valid MX record...
	foreach ($mxhosts as $mxhost) { // checks for all mxhosts...
		$fp = fsockopen($mxhost, 25);
		if (!$fp) {
			// couldnt connect to mxhost...
			$verified = false;				
			continue;
		} else {
			// it was  connected to mxhost...
			$string = "HELO verify-email.org\r\n";
			fputs($fp, $string);
			$buffer = fgets($fp,4096);
			$string = "MAIL FROM: <check@verify-email.org>\r\n";
			fputs($fp, $string);
			$buffer = fgets($fp,4096);
			$string = "RCPT TO: <".$email.">\r\n";
			fputs($fp, $string);
			$buffer = fgets($fp,4096);
			if (substr($buffer,0,3)!='250') {
				$verified = false;
			} else {
				$verified = true;
			}
			break;
		}
		fclose($fp);
	}
} else {
	$verified = false;
}
 
if ($verified) {
	// this is a valid email...
} else {
	// this is an invalid email...
}

NOTA: Este script se conecta a los servidores de email del destinatario, no es recomendable utilizar el script dentro de un ciclo, ya que además de generar muchas conecciones, es posible que el servidor del destinatario bloquee tu dirección IP y el script deje de funcionar.

Tags:

Deje una respuesta

Debe de estar identificado para dejar una respuesta.