Validité d'une adresse e-mail

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 378 fois - Téléchargée 6 fois

Contenu du snippet

{-------------------------------------------------------------------------------
Vérification de la validité d'une saisie d'E-Mail
-------------------------------------------------------------------------------}
Function eMailIsValid(const aEMail : string): boolean;
 Const CarOK        : Set of Char = ['a'..'z','0'..'9','.','@'];
 var  ii,L          : integer;
      eM            : String;
      PosPt,PosArob : Integer;
Begin
  Result := False;
  L := Length(aEMail);
  If L < 6 then Exit; //longueur de chaine invalide
  {Test du Arobase}
  If PosEx('.@',aEMail,1) > 0 then Exit;
  If PosEx('@.',aEMail,1) > 0 then Exit;
  eM := aEMail;
  PosArob := Pos('@',eM);
  If (PosArob < 2) or (PosArob = L) then Exit; // @ en 1ère ou dernière position
  eM := Copy(eM,PosArob+1,L-PosArob);
  If Pos('@',eM) > 0 then Exit;//  un deuxieme arobase est trouvé
  {Test du point}
  PosPt    := Pos('.',eM);
  If PosPt = 0 then Exit; // Pas de point apres l'arobase
  PosPt := Pos('.',aEMail);
  If (PosPt = 1) or (PosPt = L) then Exit; // Point en 1ère ou dernière position
  If PosEx('..',aEMail,1) > 0 then Exit; // Deux points à suivre
  {caractères autorisés}
  for ii:= 1 to L do if Not (aEMail[ii] in CarOK) then Exit; // caractère non autorisé
  Result := True;
End;



Compatibilité : Delphi 5

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.