Avatar billede -ulli- Nybegynder
22. marts 2002 - 11:33 Der er 6 kommentarer og
1 løsning

Validere emailadresse

Hej

Mit delphiprogram laver en fejl når der ii ReplyToAddress i NMSMTP komponenten.

Så jeg skal validere email adressen som gyldig.

Nogen der har lavet noget lignende?
Avatar billede p65 Nybegynder
22. marts 2002 - 11:36 #1
Det kan du ikke endegyldigt!
Brugen af Finger er efterhånden stoppet pga misbrug.
Du kan checke for rette format: @ og .
Evt kan du lave opslag af domæne navn i en DNS.
Avatar billede -ulli- Nybegynder
22. marts 2002 - 11:43 #2
er lige meget om adressen "findes"... den skal bare ha det rette "format"

som i navn@host.domæne

jeg ved ikke hvordan jeg skal lave tjekket for det..
Avatar billede stoney Nybegynder
22. marts 2002 - 11:52 #3
function MailURLMayBeInvalid(const s: string): Boolean;
var
  i: Integer;
  c: string;
begin // ' ', ä, ö, ü, ß, [, ], (, ), : in EMail-Address
  Result := (Trim(s) = '') or (Pos(' ', AnsiLowerCase(s)) > 0) or
    (Pos('ä', AnsiLowerCase(s)) > 0) or (Pos('ö', AnsiLowerCase(s)) > 0) or
    (Pos('ü', AnsiLowerCase(s)) > 0) or (Pos('ß', AnsiLowerCase(s)) > 0) or
    (Pos('[', AnsiLowerCase(s)) > 0) or (Pos(']', AnsiLowerCase(s)) > 0) or
    (Pos('(', AnsiLowerCase(s)) > 0) or (Pos(')', AnsiLowerCase(s)) > 0) or
    (Pos(':', AnsiLowerCase(s)) > 0);
  if Result then Exit; // @ not in EMail-Address;
  i      := Pos('@', s);
  Result := (i = 0) or (i = 1) or (i = Length(s));
  if Result then Exit;
  Result := (Pos('@', Copy(s, i + 1, Length(s) - 1)) > 0);
  if Result then Exit; // Domain <= 1
  c      := Copy(s, i + 1, Length(s));
  Result := Length(c) <= 1;
  if Result then Exit;
  i      := Pos('.', c);
  Result := (i = 0) or (i = 1) or (i = Length(c));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if MailURLMayBeInvalid(edit1.Text) then
showmessage('Ugyldig mailadresse')
else
showmessage('Gyldig mailadresse');

end;

Stoney
Avatar billede doc404 Novice
23. marts 2002 - 01:44 #4
Kan man kommenterer et accepteret spørgsmål????

Well...

Ovenstående virker ikke helt... Hvad hvis der er indtastet { eller ! i email adressen?

Og helt ærligt stoney... Vil du virkelig ligge navn til den kodning? Så vidt jeg husker, har er kommet med en del gode ting før
Avatar billede doc404 Novice
23. marts 2002 - 01:45 #5
...replace "har er" med "har du"
Avatar billede stoney Nybegynder
23. marts 2002 - 08:30 #6
doc404 >>

Det er nu bare en stump kode jeg en gang fandt som jeg har gengivet.
Men jeg tror nu ikke det kræver den store ledvogter eksamen, selv
at rette til så den checker for alle ikke gyldige karakterer.

Result := (Trim(s) = '') or (Pos(' ', AnsiLowerCase(s)) > 0) or
    (Pos('ä', AnsiLowerCase(s)) > 0) or (Pos('ö', AnsiLowerCase(s)) > 0) or
    (Pos('ü', AnsiLowerCase(s)) > 0) or (Pos('ß', AnsiLowerCase(s)) > 0) or
    (Pos('[', AnsiLowerCase(s)) > 0) or (Pos(']', AnsiLowerCase(s)) > 0) or
    (Pos('(', AnsiLowerCase(s)) > 0) or (Pos(')', AnsiLowerCase(s)) > 0) or
    (Pos(':', AnsiLowerCase(s)) > 0);

Stoney
Avatar billede doc404 Novice
23. marts 2002 - 09:30 #7
enig...undrede mig bare en smule ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
1 min siden Libre Office Impress Af Frank i Andre styresystemer
I dag 11:47 VB script Af Jenshentze i Word
I dag 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel