 | | Offres d'emplois |  | Développeur web PHP/MySQL en alternance Enseigne partenaire de notre centre de formation, offrant des possibilités d'évolutions, recherche dans le cadre d'un contrat de professionnalisati... | |
 | | Avez vous lu ? |  | | |
|
 Une classe pour contrôler les emails | |  |

<?
require_once("classe_verification_email.php");
$cl_email = new verification_email;
$email = 'test@test.com';
$ok = $cl_email->teste_email($email);
if ($ok) echo "adresse $email correcte<br>";
else echo "adresse $email incorrecte<br>";
?>
La classe complète se présente ainsi :
<?php
// --- classe de vérification
des adresses email
class verification_email {
var $system_OS = "win";//système d'exploitation (win/linux)
var $debug = 0;// textes de mise au point
var $check_result; // résultats
function teste_email($email) {
$email = strtolower($email);
// --- vérification de la syntaxe
$ok = $this->check_email($email);
if (!$ok) return FALSE;
// --- decomposition de l'adresse
list($userName, $hostName) = split("@", $email);
// --- on teste l'enregistrement MX
if (!$this->checkDNS ($hostName)) {
$this->check_result .= "Pas d'enregistrement MX";
return FALSE;
}
else {
$this->check_result .= "Enregistrement MX OK";
return TRUE;
}
}
// --- vérification de la syntaxe de l'adresse email
function check_email($email) {
if (preg_match('/^[-!#$%&\'*+\\.\/0-9=?
A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z])
{2,4}$/i', $email)) {
$this->check_result .= "Syntaxe OK";
return TRUE;
}
else {
$this->check_result .= "Erreur de syntaxe";
return FALSE;
}
}
// vérifie si l'enregistrement MX existe pour le domaine
function checkDNS($hostName) {
// --- linux
if ($this->system_OS == "linux") {
if (getmxrr($this->hostName)) return TRUE;
else return FALSE;
}
// --- windows
else {
if(!empty($hostName)) {
exec("nslookup -type=MX ".$hostName, $result);
// vérifie chaque ligne
pour voir si l'une d'entre elles
// commence par le nom de domaine
// si c'est le cas, la vérification est positive
// sinon, c'est qu'il n'y a pas d'enregistrement
// MX pour le domaine
foreach ($result as $line) {
if(eregi("^".$hostName,$line)) return true;
}
return false;
}
return false;
}
}
}
?>
|
|
|
 |
|