Verification en temp reel des adresse mail la vrai!

Soyez le premier à donner votre avis sur cette source.

Snippet vu 33 094 fois - Téléchargée 28 fois

Contenu du snippet

bsr,

voici comment verifier une adresse mail, valide tous simplement en se connectant sur le port 25 par telnet.

Sur mon script y a plusieur choix possible, ici je fais saisir, le service smtp, l'adresse mail, et le fournisseur.(page enter_POP.php)

Personelement, fini les ereg, pour la verification d'un @ ou @eee.fr ici on passe a la version superieur lol certe. Chacun choisi son choix.

Source / Exemple :


// CODE PAGE DE SAISI DU FORMULAIRE enter_POP.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Document sans titre</title>
</head>

<body>
<p align="center"><strong>PROGRAMME PERMETTANT DE VERIFIER UNE ADRESSE MAIL EXISTANTE SUR UN SERVEUR POP </strong></p>
<p align="center">&nbsp;</p>
<p>&nbsp;</p>
<form name="form1" method="post" action="telnetemailverif.php">
  <p>
   fournisseur: Ex: wanadoo.fr
     <input type="text" name="fournisseur">
</p>
  <p>smtp: ex: smtp.wanadoo.fr
    <input type="text" name="smtp"></p>
  <p> mail :ex: adresse@wanadoo.fr
    <input type="text" name="mail"> </p>
  <p>
    <input type="submit" name="Submit" value="valider">
  </p>
</form>
<strong>Auteur: ceced </strong>
</body>
</html>
// FIN DU FORMULAIRE

// CODE PAGE telnetemailverif.php

<?php

//CLASS SMTP send
class funavecSMTP{

var $fp;

function send($data){
    echo nl2br($data)."<br>\n";
    fputs($this->fp, $data."\r\n");
    $this->recv();
}

/*FONTION PERMETTANT DE RECUPER LES REPONSE DU SERVEUR POUR ECRIR EN BLEU QUE C'EST OK au cas d'echec de commande ou adresse non valide donc reponse de telnet est: 512 on ecrit en ROUGE*/
function recv(){
    $response=fgets($this->fp, 512);
    list ($errno, $errmsg) = split (" ", $response);
    if ($errno<500){
    echo "<font color=\"blue\">$response</font>\n<br>";
    }else{
    echo "<font color=\"red\">$response</font>\n<br>";
    exit;
    }   
}
// FONCTION OPEN smtp
function open($smtpserver,$ti=2){
    $this->fp = fsockopen($smtpserver, 25, $errno, $errstr, $ti);
    if (!$this->fp){
    echo "<b>echec d'ouverture $smtpserver</b><br><font color=\"red\">$errstr ($errno).</font><hr>\n";
    exit;
    } 
    $this->recv();
}

function close(){
    fclose($this->fp);
}
}

$fun = new funavecSMTP;

$mySMTPserver    =   "$smtp";

$terminator=".";

$fun->open($mySMTPserver);
$fun->send("HELO $fournisseur");
$fun->send("VRFY $mail");

/*POUR EXECUTER D OTRE COMMANDE IL SUFFIT DE RAJOUTER ICI SE QUE VOUS VOULEZ EXECUTER 
exemple : $fun->send("help");// help indique toute les commande possible de telnet por 25

  • /
$fun->send("QUIT"); $fun->close(); ?>

Conclusion :


Cette source et libre d'utilisation

Merci de me faire par de vos commentaires
Cordialement
Enjoy man if u have a question cedricben@hotmail.com

A voir également

Ajouter un commentaire

Commentaires

djosos
Messages postés
10
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
11 août 2005
-
Bonjour,
Le port 25 ne doit pas être bloqué côté serveur.
A+
mlinux
Messages postés
6
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
9 novembre 2009
-
Bonjour,
Je viens de tester votre script qui me parait très prometteur.

Seulement je n'arrive pas à analyser correctement les résultats :

Cas adresse correcte :
----------------------
220 8.mail-out.xxx.net ESMTP
HELO cegetel.net
250 8.mail-out.xxx.net
VRFY adresse@cegetel.net
252 send some mail, i'll try my best
QUIT
221 8.mail-out.xxx.net

Cas adresse erronnée :
----------------------
220 8.mail-out.xxx.net ESMTP
HELO cegetel.net
250 8.mail-out.xxx.net
VRFY adresse_aaa@cegetel.net
252 send some mail, i'll try my best
QUIT
221 8.mail-out.xxx.net

Merci pour votre aide.

Michel FOUILLADE
monphpcs
Messages postés
7
Date d'inscription
dimanche 13 juin 2004
Statut
Membre
Dernière intervention
3 juillet 2004
-
oui c'est bon.
pour la bd, juste 2 fichiers txt qui contiennent les noms de domaines fiables et les non fiables.
L'intérét est qd on vérifie des centaines ou miliers d'adresses email.
Par exemple : aol.com est pas fiable pour dire si une adr est valide ou non. Donc inutile de tester les adr emails. Juste besoin de tester 1 fois qu'aol est pas fiable en testant une adr bidon. Ensuite, les centaines d'emails pour aol ne seront pas testés, mais le résultat sera : INDETERMINE.
Alors que pour les domaines fiables on fera qu'un test de fiabilité et on vérifiera toutes les adr emails. Dans ce cas, les résultats seront :
Adresse existante ou Adresse invalide.

Simple
josh666
Messages postés
81
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
1 octobre 2007
1 -
Pour le problème de la demande su smtp ... la solution la plsu simple quoi un peu longue serait de construire une BD avec les SMTP relié au fournisseur .... UNe banque des plsu connu a travers le monde genre..

Pour le fournisseur et bien... il est possible de récupérer a la fin de ladresse email ..non ??

Donnez moi des news...
monphpcs
Messages postés
7
Date d'inscription
dimanche 13 juin 2004
Statut
Membre
Dernière intervention
3 juillet 2004
-
le port smtp est le bon choix.
la commande VERIFY pas toujours exploitable... Le top est de trouver les MX correspondants à l'adresse email, pas compliqué.
Il faut faire une tentative d'envoi d'email, c'est la meilleure méthode bien qu'elle ne soit pas fiable à 100 % car certains serveurs acceptent l'email même si l'adresse existe pas....
Donc, la solution est de vérifier ce que le serveur renvoie avec une adr bidon et ensuite on sait si l'adresse existe, n'existe pas ou si elle est indéterminée ( cas du serveur qui accepte tous les emails sans renvoyer d'erreur ).

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.