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

Langage PHP Discussion :

Vérification adresse e-mail


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 40
    Points : 31
    Points
    31
    Par défaut Vérification adresse e-mail
    Bonjour,
    J'aimerais vérifier les adresses e-mails de mon site internet, ca fait quelques jours que je cherche des solutions mais je ne trouve pas grand chose.


    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
    <?php
    $email = "test@test.com";
    $domain = explode('@', $email);
    $m = 0;
    if(getmxrr($domain[1],$mxhosts,$mx_weight))
    {
       echo "vrai<br>";
       $sock = @fsockopen($domain[1],25,$errno,$errstr,120);
       if($sock) 
       {
     
       }
       else
       {
    	  echo "requete au serveur faux";  
       }
     
    }
    else
    {
       echo "faux";
    }
    Donc pour l'instant j'arrive à savoir si le domaine de mail existe, c'est déjà pas mal, mais j'aimerais connaitre si la racine de l'e-mail est valide aussi...

    J'ai lu qu'il fallait communiquer avec le serveur par Socket, mais je n'y connais pas grand chose.
    De plus les ports de connexion peuvent être bloquer et on ne peut pas communiquer.

    J'aimerais arriver à la même solution que ce site internet :
    http://mailtester.com/testmail.php

    Il renvoi 3 solutions :

    Email est vert quand il existe bien.
    Email est rouge quand la racine n'existe pas .
    Email est oranqe quand le serveur n'arrive pas communiquer.

    Il y a t il des liens qui expliquent comment arriver à ce résultat?

    Merci !!

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 127
    Points : 179
    Points
    179
    Par défaut
    Bonjour
    A ma connaissance, il faut se connecter sur le port 25 au smtp du domaine de l'email (avec des sockets).
    A partir de ce moment on commence un envoi d'un email avec des commandes textes (protocole SMTP.)
    Quand on envoi la commande RCPT TO:mail_a_verifier
    Là le serveur smtp peut répondre si le destinataire est connu ou pas, on en déduit que l'adresse email est valide.

    Donc une recherche : php socket smtp devrait donner des bons résultats.

    Bon dev

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 70
    Points : 53
    Points
    53
    Par défaut
    Salut je ne sais pas si c'est ce que tu cherche:
    Vérifier la validité d'une adresse URL :

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    <?php
    /* Titre          : Vérifier la validité d'une adresse URL.                   */
    /*                                                                            */
    /* Date édition   : 08 Nov 2004                                               */
    /*                                                                            */
     
    ?>
    Code 1
     
    <?php 
     
    //Vérifier la validité d'un adresse URL.
    //Permet d'afficher un message si le lien d'une URL est valide ou non.
     
     
    // L'URL du site web
    $site = "http://www.messources.net";
     
    $file = @fopen($site, 'r'); 
    if ($file) 
    {
    echo 'URL valide !';
    } 
    else 
    {
    echo 'URL non valide !';
    } 
     
    ?>
     
     
    Code 2
     
    <?php
     
    function check_connect($host,$path)
    //verifie la validite de l'adresse, c'est a dire on regarde si le site existe
    // bien...
    //on rend dans un tableau :
    // "statut" : 0 si KO, 1 si redirect ou bien pour faire passer en local, 2 si OK
    // "code" : code HTTP
    // "message" : message
    {
        if(!TEST_URL)
        //si on travaille en local, on ne se connecte pas
        {
            $tab_return["statut"] = 1;
            $tab_return["code"] = 0;
            $tab_return["message"] = "Pas de test de connexion\n";
            return $tab_return;
        }
        $connect = 0;
        $no_code = 0;
        //connexion par socket
        if ($fp = @fsockopen($host,80))
        {
            //traitement du path
            if(substr($path,strlen($path)-1) != '/')
            {
                if(!ereg("\.",$path))
                    $path .= "/";
            }
            //envoi de la requete HTTP
            fputs($fp,"GET ".$path." HTTP/1.1\r\n"); 
            fputs($fp,"Host: ".$host."\r\n");
            fputs($fp,"Connection: close\r\n\r\n");
            //on lit le fichier
            $line = fread($fp,255);
            $en_tete = $line;
            //on lit tant qu'on n'est pas la fin du fichier ou
            // qu'on trouve le debut du code html...
            while (!feof($fp) && !ereg("<",$line) )
            {
                $en_tete .= $line;
                $line = fread($fp,255);
            }
            fclose($fp);
            //on switch sur le code HTTP renvoye
            $no_code = substr($en_tete,9,3);
            switch ($no_code)
            {
                // 2** la page a été trouvée
                case 200 :    $message = "OK";
                            $color = "#33cc00";
                            $connect = 2;
                            break;
                case 204 :    $message = "Cette page ne contient rien! (204)";
                            $color = "#ff9966";
                            break;
                case 206 :    $message = "Contenu partiel de la page! (206)";
                            $color = "#ff9966";
                            break;
                // 3** il y a une redirection
                case 301 : $message = "La page a été déplacéé définitivement!(301)";
                            $message .= seek_redirect_location($en_tete);    
                            $color = "#ff9966";
                            $connect = 1;
                            break;
                case 302 :  $message = "La page a été déplacéé momentanément!(302)";
                            $message .= seek_redirect_location($en_tete);
                            $color = "#ff9966";
                            $connect = 1;
                            break;
                // 4** erreur du coté du client
                case 400 :    $message = "Erreur dans la requête HTTP! (400)";
                            $color = "#ff0000";
                            break;
                case 401 :    $message = "Authentification requise! (401)";
                            $color = "#ff0000";
                            break;
                case 402 :    $message = "L'accès à la page est payant! (402)";
                            $color = "#ff0000";
                            break;
                case 403 :    $message = "Accès à la page refusé! (403)";
                            $color = "#ff0000";
                            break;
                case 404 :    $message = "Page inexistante! (404)";
                            $color = "#ff0000";
                            break;
                // 5** erreur du coté du serveur
                case 500 :    $message = "Erreur interne au serveur! (500)";
                            $color = "#ff0000";
                            $connect = 1;
                            break;
                case 502 :  $message = "Erreur cause passerelle du serveur! (502)";
                            $color = "#ff0000";
                            break;
                // cas restant
                default : $message = "Erreur non traitée -> numéro est : $no_code!";
                            $color = "#000000";
                            break;
            }
        }
        else
        {
            $message = "Impossible de se connecter par socket";
            $color = "#ff0000";
        }
      //creation du tableau avec les valeurs a rendre
      $data_return["statut"] = $connect; //la page est OK ou KO (200 => OK sinon KO)
      $data_return["code"] = $no_code; //code HTTP renvoye
      $data_return["message"] = "<font color=\"".$color."\">".$message."</font>\n";
      return $data_return;
    }
     
    // utilisation
     
                $url = "http://www.site.com";
                $url_parsee = parse_url($url);  
                $host = $url_parsee["host"];
                $path = isset($url_parsee["path"]) ? trim($url_parsee['path']) : '';
                $tab_return = check_connect($host,$path);
                echo $tab_return["message"];
     
    ?>

  4. #4
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,
    très bonne question ! Peux tester avec ce que dis cet article ? How to check if an email address exists without sending an email? (je n'ai pas le temps pour le faire en ce moment).

    Citation Envoyé par ptinavir
    Salut je ne sais pas si c'est ce que tu cherche:
    Vérifier la validité d'une adresse URL.
    Je pense pas.

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 127
    Points : 179
    Points
    179
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    Salut,
    très bonne question ! Peux tester avec ce que dis cet article ? How to check if an email address exists without sending an email? (je n'ai pas le temps pour le faire en ce moment).


    Je pense pas.
    J'ai regardé l'article, ça répond bien à la demande de ghis33

    Bon dev

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 40
    Points : 31
    Points
    31
    Par défaut
    Je viens de voir vos réponses, je n'ai pas encore regardé les liens, mais pour la connexion SMTP sur le port 25, est ce que c'est fiable, tout le monde utilise ce port ? j'ai entendu que gmail utilisé un autre port...

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 110
    Points : 71
    Points
    71
    Par défaut
    Bonjour,
    avant de répondre à votre question je vous demanderais si le port 80 est fiable ?
    si oui , alors le port 25 l'est aussi si non alors le port 25 ne l'est pas. Tout est une question d'un minimum de sécurité dans vos requêtes. Vous pouvez bien redéfinir un port pour votre serveur de messagerie mais (sauf cas contraire et erreur de ma part) cela ne fonctionnera qu'en intra. Pour le protocole qu'utilise google j'en ai aucune idée. Essayez de regarder dans la doc de php il y a une fonction qui vérifie automatiquement les mails.
    Merci

Discussions similaires

  1. Vérification adresse mail
    Par boteha dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2011, 13h11
  2. Vérification adresse e-mail avec lien
    Par cjacquel dans le forum Langage
    Réponses: 1
    Dernier message: 05/09/2010, 18h15
  3. Vérification adress e-mail
    Par stefanelle dans le forum Langage
    Réponses: 4
    Dernier message: 14/08/2009, 14h18
  4. [PHP 5.0] [Mail] Vérification d'une adresse e-mail
    Par hraiwen dans le forum Langage
    Réponses: 2
    Dernier message: 05/04/2009, 17h47
  5. [Mail] Vérification de l'adresse e-mail
    Par miltonis dans le forum Langage
    Réponses: 4
    Dernier message: 19/02/2007, 19h40

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