Section courante

A propos

Section administrative du site

La validation des courriels est un des problèmes les plus complexe à mettre en oeuvre lorsqu'on envoie un formulaire. Et pour cause, il faut tenir compte des règles suivantes :

A l'aide du code source Delphi/Kylix/Lazarus suivant, vous trouverez la réponse que vous souhaitez :

  1. Program Email;
  2.  
  3. {$APPTYPE CONSOLE} 
  4. Uses SysUtils; 
  5.  
  6. Function IsEmail(Email:String):Boolean;
  7. Var
  8.  I,ArobasFound,AfterArobas:Integer;
  9. Begin
  10.  If(Email = '')or(Length(Email)=0)Then Begin
  11.   IsEmail:=False;
  12.   Exit;
  13.  End;
  14.  For I:=1 To Length(Email) do Begin
  15.   Case Email[I] of
  16.      #9 ,#10 ,#13 ,' ','(',')',':',',',
  17.      '/','''','"','~','`','!','#','$','%','^','&','*','+','=','[',
  18.      ']','{','}','|','\','?','<','>':Begin
  19.       IsEmail:=False;
  20.       Exit;
  21.      End;
  22.   End;
  23.  End;
  24.  ArobasFound := 0;
  25.  FOR I:=2 to Length(Email) do Begin
  26.   If Email[I] = '@'Then Begin
  27.    Inc(ArobasFound);
  28.    If ArobasFound = 1 Then AfterArobas:=I;
  29.   End;
  30.  End;
  31.  If ArobasFound <> 1Then Begin
  32.   IsEmail:=False;
  33.   Exit;
  34.  End;
  35.  Inc(AfterArobas,2);
  36.  While (AfterArobas < Length(Email)) and (Email[AfterArobas] <> '.') do Inc(AfterArobas);
  37.  IsEmail:=Not((AfterArobas >= Length(Email) - 1) OR (Email[AfterArobas] <> '.'));
  38. End;
  39.  
  40. BEGIN
  41.  WriteLn('Courriel «abc» est valide: ',IsEmail('abc'));
  42.  WriteLn('Courriel «@» est valide: ',IsEmail('@'));
  43.  WriteLn('Courriel «@abc.abc» est valide: ',IsEmail('@abc.abc'));
  44.  WriteLn('Courriel «abc@gladir.com» est valide: ',IsEmail('abc@gladir.com'));
  45.  WriteLn('Courriel «abc@@gladir.com» est valide: ',IsEmail('abc@@gladir.com'));
  46.  WriteLn('Courriel «abc@gl][adir.com» est valide: ',IsEmail('abc@gl][adir.com'));
  47. END.

on obtiendra le résultat suivant :

Courriel «abc» est valide: false
Courriel «@» est valide: false
Courriel «@abc.abc» est valide: false
Courriel «abc@gladir.com» est valide: true
Courriel «abc@@gladir.com» est valide: false
Courriel «abc@gl][adir.com» est valide: false


Dernière mise à jour : Dimanche, le 17 août 2014