Estimado,

Saudações. Você fez uma busca rápida por aí (google mesmo). Achei isso:

function ValidaEmail(sEmail: string): boolean;
const
    // Caracteres válidos 
    ATOM_CHARS = [#33..#255] - ['(', ')', '<', '>', '@', ',', ';', ':',
                                '\', '/', '"', '.', '[', ']', #127];
    // Caracteres válidos em uma cadeia
    QUOTED_STRING_CHARS = [#0..#255] - ['"', #13, '\'];
    // Caracteres válidos em um subdominio
    LETTERS = ['A'..'Z', 'a'..'z'];
    LETTERS_DIGITS = ['0'..'9', 'A'..'Z', 'a'..'z'];
    SUBDOMAIN_CHARS = ['-', '0'..'9', 'A'..'Z', 'a'..'z'];
type
    States = (STATE_BEGIN, STATE_ATOM, STATE_QTEXT, STATE_QCHAR,
      STATE_QUOTE, STATE_LOCAL_PERIOD, STATE_EXPECTING_SUBDOMAIN,
      STATE_SUBDOMAIN, STATE_HYPHEN);
var
    State: States;
    i, n, iSubdomains: integer;
    c: char;
begin
    State := STATE_BEGIN;
    n := Length(sEmail);
    i := 1;
    iSubdomains := 1;
    while (i <= n) do begin
        c := sEmail[i];
        case State of
            STATE_BEGIN:
                if c in atom_chars then
                    State := STATE_ATOM
                else if c = '"' then
                    State := STATE_QTEXT
                else
                    break;
            STATE_ATOM:
                if c = '@' then
                    State := STATE_EXPECTING_SUBDOMAIN
                else if c = '.' then
                    State := STATE_LOCAL_PERIOD
                else if not (c in atom_chars) then
                    break;
            STATE_QTEXT:
                if c = '\' then
                    State := STATE_QCHAR
                else if c = '"' then
                    State := STATE_QUOTE
                else if not (c in quoted_string_chars) then
                    break;
            STATE_QCHAR:
                State := STATE_QTEXT;
            STATE_QUOTE:
                if c = '@' then
                    State := STATE_EXPECTING_SUBDOMAIN
                else if c = '.' then
                    State := STATE_LOCAL_PERIOD
                else
                    break;
            STATE_LOCAL_PERIOD:
                if c in atom_chars then
                    State := STATE_ATOM
                else if c = '"' then
                    State := STATE_QTEXT
                else
                    break;
            STATE_EXPECTING_SUBDOMAIN:
                if c in letters then
                    State := STATE_SUBDOMAIN
                else
                    break;
            STATE_SUBDOMAIN:
                if c = '.' then begin
                    Inc(iSubdomains);
                    State := STATE_EXPECTING_SUBDOMAIN
                end
                else if c = '-' then
                    State := STATE_HYPHEN
                else if not (c in letters_digits) then
                    break;
            STATE_HYPHEN:
                if c in letters_digits then
                    State := STATE_SUBDOMAIN
                else if c <> '-' then
                    break;
        end;
        Inc(i);
    end;
    if i <= n then
        Result := False
    else
        Result := (State = STATE_SUBDOMAIN) and (iSubdomains >= 2);

    //se sEmail esta vazio retorna true
    if sEmail = '' then
        Result := true;
end;
 

---
[]'s

Alexandre
msn: [EMAIL PROTECTED]

 
-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
Em nome de Cleiton
Enviada em: quinta-feira, 18 de agosto de 2005 13:32
Para: Delhpi
Assunto: [delphi-br] Função Que Valida E-mail

Alguém conhece alguma função que valide e-mail?
--
Esta mensagem foi verificada pelo sistema de antivírus e  acredita-se
estar livre de perigo.





-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a