Función php validar email

24 ago 2009 4 comentarios

La validación del campo email es quizás el más utilizado en la validación de formularios web, este código servirá para validar la dirección de correo electrónico y también para verificar los registros MX del dominio en la dirección email y así comprovar si ese email existe.

function valida_email($email, $mx = false){  
  if(eregi("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))  
    if($mx){  
      list($username, $domain) = split("@", $email);  
      return getmxrr($domain, $mxrecords);  
    }else  
      return true;  
    else  
  return false;  
}

4 Comentarios

Jawira Portugal Michaux, el 29/01/2010 a las 21:43:33

Sólo un detalle, la función getmxrr no está implementada en Windows, por lo que no funciona en éste SO.

Claudio Gonzalez, el 28/09/2010 a las 02:57:38

Hola que tal.

Me podrías decir de que forma la uso en mi script, la verdad me interesa esa validación, pero no se como usarla

renny, el 25/11/2010 a las 03:26:43

function ValidateMail($Email) {
global $HTTP_HOST;
$result = array();
if (!eregi(“^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$”, $Email)) {
$result[0]=false;
$result[1]=”$Email is not properly formatted”;
return $result;
}
list ( $Username, $Domain ) = split (“@”,$Email);
if (getmxrr($Domain, $MXHost)) {
$ConnectAddress = $MXHost[0];
} else {
$ConnectAddress = $Domain;
}
$Connect = fsockopen ( $ConnectAddress, 25 );
if ($Connect) {
if (ereg(“^220″, $Out = fgets($Connect, 1024))) {
fputs ($Connect, “HELO $HTTP_HOST\r\n”);
$Out = fgets ( $Connect, 1024 );
fputs ($Connect, “MAIL FROM: \r\n”);
$From = fgets ( $Connect, 1024 );
fputs ($Connect, “RCPT TO: \r\n”);
$To = fgets ($Connect, 1024);
fputs ($Connect, “QUIT\r\n”);
fclose($Connect);
if (!ereg (“^250″, $From) || !ereg ( “^250″, $To )) {
$result[0]=false;
$result[1]=”Server rejected address”;
return $result;
}
} else {
$result[0] = false;
$result[1] = “No response from server”;
return $result;
}
} else {
$result[0]=false;
$result[1]=”Can not connect E-Mail server.”;
return $result;
}
$result[0]=true;
$result[1]=”$Email appears to be valid.”;
return $result;
}

$mail= $_GET['email'];
$var= ValidateMail($mail);

maxhenrry, el 21/05/2011 a las 19:05:32

lo modifique y lo hise mas corto y me funciono:

function valida_email($email){
if(eregi(“^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$”, $email)) {
return true;
}else {
return false;
}
}

if(valida_email(“usuario@dominio.com”)==true){
echo “Correo valido :) ”;
}else{
echo “Correo invalido :( “;
}

aver si les ayudo :)

Escribe un comentario

Comenta este post en Facebook