VERIFICATEUR DU FORMAT DE L'EMAIL

Messages postés
23
Date d'inscription
mardi 18 décembre 2001
Statut
Membre
Dernière intervention
19 mars 2003
- - Dernière réponse : 120120
Messages postés
5
Date d'inscription
lundi 28 mars 2005
Statut
Membre
Dernière intervention
6 janvier 2010
- 5 juin 2009 à 13:37
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/15925-verificateur-du-format-de-l-email

120120
Messages postés
5
Date d'inscription
lundi 28 mars 2005
Statut
Membre
Dernière intervention
6 janvier 2010
-
effectivement avec l'ip ça passe :p

voici une méthode (pas encore finalisé) pour tester un mail via PEAR :

    function checkEmail( $email, $srv_mail )
    {
        // checks proper syntax
        $regexp = "^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$";

        if ( !eregi( $regexp, $email ) )
        {
            echo $this->status_div( 1, "Problème de formatage de l'adresse Email !!!" );
            return false;
        }
        // gets domain name
        list( $username, $domain ) = split( '@', $email );
        // checks for if MX records in the DNS
        $mxhosts = array();
        // créer l'objet
        require ( "Net/Ping.php" );
        $ping = Net_Ping::factory();
        // exécuter la commande ping sur l'hôte et afficher la réponse
        if ( !PEAR::isError( $ping ) )
        {
            $response = $ping->ping( $srv_mail );
            // if (eregi('error',$response)) return false;
            if ( PEAR::isError( $response ) )
            {
                echo $this->status_div( 1, "Problème pour joindre le server mail" );
                return false;
            }
            return array( $email );
        }
        return false;
    }


Bonne journée
apxa
Messages postés
188
Date d'inscription
mercredi 15 mai 2002
Statut
Membre
Dernière intervention
25 avril 2009
-
Salut,
A l'époque où j'ai posé la source les expr reg n'étaient pas vraiement au point sur tous les navigateurs.
Ceci dit maintenant ce n'est plus la cas on peut effectivement faire une bonne expr reg pour cela.

si j'ai le temps j'en poserais une. Completer ce contrôle du coté serveur peut aussi s'avérer très utile pour la validité des domaines ou IP.

Essayes d'inclure dans ta regexp ce cas la : email@10.24.134.17

Have Fun ;)
120120
Messages postés
5
Date d'inscription
lundi 28 mars 2005
Statut
Membre
Dernière intervention
6 janvier 2010
-
Bonjour,

Merci pour la source, mais une petite question persiste,

Lorsque j'essaie de renseigner ce type de mail < toto@toto.nccsd >, le mail est validé, alors que jusqu'à aujourd'hui il n'est pas possible de renseigner un suffixe de plus de trois caractères.

Donc $regexp = "^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$"; (désolé) mais cela à le mérite de fonctionner.

Bonne journée
oufben
Messages postés
17
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
2 mai 2007
1 -
une petite remarque cependant...
Si vraiment on veut titiller jusqu'au bout la vérif...
Je suis peut-etre bigleu mais, je n'ai pas vu dans ton code de vérification de la longueur maximale de l'email, car il me semble bien que cette longueur est limitée !
Ainsi, si je rentre une email valide mais de 5000 caracteres dans ta vérif, elle va passer, a moins encore une fois , que j'ai raté qqch lol ;)
oufben
Messages postés
17
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
2 mai 2007
1 -
Mise a part le fait que je n'aime pas l'utilisation du break a tout bout de champ dans une boucle (je titille :P ), le code est impecc ^^

Bravo ^^