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

EDI, CMS, Outils, Scripts et API PHP Discussion :

E-mail valide et existant


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Responsable Applicatif / Développeur
    Inscrit en
    Mai 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable Applicatif / Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 495
    Points : 110
    Points
    110
    Par défaut E-mail valide et existant
    Bonjour j'utilise wanewsletter et j'ai souvent des undelivered mail de nouveaux inscrits mettant des mails bidons (mais mais leur mail s'inscrit automatiquement dans la base).

    Je cherche donc un script php qui permet de vérifier qu'une adresse mail est valide ou existante.

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Ca n'existe pas, le seul moyen est d'envoyer un mail contenant un lien unique d'activation.

    Lorsque l'internaute clique sur le lien tu mets à jour son compte (compte_actif=Vrai)

  3. #3
    Membre régulier
    Homme Profil pro
    Responsable Applicatif / Développeur
    Inscrit en
    Mai 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable Applicatif / Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 495
    Points : 110
    Points
    110
    Par défaut
    oui ça je l'ai déjà fait, envoyer un lien de confirmation.
    mais je veux vraiment un script qui test si l'adresse est valide et existente, je suis sur que ça existe.

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Voici une fonction vérifie si un email existe mais je crois que ca marche pas pour les windows users :

    http://www.tienhuis.nl/files/email_verify_source.php

  5. #5
    Membre régulier
    Homme Profil pro
    Responsable Applicatif / Développeur
    Inscrit en
    Mai 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable Applicatif / Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 495
    Points : 110
    Points
    110
    Par défaut
    Je te remercie, je vais tester quand même. j'ai également trouver d'autres scripts mais qui ne fonctionnent pas ou partiellement.

    Si vous avez d'autres scripts n'hésitez pas.

    Merci

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 132
    Points : 99
    Points
    99
    Par défaut
    Le seul moyen de vérifier qu'une adresse est valide c'est de la passer à travers une expression régulière..
    Et pour vérifier qu'elle existe, il faudrait vérifier l'existence d'une entrée MX pour le domaine, bien que ça ne valide pas l'existence de l'utilisateur, mais ça limite..
    cela étant dit, ça me parait bien plus lourd comme méthode en comparaison du traitement du mail invalide par ton MTA
    Ceux ci étant tout de même conçu pour transférer des milliers de messages...
    Tu pourrais éventuellement utiliser un filtre avec ton client mail pour éviter d'être envahi par ses DNS ou encore configurer ton MTA pour qu'il ne te les envoie pas...

  7. #7
    Membre régulier
    Homme Profil pro
    Responsable Applicatif / Développeur
    Inscrit en
    Mai 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable Applicatif / Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 495
    Points : 110
    Points
    110
    Par défaut
    J'ai finalement trouvé un script qui fonctionne très bien chez moi sous windows, il teste la fonction qui ne fonctionne pas sous windows si elle n'existe pas il la créé.


    pour ceux que ça intéresse je vous le donne : http://x1fr.free.fr/dotclear/2004/12...e-adresse-mail

    Merci à ceux qui m'ont aidé.

  8. #8
    Membre régulier
    Homme Profil pro
    Responsable Applicatif / Développeur
    Inscrit en
    Mai 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable Applicatif / Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 495
    Points : 110
    Points
    110
    Par défaut
    apparement ce script qui semblait très bien fonctionner n'accepte pas certaines adresses tout a fait valides comme les adresses hotmail ou yahoo.
    mais par exemple gmail ou wanadoo (et d'autres serveurs plus rares) fonctionnent.

    Si quelqu'un a une idée ou un script qui fonctionne mieux n'hésitez pas.

    Merci

  9. #9
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Je pense pas que tu trouveras pas de script merveilleux qui fonctionne partout et avec n'importe quel serveur de messagerie

  10. #10
    Membre régulier
    Homme Profil pro
    Responsable Applicatif / Développeur
    Inscrit en
    Mai 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable Applicatif / Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 495
    Points : 110
    Points
    110
    Par défaut
    et ouai c'est ce que je vais finir par croire mais j'aimerai bien le trouver si il existe. mais le pb c ke ya pas mal d'adresse qui passe pas dessus.
    et j'en ai tester un autre qui lui par contre acceptait presque tout :s


    je file le code pour ceux que ça intéresse : (n'accepte pas yahoo, hotmail et surement d'autres apparement).

    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
    function mailCheck($Email)
    {
    	// L'adresse email doit être correctement formattée
    	if(!eregi("^[[:alpha:]]{1}[[:alnum:]]*((\.|_|-)[[:alnum:]]+)*@[[:alpha:]]{1}[[:alnum:]]*((\.|-)[[:alnum:]]+)*(\.[[:alpha:]]{2,})$", $Email))
    		exit('L\'adresse '.$Email.' est mal formatée');
    	// On récupère le domaine
    	list(,$domain ) = split('@',$Email); 
    	// On cherche des enregistrements MX dans les DNS
    	if (getmxrr($domain, $MXHost)) 
    		$ConnectAddress = $MXHost[0];
    	else
    		$ConnectAddress = $domain;
    	// On créé la connexion sur le port smtp (25)
    	$Connect = @fsockopen($ConnectAddress,25,&$errno,&$errstr); 
    	if($Connect)
    	{
    		if(ereg("^220", $Out = fgets($Connect, 1024)))
    		{
    			fputs ($Connect, "HELO {$_SERVER['HTTP_HOST']}\r\n");
    			$Out = fgets ( $Connect, 1024 );
    			fputs ($Connect, "MAIL FROM: <{$Email}>\r\n");
    			$From = fgets ( $Connect, 1024 );
    			fputs ($Connect, "RCPT TO: <{$Email}>\r\n");
    			$To = fgets ($Connect, 1024);
    			fputs ($Connect, "QUIT\r\n");
    			fclose($Connect);
    			// Si le code renvoyé par la commande RCPT TO est 250 ou 251 (cf: RFC)
    			// Alors l'adresse existe
    			if (!ereg ("^250", $To) && !ereg ( "^251", $To ))
    				// Adresse rejetée par le serveur
    				return false;
    			else
    				// Adresse acceptée par le serveur
    				return true;
    		}else{
    			// Le serveur n'a pas répondu
    			return false;
    		}
    	}else{
    		// Connexion au serveur de messagerie impossible
    		// vous pouvez afficher le message d'erreur en décommentant la ligne suivante:
    		// echo $errno."-".$errstr;
    		return false;
     
    	}
    }
     
     
     
     
     
    if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1") ) { // enregistrement des données
    // Définissez ici l'adresse à vérifier
    $mail = 'test@test.com';
    $mail = $_POST['mail'] ;
     
    if(mailCheck($mail))
    	echo 'L\'adresse existe';
    else
    	echo 'L\'adresse n\'existe pas ou une erreur est survenue';
    }

  11. #11
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Sinon il y a une solution, mais plutôt lourde, qui consiste a vérifier les failure notice.
    En gros il faut se connecter a son compte pop, et regarder si un message contient failure notice dans son sujet, et regarder les entêtes pour voir l'adresse email.

    http://fr2.php.net/manual/fr/book.imap.php

    Un petit example (ca marche, mais j'ai pas poussé les tests bien loin) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $mbox = imap_open("{ssl0.ovh.net:143}", "no-reply@test.com", "pass");
    if ($mbox === false)
      die('Une erreure est survenue.');
    $headers = imap_headers ($mbox);
    foreach($headers as $key => $header)
    {
      echo $key . ' : ' .$header .'<br>';
      if (substr($header, 44, 14) == 'failure notice')
      {
        // Faire quelque chose
      }
    }

  12. #12
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    e file le code pour ceux que ça intéresse : (n'accepte pas yahoo, hotmail et surement d'autres apparement).
    Ce n'est pas le code qui n'accepte pas Yahoo et Hotmail mais bien yahoo et hotmail qui n'acceptent pas les requêtes que tu lui envoie. Imagines si ils autorisaient ce genre de requête ils seraient vite flood

  13. #13
    Membre régulier
    Homme Profil pro
    Responsable Applicatif / Développeur
    Inscrit en
    Mai 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable Applicatif / Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 495
    Points : 110
    Points
    110
    Par défaut
    ThomasR je sais bien que c yahoo et hotmail qui n'acceptent pas les requetes que je leur envoi, par contre je ne comprend pas pk gmail ou oranges les accepte.

    leodi tu veux en fait que je regarde dans mes mails en fonction du undelivred status / failure etc...
    C'est vrai que c'est ce que je voulais faire au debut mais le pb c que tt les serveurs ne renvoient pas de mails d'erreurs.
    En tout cas merci de m'avoir envoué ton code je vais le testé.
    Si je ne trouve pas d'autres solutions je vais etres obliG de faire comme ça.

    Merci bcp en tt cas.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/03/2012, 11h59
  2. Vérifier si mail valide ’@.’ dans un formulaire
    Par Chansonnette dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2006, 14h09
  3. [RegEx] E-mail validation
    Par tilou dans le forum Langage
    Réponses: 1
    Dernier message: 29/03/2006, 23h02
  4. Vérifier si mail valide
    Par simoryl dans le forum Web & réseau
    Réponses: 16
    Dernier message: 09/11/2004, 18h56

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