Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   eMailadresse auf richtigen Syntax prüfen (https://www.delphipraxis.net/161951-emailadresse-auf-richtigen-syntax-pruefen.html)

Jerry 29. Jul 2011 14:27

Delphi-Version: 2010

eMailadresse auf richtigen Syntax prüfen
 
Hallo zusammen

Ich habe folgenden Code geschrieben um eine Mailadresse auf Gültigkeit zu überprüfen.
Wobei es immer noch sein kann, dass die Adresse nicht vorhanden ist (dies ist zu vernachlässigen).
Delphi-Quellcode:
function Tfrm_edecAusfuhrDeklaration.ValidEmail(const sValue: String): Boolean;
  function CheckAllowed(const sTemp: String): Boolean;
  var
      iFor: Integer;
    begin
      Result := False;
      for iFor := 1 to Length(sTemp) do
      begin
        if not (sTemp[iFor] in ['a'..'z','A'..'Z','0'..'9','_','-','.']) then
        begin
          Exit;
        end;
      end;
      Result := True;
    end;

var
  iPos: integer;
  NamePart, ServerPart: string;
begin
  Result := False;
  iPos := Pos('@', sValue);
  if (iPos = 0) or (Pos('..', sValue) > 0) then
  begin
    Exit;
  end;
  NamePart := Copy(sValue, 1, iPos - 1);
  ServerPart := Copy(sValue, iPos +1, Length(sValue));
  if (Length(NamePart) = 0) or ((Length(ServerPart) < 4)) then
  begin
    Exit;
  end;
  iPos := Pos('.', ServerPart);
  if (iPos = 0) or (iPos >= (Length(ServerPart) - 1)) then
  begin
    Exit;
  end;
  //Result := CheckAllowed(NamePart) and CheckAllowed(ServerPart);
  Result := True;
end;
Habt Ihr allenfalls wietere Tipps die Adresse noch besser zu prüfen?

Vielen Dank für weitere Tipps!

Phoenix 29. Jul 2011 14:28

AW: eMailadresse auf richtigen Syntax prüfen
 
http://www.regular-expressions.info/email.html

Meflin 29. Jul 2011 14:34

AW: eMailadresse auf richtigen Syntax prüfen
 
Zitat:

Zitat von Jerry (Beitrag 1114119)
Wobei es immer noch sein kann, dass die Adresse nicht vorhanden ist (dies ist zu vernachlässigen).
Habt Ihr allenfalls wietere Tipps die Adresse noch besser zu prüfen?

Fällt dir da nichts auf :gruebel:

Ich würde für eine syntaktische Prüfung nicht viel mehr als auf @ und . testen. Wenn wirklich wichtig, gibt es Aktivierungslinks & co.

himitsu 29. Jul 2011 14:41

AW: eMailadresse auf richtigen Syntax prüfen
 
Zitat:

Zitat von Jerry (Beitrag 1114119)
Delphi-Quellcode:
  Result := True;
end;

:stupid:

Nja, aber zu deinem CheckAllowed:
Du läßt keine Umlautdomains zu?
is ja voll gemein :cry:

PS:
Delphi-Quellcode:
a@b.c
oder gar
Delphi-Quellcode:
@._
ist also eine gültige eMail? (vobei es auch noch vollkommen egal ist, was hinter dem Punkt steht)

Phoenix 29. Jul 2011 14:43

AW: eMailadresse auf richtigen Syntax prüfen
 
Lt. RFC sind alle ASCII-Zeichen über 127 für EMail-Adressen verboten. Umlautdomains müssen also vorher schon durch Punycode umkodiert werden.

generic 29. Jul 2011 14:50

AW: eMailadresse auf richtigen Syntax prüfen
 
Zusätzlich zu der Regex-Prüfung würde ich noch ermitteln, ob es zu dem Domainnamen (alles hinter dem @) eine MX-Eintrag im DNS gibt.
Wenn es diesen nicht gibt, dann müsste geprüft werden, ob es einen A-Eintrag gibt.
Gibt es beide nicht, dann ist die Email ungültig.

Jerry 29. Jul 2011 15:01

AW: eMailadresse auf richtigen Syntax prüfen
 
Vielen Dank an alle!
Habe jetzt genug "Stoff" :-)

implementation 29. Jul 2011 17:10

AW: eMailadresse auf richtigen Syntax prüfen
 
Wenn du das ganze nicht gerade in einem Webprojekt verbauen möchtest, könnte es sinnvoll sein, evtl. die Prüfung auf den Punkt wegfallen zu lassen.

Denn: Es gibt auch lokale E-Mail-Addressen in der Form User@Rechnername - und die würden bei dir nicht durchkommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz