Ver Mensaje Individual
  #25  
Antiguo 16-10-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Voy a tratar de responderme a mí mismo... por si puede ayudar a alguien, o alguien puede decir algo a partir de aquí. El caso es que validar direcciones de correo no parece nada sencillo, por varios motivos.

Pensando en un software que fuera capaz de validar direcciones de correo (y parece que existen) este se toparía con no pocos problemas. Validar la dirección de correo "sintácticamente" no parece imposible. Valga como ejemplo la función que se muestra en este hilo, recogida, como esta otra, de Delphi 3000.

Ahora bien, una cosa es validar una dirección de correo sintácticamente y otra muy distinta validar que una dirección de correo existe realmente en un determinado servidor. Comienzan los problemas. Primero que nada habría que averiguar, a partir de una dirección de correo, el servidor SMTP correspondiente.

Esto no parece imposible, si bien no es un asunto sencillo, o a lo menos yo me pierdo bastante, pues hablamos de localizar registros MX, servidores DNS... y todo esto me queda un poco grande, para qué nos vamos a engañanar. Pero, supongamos que hemos conseguido un servidor SMTP al que supuestamente pertenecería una determinada dirección de correo.

Bien. Ya tenemos el Servidor SMTP. ¿Cómo podemos solicitarle que nos diga si un "recipiente" es válido? Pues con el comando "RCPT TO", tal como se puede ver en esta página Web, donde muestran el uso de dicho comando y de algunos otros más.

Sin embargo, no todos los servidores SMTP parecen responder al comando de la misma forma. Por ejemplo, haciendo pruebas con el servidor SMTP de Wanadoo.es, resulta que este me responde que no estoy utilizando el comando correctamente, pero, yo lo uso como se supone que hay que hacerlo... luego no hay forma de que este servidor SMTP y yo podamos entendernos.

Eso, por un lado. Es decir, distintos servidores SMTP pueden entender distintas formas de comunicación, tratar de forma diferente ciertos comandos, etc. Pero, vamos con más problemas. ¿Qué pasa si quiero validar una dirección de correo de Gmail, por ejemplo? Pues que no podré hacerlo sin más, puesto que necesitaré antes autenticarme en el servidor SMTP de Gmail, que no admite comunicaciones si previamente no te autentificas.

Es decir, por un lado tenemos que no todos los servidores SMTP van a poder responder a nuestras cuitas; que no todos los servidores SMTP esperan los mismos comandos ni responden de igual forma a estos; y que los servidores SMTP que requieran autenticación... no van a responder a nuestros comandos a no ser que nos autentiquemos como usuarios de dicho servidor SMTP.

La conclusión es clara: validar una dirección de correo de modo que podamos considerarla válida sintácticamente hablando, es posible. Pero, validar que una dirección de correo exista realmente... se antoja complicado, poco seguro, muy expuesto a errores de todo tipo. Ahora bien... existen programas que prometen hacer esto... ¿estoy diciendo que estos programas no funcionan?

Bueno. Tal vez podría decirse que en ningún caso funcionarán en un cien por cien de los casos. Los programas tratarán de hacer su trabajo lo mejor posible, pero, ¿cómo conseguirá saber un programa de estos que una dirección de Gmail es válida? ¿Cómo lo hará si no puede autentificarse en el servidor? A mí no se me ocurre la forma de hacerlo. Es decir, se me ocurre que contaran con una cuenta en Gmail... para estos casos, pero, ¿y qué ocurre con otros servidores SMTP? ¿Tendrán cuentas para todos ellos? Es imposible.

Así que... me he hinchado a buscar en Google y la información que encuentro no me llega sino a lo que he dicho. Si alguien tuviera otro tipo de información o pudiera rebatir algo de lo que he dicho, o pudiera ofrecer otra opinión, en fin, yo estaría encantado de escucharla y de atender a la misma. Pero, hasta que no se me demuestre lo contrario, no creo que exista una forma segura y cien por cien eficaz de averiguar si una dirección de correo existe realmente.

PD. ¿Entonces cómo hacen los Spammers? Según lo que he dicho... probablemente estos no comprueban si sus direcciones de correo son válidas (de ahí que se recomiende no responder jamás a un Spammer... porque si lo haces estás diciéndole, "eh, realmente estoy aquí"). Sino que se limitarán a enviar correos y más correos sabiendo que algunos, efectivamente, no llegarán a su destino. Entre otras cosas porque la dirección de correo de marras no exista realmente.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita