Ver Mensaje Individual
  #19  
Antiguo 13-03-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Reputación: 25
egostar Va camino a la fama
Indudablemente que validar un correo electronico tiene sus asegunes, hasta ahora se ha tratado de verificar la semantica del correo, pero eso solo nos dice que se escribio bien, yo agregaria un paso mas recuperando la IP del servidor de correo, usando el código que seoane acaba de proporcionar en otro hilo.

Aqui pego el código el cual nos garantiza al menos que se esta usando un servidor válido. Solo necesitamos agregar www. y lo que sigue del @.


Código Delphi [-]
Uses Winsock;

function GetIp(Host: string): string;
var
  WSAData: TWSADATA;
  HostEnt: phostent;
begin
  Result:= '';
  if WSAStartup(MAKEWORD(1, 1), WSADATA) = 0 then
  begin
    HostEnt:= gethostbyname(PChar(Host));
    if HostEnt <> nil then
      Result:= String(inet_ntoa(PInAddr(HostEnt.h_addr_list^)^));
    WSACleanup;
  end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   ShowMessage(GetIp('www.hotmail.com'));
   ShowMessage(GetIp('www.esunabroma.com')); //NO válido
   ShowMessage(GetIp('www.yahoo.com.mx'));
   ShowMessage(GetIp('www.yahoo.com'));
   ShowMessage(GetIp('www.esunabroma.com')); //NO válido
   ShowMessage(GetIp('www.clubdelphi.com'));
   ShowMessage(GetIp('www.clubdelphi.com.mx')); //NO válido
end;

Esto nos regresa la IP si está correcto el servidor de correo, de otra forma nos da un valor nulo.

Yo creo que esto ya es un gran avance.

Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita