TEST DE VALIDITÉ DU FORMAT D'UNE ADRESSE E-MAIL ET SMTP

ShadowMaster Messages postés 184 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 18 août 2005 - 22 mai 2004 à 01:01
Jiggy35 Messages postés 18 Date d'inscription jeudi 25 décembre 2003 Statut Membre Dernière intervention 12 août 2004 - 26 mai 2004 à 00:08
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/23045-test-de-validite-du-format-d-une-adresse-e-mail-et-smtp

Jiggy35 Messages postés 18 Date d'inscription jeudi 25 décembre 2003 Statut Membre Dernière intervention 12 août 2004
26 mai 2004 à 00:08
Ok

et pour ton souci de message de 2 points il suffit de mettre :
strMsg = "1 point ne peut suivre ou en précéder un autre dans la partie à droite du caractère @ de l'adresse E-Mail !"

au lieu de :
strMsg = "2 point ne peuvent être l'un derrière l'autre dans la partie à droite du caractère @ de l'adresse E-Mail !"

;-)
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
26 mai 2004 à 00:03
En effet, je pensai pas que tu comptais le @ dedans :( cherche pas à comprendre, c'est encore ma façon de penser bizzare qui me joue des tours ;)
Jiggy35 Messages postés 18 Date d'inscription jeudi 25 décembre 2003 Statut Membre Dernière intervention 12 août 2004
25 mai 2004 à 23:02
t'as raison pour les 2 points consécutifs, je vais voir, c'est mon msgbox qui affiche ça, je vais lui dire d'afficher la réponse de mon test à la place.

pour les 6 caractères, essaie de me trouver un e-mail plus court que :

a@a.fr

t'as la réponse ;-)

@+
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
25 mai 2004 à 22:58
Pourquoi une adresse doit pas dépasser 6 caracteres ?! L'histoire des 2 points consécutifs n'es pas tres vraie puisque si l'on en met 3, il dit qu'il y en a que 2. Bon voila, c'est du détail pour la 2eme remarque mes ce sont les détails qui font les codes parfaits ;)
bravo sinon
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
25 mai 2004 à 22:58
Pourquoi une adresse doit pas dépasser 6 caracteres ?! L'histoire des 2 points consécutifs n'es pas tres vraie puisque si l'on en met 3, il dit qu'il y en a que 2. Bon voila, c'est du détail pour la 2eme remarque mes ce sont les détails qui font les codes parfaits ;)
bravo sinon
Jiggy35 Messages postés 18 Date d'inscription jeudi 25 décembre 2003 Statut Membre Dernière intervention 12 août 2004
22 mai 2004 à 22:34
Voilà j'ai modifié le code de telle manière qu'il fonctionne en booléen. Le bouton Command1 test à présent si la fonction retourne true.
Jiggy35 Messages postés 18 Date d'inscription jeudi 25 décembre 2003 Statut Membre Dernière intervention 12 août 2004
22 mai 2004 à 13:47
ShadowMaster>
Merci de ton commentaire. j'ai utilisé une fonction car j'utilise tout au long du code des msgbox, mais il est vrai qu'un sub en booléen ferait très bien l'affaire.
Pour ce qui est des commandes Instr, Len, etc... ça a été le plus gros du boulot mais avec des tests et des msbox on y arrive :-)

Renfield>
Tu as tout à fait raison en ce qui concerne la commande Like. Je ne la connaissait pas et effectivement, elle me ferait gagner environ 3 lignes.
En ce qui concerne ton VbScript, pourquoi pas mais je ne connais pas assez cela. Je suis tout de même encore néophite en VB.

Merci aux deux pour vos commentaires constructifs et qui m'ont appris qqch.

Je suis tout de même content que vous n'ayez pas trouvé d'erreurs.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 mai 2004 à 02:10
Pour ce qui est des expressions régulières....

http://www.vbfrance.com/code.aspx?ID=17331

avec l'expression suivante, pour avoir les mêmes règles que celles que tu énonces plus haut.

([A-Z][^@]*)@([^.@]+)\.(\w{2,})


le code donnerait a peu pret ça :
(n'oublies pas d'ajouter la reference 'Microsoft VbScript Regular Expressions')

Public function ValidMail ( Mail as string ) as boolean
Dim REG as New RegExp
With REG
REG.Pattern = "([A-Z][^@]*)@([^.@]+)\.(\w{2,})"
REG.IgnoreCase = True
ValidMail = REG.Test ( Mail )
End With
End Function
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 mai 2004 à 02:00
Tu te compliques quelques peu, je trouve !

une simple expression régulière,ou un test en utilisant Like suffirait...
ShadowMaster Messages postés 184 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 18 août 2005
22 mai 2004 à 01:01
pour l'instant juste quelque petit truc: si tu n'attend rien à la sorti de ta fonction utilise Sub au lieu de function:
Private Sub ValidMail()

(exmple avec function: private function ValidMail() as boolean
...(si c bon la la fin: ValidMail=true)
et dans un bouton ou autre: if ValidMail=true then ...)

certain vont te dire qu'il n'aime pas utilisé goto :) mais bon ici ce n'est en rien genant.
A la rigeur tu peu declarer I en tant que Byte il n'ira pas au dela de 255
Personnelement je l'utilise pas Dim juste quand j'ai besoin dans l'immediat d'une variable mais je remet tout en private ou public.

voila c'est tout sinon pour se qui est de: right, left, mid, len etc... tu maitrise la chose bravo :)
Rejoignez-nous