Cuando tenemos un sistema de usuarios o de suscripciones a un boletín, es importante luchar un poco contra el spam, en este caso muestro una manera con dos pasos, primero confirma que sea una dirección de email y luego intenta validar el registro MX del dominio de la dirección de email.

Esta prueba no confirma que exista o no la cuenta de email, ya que no comprueba la dirección de email exacta.

Por otra parte el manual de PHP de getmxrr dice:

Esta función no debe ser usada para propósitos de verificación de direcciones.

En mi caso con pequeñas pruebas me funciona, así que mejor añadirla a nuestra programación como un extra, por ahora mejor eso que nada, pero como parece que no es la mejor solución para combatir las direcciones de emails falsas, seguiremos investigando para conseguir la función definitiva.

Me gustaría escuchar vuestras opiniones, consejos y quizá esa función definitiva contra el SPAM.

Código PHP Validar Email

function validarDominio($domain)
{

	getmxrr($domain, $mx_records, $mx_weight);
	return (count($mx_records) > 0);
}

function validarEmail($value)
{

    $reg_exp= "/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$/";
    $result=preg_match($reg_exp, $value);
    if ($result)
    {

		$mailparts=explode("@",$value);
		$retVal=validarDominio($mailparts[1]);
    }
    else
    {
    	$retVal=false;
    }
    return $retVal;

}