Foros del Web » Programando para Internet » PHP »

Verificar real existencia de email

Estas en el tema de Verificar real existencia de email en el foro de PHP en Foros del Web. Hola: Necesito verificar la existencia de un correo email. Se como comprobar que tenga un nombre de usuario, la arroba y un dominio. Pero lo ...
  #1 (permalink)  
Antiguo 10/03/2004, 14:59
 
Fecha de Ingreso: marzo-2004
Mensajes: 9
Antigüedad: 13 años, 9 meses
Puntos: 0
Pregunta Verificar real existencia de email

Hola:

Necesito verificar la existencia de un correo email. Se como comprobar que tenga un nombre de usuario, la arroba y un dominio. Pero lo que me interesa verificar es que el email ademas de estar sintacticamente bien exista realmente como nombre de usuario. Mi idea seria enviar el email y saber que este llegue a destino y que el nombre de usuario exista. La verdad es que no se como se puede realizar esto.
Desde ya muchas gracias, y ojala que me puedan ayudar.

chauuuu.
  #2 (permalink)  
Antiguo 10/03/2004, 21:12
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 8 meses
Puntos: 1
Yo utilizo esta funcion, es modificada de una funcion en una pagina web americana, que ahora mismo no recuerdo,

Adaptandola para ti, poniendo las salidas de los mensages en el array de salida quizas te sirva.
Código PHP:
function ValidarMail($email) { 
       global 
$HTTP_HOST
       
$resultado = array(); 
       if (!
eregi("^[_\.0-9a-z\-][email protected]([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$email)) { 
         
$resultadoado[0]=false
         
$resultado['code']="702"
          return 
$resultado
       } 
       list ( 
$Username$dominio ) = split ("@",$email); 
         if (
getmxrr($dominio$MXHost))  $conecta_dominio $MXHost[0]; 
                  else  
$conecta_dominio $dominio
                  
        
$conectar fsockopen $conecta_dominio25 ); 

      if (
$conectar) { 

        if (
ereg("^220"$ver fgets($conectar1024))) { 

           
fputs ($conectar"HELO $HTTP_HOST\r\n"); 
           
$ver fgets $conectar1024 ); 
           
fputs ($conectar"MAIL FROM: <{$email}>\r\n"); 
           
$From fgets $conectar1024 ); 
           
fputs ($conectar"RCPT TO: <{$email}>\r\n"); 
           
$To fgets ($conectar1024); 
           
fputs ($conectar"QUIT\r\n"); 
           
fclose($conectar); 
           if (!
ereg ("^250"$From) || !ereg "^250"$To )) { 
               
$resultado[0]=false
               
$resultado['code']="700"
               return 
$resultado
            } 
        }    
           else { 
              
$resultado[0] = false
              
$resultado['code'] = "Død"
              return 
$resultado
            } 
      }  
        else { 
            
$resultado[0]=false
            
$resultado['code']="701"
            return 
$resultado
      } 

       
$resultado[0]=true
       
$resultado['code']="200"
       return 
$resultado
//fin funcion 
Espero qe te sirva

un saludo
  #3 (permalink)  
Antiguo 14/03/2004, 17:53
 
Fecha de Ingreso: marzo-2004
Mensajes: 9
Antigüedad: 13 años, 9 meses
Puntos: 0
Muchas gracias

voy a probarlo inmediatamente
  #4 (permalink)  
Antiguo 15/03/2004, 14:09
 
Fecha de Ingreso: marzo-2004
Mensajes: 9
Antigüedad: 13 años, 9 meses
Puntos: 0
Muchas gracias jordi1 .... lo probe y me funcionó perfecto, salvo por un pequeño detalle que a lo mejor les puede servir a los demas. Yo estoy trabajando en windows Xp y me entere que php para win32 no incorpora la funcion getmxrr. Encontre la funcion hecha y probada para windows xp con la cual no tuve ningun problema (me funciono al tiro)
esta es:
Código PHP:
function getmxrr($hostname, &$mxhosts)
{
   
$mxhosts = array();
   
exec('nslookup -type=mx '.$hostname$result_arr);
   foreach(
$result_arr as $line
   {
     if (
preg_match("/.*mail exchanger = (.*)/"$line$matches)) 
         
$mxhosts[] = $matches[1];
   }
   return( 
count($mxhosts) > );

espero que les sirva.
mas informacion hay en php.net

saludos
irondan_2358
  #5 (permalink)  
Antiguo 15/03/2004, 14:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Podrían poner el código como parte de una FAQ para el foro .. incluido el comentario sobre el uso de la función origianal sobre Windows (más concreto sobre el sustituo para windows XP,2000 o basados en NT en general .. y haciendo mención que en windows9x no funcionaría ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 15/03/2004, 14:31
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 8 meses
Puntos: 1
si es verdad, se me olvido decirte que para windows la funcion getmxrr, no estaba incorporada,


salduos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 05:11.