bonjour,
Est ce qu'il existe un petite routine qui pourrait tester la validite d'une adresse mail (qui de type chaine)
je voudrais etre sur que l'adresse comporte le sigle @ et au moins un '.' et que les caractère interdit soient absent ?
merci
bonjour,
Est ce qu'il existe un petite routine qui pourrait tester la validite d'une adresse mail (qui de type chaine)
je voudrais etre sur que l'adresse comporte le sigle @ et au moins un '.' et que les caractère interdit soient absent ?
merci
salut
regarde du cote des "regular expression"
@+ Phil
Si tu veux faire simple et n'utiliser que la RTL delphi, tu peux jouer avec MatchesMask (http://delphi.about.com/library/rtl/...atchesMask.htm)
Par exemple pour la validité de l'adresse :
Par contre c'est limité et effectivement tu ne peux pas trop vérifier si il n'y a pas de caractères interdits de manière simple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part MatchesMask(adresse, '*@*.[A-Z][A-Z][A-Z]')
Je te renvois sur une page de la faq : http://delphi.developpez.com/faq/?page=regex
bonjour,
merci pour les infos
je vais voir du cote de ce site
http://regexpstudio.com/TRegExpr/TRegExpr.html
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 function TestMail(EMail:string):boolean; var a, b, c : integer; TmpS, accept : string; begin TmpS := lowercase(EMail); Result := True; accept := 'abcdefghijklmnopqrstuvwxyz0123456789-@._~'; //caractères acceptés //test caractères non acceptés for a := 1 to length(TmpS) do begin c:=0; for b:=1 to length(accept) do if copy(TmpS,a,1) = copy(accept,b,1) then c:=1; if c=0 then Result :=false; end; //test compte '@' = 1 b:=0; for a:=1 to length(TmpS) do if copy(TmpS,a,1) = '@' then b:=b+1; if b <> 1 then Result := False; //test compte '.' = 0 if pos('.',TmpS) = 0 then Result := false; end;
Je vous propose la solution suivante :
1) Vérifier qu'il n'y a qu'un @
2) Tester la partie à droite du @ qui doit être un domaine valide avec NS lookup par exemple (voir à ce sujet l'excellente suite de composants gratuits ICS de François Piette)
3) Tester la partie à gauche du @ me parait délicate :
- soit faire un test de validité via la RFC http://www.ietf.org/rfc/rfc0822.txt mais cela me paraît compliquer
- soit envoyer un mail à l'adresse indiquée (sachant que le point 2) est validé) : si n'y a pas de retour négatif l'e-mail est correct !
Partager