IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Validation d'email


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 71
    Points : 53
    Points
    53
    Par défaut Validation d'email
    Je suis en VB6

    Je veux être capable de valider un adresse email

    1 - C'est a dire, vérifier que tout les caractère soit des caractère valide pour une adresse email
    2 - Vérifier que ce soit: nom@serveur.ext

    Dans le fond je veut etre capable de vérifier que l'adresse pourrait exister.

  2. #2
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Points : 739
    Points
    739
    Par défaut
    Salut,

    Voici 2 fonctions pour faire cela:
    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
    Function TestMailAd(monAd As String) As Boolean
    Dim nom As String
    Dim servad As String
     
        'Contrôle la présence de @ dans l'adresse
        If InStr(monAd, "@") = 0 Then
            TestMailAd = False
            Exit Function
        End If
     
        'Récupère le nom du serveur et le nom destinataire
        servad = Mid(monAd, InStr(monAd, "@") + 1)
        nom = Mid(monAd, 1, InStr(monAd, "@") - 1)
     
        'Contrôle de la présence du . dans l'adresse (penser aux adresses du type ".fr.st"
        If InStr(servad, ".") <= 1 Then 'on part du principe que l'adresse est au moins "a.*"
            TestMailAd = False
            Exit Function
        End If
     
        'Contrôle la validité des chaînes de caratères
        If ValidChaine(nom) And ValidChaine(servad) Then
            TestMailAd = True
        Else
            TestMailAd = False
        End If
     
    End Function
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Function ValidChaine(maChaine As String) As Boolean
     
        For I = 1 To 45
            If InStr(maChaine, Chr(I)) <> 0 Then
                ValidChaine = False
                Exit Function
            End If
        Next I
        ' chr(46)="."
        If InStr(maChaine, Chr(47)) <> 0 Then
            ValidChaine = False
            Exit Function
        End If
        ' "0..9"
        For I = 58 To 64
            If InStr(maChaine, Chr(I)) <> 0 Then
                ValidChaine = False
                Exit Function
            End If
        Next I
        ' "A..Z"
        For I = 91 To 94
            If InStr(maChaine, Chr(I)) <> 0 Then
                ValidChaine = False
                Exit Function
            End If
        Next I
        ' "_"
        If InStr(maChaine, Chr(96)) <> 0 Then
            ValidChaine = False
            Exit Function
        End If
        ' "a..z"
        For I = 123 To 255
            If InStr(maChaine, Chr(I)) <> 0 Then
                ValidChaine = False
                Exit Function
            End If
        Next I
        ValidChaine = True
     
    End Function
    et 1 exemple d'utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
        MsgBox TestMailAd("theo@dvp.com")
    End Sub
    Bonne continuation

    Théo

  3. #3
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 71
    Points : 53
    Points
    53
    Par défaut
    parfait, merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 49
    Points : 60
    Points
    60
    Par défaut En beaucoup plus simple
    Vous pouvez utiliser les expressions régulières pour valider la syntaxe d'une adresse email. J'ai modifié code posté pour obtenir une procédure de validation beaucoup plus compacte.

    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
     
    Function TestMailAd(monAd As String) As Boolean
      Dim RegChaine As RegExp
      Dim ColChaine
     
      Set RegChaine = New RegExp
      RegChaine.Global = False
      RegChaine.Pattern = "^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$"
      Set ColChaine = RegChaine.Execute(monAd)
      If ColChaine.Count = 0 Then
        TestMailAd = False
        Exit Function
      End If
     
      TestMailAd = True
    End Function
    PS : Le 'Pattern' de l'expression régulière n'est pas de moi, je l'ai trouvée dans un autre forum.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 49
    Points : 60
    Points
    60
    Par défaut
    Ah j'oubliais ... pour pouvoir utilser les expression régulières dans un projet VB, il faut ajouter la référence à la DLL qui permet de gérer les Regexp :

    Aller dans le menu Outils/Références et cocher "Microsoft VBScript Regular Expressions 5.5"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] valider un email finissant par un point
    Par sinifer dans le forum Langage
    Réponses: 4
    Dernier message: 10/05/2010, 12h53
  2. VBA récupérer et/ou valider compte email ACTIVE DIRECTORY
    Par kryptx dans le forum Général VBA
    Réponses: 1
    Dernier message: 16/04/2009, 11h02
  3. [POO] test de validation format email
    Par Don-Leplang dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 06/02/2009, 11h39
  4. [MySQL] Validation par email
    Par nasbe dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/06/2008, 11h11
  5. validation d' email
    Par minie dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/05/2007, 11h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo