Google
Web dns.bdat.net

Re: [PHP-ES] verificar cuenta de email

Write haof XML files: Jabi ( jabi@jabi.ath.cx)
Fecha: mar 24 ene 2006 - 18:13:05 CET


El mar, 24-01-2006 a las 13:31 -0300, Fernando escribió:
> Amigos, tengo una duda.
> Tengo un problema con un formulario de consulta en el que la gente, muy por lo general, ingresa con errores su cuenta de email, haciendo que luego sea imposible responderles la consulta... En fin, cosas de ser humano.
> La pregunta es ¿existe alguna manera de verificar que una cuenta de email existe desde php?. No se trata de establecer si la cuenta es de ese usuario (es decir, no es una pregunta sobre seguridad) sino simplemente si la cuenta existe. Algo así como un "ping" a la cuenta.
> Otra posibilidad sería enviar un mail a la casilla que el usuario pone en el formulario, pero la función mail devuelve si un mail se envió o no, nada dice sobre si se recibió correctamente.
> Alguna ayudita?
> Gracias por adelantado.
> Fernando

yo utilizo una función que comprueba utilizando 2 métodos:

primero por una exresión regular, (un poco larga)
y luego comprobando que exista entrada mx del host con la función de php
getmxrr.

la función funciona perfecta... la llevo usando unos años ya
(Seguramente se puede optimizar y todo).
lo "Malo" es que el host tiene que estar conectado a Internet (a un
servidor DNS concretamente), y que quizás tarda mucho si compruebas unos
cuantos mails (hace 2 consultas al servidor DNS por email).

function comprobar_mail($email) {
        if (ereg("(([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_
\-])+)*)@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))$",$email,$regs)) {
        $host = $regs[5].".";
        if ( getmxrr( $host, $mxhosts ) == FALSE && gethostbyname( $host ) ==
$host ) return FALSE;
        else return TRUE;
        } else return FALSE;

}

Un saludo

Jabi

-- 
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Este archivo fue generado por hypermail 2.1.7 : sáb 18 mar 2006 - 18:23:29 CET