TESTER LA VALIDITÉ D'UN E-MAIL

Signaler
Messages postés
128
Date d'inscription
mardi 26 juin 2001
Statut
Membre
Dernière intervention
8 février 2005
-
hoby500
Messages postés
86
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
26 mai 2019
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11824-tester-la-validite-d-un-e-mail

hoby500
Messages postés
86
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
26 mai 2019

Dites les gars.

au lieu de copy(TmpS,a,1) vous faites mieux d'utiliser TmpS[a]

Puis, au lieu de :
for a:=1 to length(TmpS) do
begin
if pos(copy(TmpS,a,1),accept) < 0 then Result := False
end;

je propose :

Email_Bon := True; // j'assume que c'est bon
for a:=1 to length(TmpS) do
if pos(TmpS[a],accept) = 0 then
begin
Email_Bon := False; // je suis sûr que c'est pas bon
Break // je quitte la boucle
end;

// Pour vérifier la présence du point au delà du @ :
if Email_Bon then
begin
s:=Email; Delete(s, 1, pos('@', s));
if pos('.', s)=0 then Email_Bon := false
end
bloodfox
Messages postés
1
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
22 mai 2006

Je me suis permis d'adapter un peu ce code

//Test des caractères non acceptés
for a:=1 to length(TmpS) do
begin
if pos(copy(TmpS,a,1),accept) < 0 then
Result := False
end;
//Test du nombre de @
b:=0;
for a:=1 to length(TmpS) do //pour tous les caractères
if copy(TmpS,a,1) = '@' then b:=b+1; //si il trouve @ il ajoute 1
if b <> 1 then
Result := False;
//Test . ou @ qui se suivent
for a:=1 to length(TmpS) do //pour tous les caractères
if ( (copy(TmpS,a,1) '@') or (copy(TmpS,a,1) '.') ) and
((copy(TmpS,a+1,1) '@') or (copy(TmpS,a+1,1) '.')) then
Result := False;
//Test . ou @ en premier ou dernier caractere
if (copy(TmpS,1,1) '@') or (copy(TmpS,1,1) '.') or
(copy(TmpS,length(TmpS),1) '@') or (copy(TmpS,length(TmpS),1) '.') then
Result := False;
//Test présence d'un . après le @
if pos('.',copy(TmpS,pos('@',TmpS)+1,length(TmpS)-pos('@',TmpS)-1)) = 0 then
Result := false;
cs_stailer
Messages postés
507
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
13 mai 2009
1
Ah oui, s'il n'y a pas un '.' quelque part dans l'email c'est pas bon. Seulement ca ne dit pas OU dans l'email.
Or, pour ne pas avoir d'erreur il faut vérifier qu'il y ait un '.' APRES le @.
fabiin
Messages postés
338
Date d'inscription
mercredi 4 avril 2001
Statut
Membre
Dernière intervention
8 décembre 2009
6
ca le fai normalement
regarde a la fin du source :
if pos('.',TmpS) = 0 then Result := false; //si ya 0 '.' dans l'email c pas bon