Foros del Web » Programando para Internet » PHP »

Verificar existencia de email

Estas en el tema de Verificar existencia de email en el foro de PHP en Foros del Web. Buenas noches amigos, lo que quiero hacer es verificar si el mail q ingrese un usuario es valido o no Para ello utilice lo siguiente: ...
  #1 (permalink)  
Antiguo 18/04/2015, 21:49
Avatar de juanleonardo  
Fecha de Ingreso: agosto-2007
Mensajes: 382
Antigüedad: 14 años, 2 meses
Puntos: 0
Verificar existencia de email

Buenas noches amigos, lo que quiero hacer es verificar si el mail q ingrese un usuario es valido o no

Para ello utilice lo siguiente:

http://www.forosdelweb.com/f18/verif...existe-309229/

Modifique un poco el codigo, primero saque la verificacion del mail si es correcto o no, despues cambie split por explode, y de forma local me dan unos errores. Pero cuando subo al servidor ya no me salen los errores pero tampoco me funciona el metodo, me dice "Can not connect E-Mail server."

Espero me puedan ayudar. Gracias.
  #2 (permalink)  
Antiguo 18/04/2015, 22:03
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 18 años, 2 meses
Puntos: 105
Respuesta: Verificar existencia de email

Holas,

Y cual es el codigo que exactamente usas?. Las configuraciones de local son distintas a las configuraciones de tu servidor.

Ya nos comentas.

Saludos,
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 18/04/2015, 22:19
Avatar de juanleonardo  
Fecha de Ingreso: agosto-2007
Mensajes: 382
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Verificar existencia de email

Hola gildus, gracias por responder tan rapido, el codigo es el siguiente

Cita:
function ValidarMail($Email)
{
global $HTTP_HOST;
$result = array();
// Step 2 -- Check the e-mail address format
// Next, you'll use our regular expression to determine if the e-mail address is properly formatted. If the e-mail address is not valid, return in error:
// 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;
// }
// Step 3 -- Find the address of the mail server
// Now, split apart the e-mail address and use the domain name to search for a mail server you can use to further check the e-mail address. If no mail server is found, you'll just use the domain address as a mail server address:
// Note: In the event that the optional step 4 is not followed, the else portion of this step must return in error in order for the script to function properly.
list ($Username,$Domain) = explode("@",$Email);

if (getmxrr($Domain, $MXHost))
{
$ConnectAddress = $MXHost[0];
}
else
{
$ConnectAddress = $Domain;
}
// Step 4 -- Connect to mail server and check e-mail address (OPTIONAL)
// Finally, once you have the best guess at a mail server, it's time to open a connection and talk to the server. As I stated earlier, this step is optional. After every command you send, you'll need to read a kilobyte (1024 bytes) of data from the server. It should be more than enough to receive the complete response from the server for that command.
// Note that you'll store the output from the server in three separate variables: $To, $From and $Out. This is done so you can check the responses after you close the connection, to see if you actually have a real e-mail address or not.
// If the script cannot connect at all, or the e-mail address wasn't valid, set the $result array to the proper values:
$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: <{$Email}>\r\n");
$From = fgets ( $Connect, 1024 );
fputs ($Connect, "RCPT TO: <{$Email}>\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;
}
// Step 5 -- Return the results
// Finally, our last and easiest step is to return the results and finish:
$result[0]=true;
$result[1]="$Email appears to be valid.";
return $result;
}
Gracias.
  #4 (permalink)  
Antiguo 18/04/2015, 23:41
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 18 años, 2 meses
Puntos: 105
Respuesta: Verificar existencia de email

Holas,

El codigo esta muy desordenado, te recomiendo que sigas por ejemplo:

http://www.phpclasses.org/package/66...es/files/33694
https://github.com/hbattat/verifyEma...ter/verify.php

Ten en cuenta que no todos usan el puerto 25 por defecto asi que la validacion por socket no siempre sera la correcta.

Saludos,
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 19/04/2015, 02:51
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 8 años, 3 meses
Puntos: 401
Respuesta: Verificar existencia de email

Cita:
Ten en cuenta que no todos usan el puerto 25 por defecto asi que la validacion por socket no siempre sera la correcta.
Es más.... los que requieren autentificación prácticamente no lo usan, van por 587 y similares.
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #6 (permalink)  
Antiguo 19/04/2015, 10:57
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 11 años, 6 meses
Puntos: 131
Respuesta: Verificar existencia de email

Solo como comentario la funcion ereg ya es obsoleta debes usar preg_match
  #7 (permalink)  
Antiguo 19/04/2015, 13:32
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 8 años, 3 meses
Puntos: 379
Respuesta: Verificar existencia de email

Valida el formato y el dominio, pero la cuenta debe de verificarse mediante algún mecanismo de confirmación que no se en el momento.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #8 (permalink)  
Antiguo 19/04/2015, 14:14
Avatar de juanleonardo  
Fecha de Ingreso: agosto-2007
Mensajes: 382
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Verificar existencia de email

Buenas tardes, gracias por las respuestas, les cuento q probe el codigo que me paso gildus aun no puede obtener nada siempre obtengo INVALID. Creo yo que el problema puede ser de servidor, con respecto a lo del puerto como deberia obtener ese numero en mi servidor?

La validacion del formato lo hago desde otro lado, por lo tanto aca no lo tengo en cuenta.

La forma en que utilizo la funcion es:
Cita:
$validar = verifyEmail($email,'[email protected]');
echo $validar;
Muchas gracias nuevamente.
  #9 (permalink)  
Antiguo 19/04/2015, 23:32
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 8 años, 1 mes
Puntos: 145
Respuesta: Verificar existencia de email

Por favor, utiliza el Highlight del foro.

__________________
¿Te sirvió la respuesta? Deja un +1
  #10 (permalink)  
Antiguo 20/04/2015, 17:51
Avatar de juanleonardo  
Fecha de Ingreso: agosto-2007
Mensajes: 382
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Verificar existencia de email

Buenas noches perdon por ser insistente, pero me urge solucionar esto, muchas gracias.

NueveReinas perdon pero no entiendo como funciona eso de Highlight, gracias.

Saludos

Etiquetas: email, existencia, verificar
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.
Respuesta




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