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
|
<?
//fonction
function test{
// Auteur : Communauté PEAR
// Mise en exemple par Alexandre TRANCHANT
//La variable $mail est-elle une adresse e-mail syntaxiquement valide ?
<a href="http://www.developpez.net/forums/" target="_blank">//$mail='john.doe@example.org'</a>;
$mail=$REP4['email'];
require 'PEAR.php'; //Appel de la librairie PEAR
require 'Mail/RFC822.php'; //Appel de la librairie Mail_RFC822
$testM=1;
$lo_mail = Mail_RFC822::parseAddressList($mail, NULL, FALSE);
if(PEAR::isError($lo_mail)){
//$lo_mail est une erreur
//l'adresse e-mail n'est donc pas valide
echo $mail.'n\'est pas une adresse e-mail valide';
return 0;
$testM=0;
die();
} elseif ($lo_mail[0]->host=='localhost'){
//le nom de domaine de cette adresse est localhost
//dans cet exemple on refuse ce genre de mail !
echo $mail.'n\'est pas une adresse valide';
return 0;$testM=0;
die();
} else {
echo $mail.' est une adresse e-mail SYNTAXIQUEMENT valide';
}
//$lo_mail contient l'adresse e-mail stockée dans un tableau
/*
Voici le contenu de $lo_mail
Array
(
[0] => stdClass Object
(
[personal] =>
[comment] => Array
(
)
[mailbox] => john.doe
[host] => example.org
)
)*/
$ls_domaine=$lo_mail[0]->host;
//$ls_domaine contient example.org
//Rappel : La valeur ci dessous a normalement été initialisée dans la partie 2 du script
//$ls_domaine = 'developpez.com';
//Inscrivez dans ce tableau les serveurs de noms de votre FAI.
/*$la_serveur_de_nom=array(
'212.27.32.5', //Adresse IP du serveur de noms primaire de mon FAI (Free)
'212.27.32.176', //Adresse IP du serveur de noms secondaire de mon FAI (Free)
'212.27.32.177' //Adresse IP du serveur de noms tertiaire de mon FAI (Free)
);*/
//Appel de la bibliothèque PEAR : Net DNS
require_once 'Net/DNS.php';
//Les fonctions ne peuvent pas s'appeler de façon statitique cette fois
//On crée donc une instance de classe Net_DNS_Resolver
$lo_resolver = new Net_DNS_Resolver();
//Décommentez cette ligne pour afficher le debuggage
$lo_resolver->debug=1;
//On précise nos noms de serveurs
//$lo_resolver->nameservers=$la_serveur_de_nom;
//On lance une requête, on précise MX pour identifier un éventuel serveur de mail
$lo_response = $lo_resolver->query($ls_domaine,'MX');
//on teste la réponse
if ($lo_response) {
foreach ($lo_response->answer as $lo_rr) {
//On affiche le résultat pour l'exemple, mais c'est inutile dans l'aboslu
$lo_rr->display();
echo "Nom de serveur de mail $ls_domaine valide";
return 1;
$testM=1;
}
} else {
echo "Nom de serveur de mail $ls_domaine inconnu";
return 0;$testM=0;
}
}
?> |
Partager