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