From 36c6a3e92c78429d38c9ba39d4c05c7c90a128a7 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 15 May 2012 21:29:38 +0200 Subject: [PATCH] =?UTF-8?q?V=C3=A9rification=20de=20l'adresse=20email=20pa?= =?UTF-8?q?r=20DNS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf.php | 5 ++++- emailPoubelle.php | 26 +++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/conf.php b/conf.php index 0863482..f4c247b 100755 --- a/conf.php +++ b/conf.php @@ -10,10 +10,13 @@ #error_reporting(0); error_reporting(E_ALL); -define('VERSION', '0.1 Beta1'); +define('VERSION', '0.1.1'); define('DOMAIN', 'zici.fr'); +// Serveur DNS pour la résolution/vérification du nom de domaine +define('NS1', 'ns1.fdn.org'); + define('BIN_POSTMAP', '/usr/sbin/postmap'); define('URLPAGE', 'http://zici.fr/emailPoubelle.html'); diff --git a/emailPoubelle.php b/emailPoubelle.php index 99892b1..a003bca 100644 --- a/emailPoubelle.php +++ b/emailPoubelle.php @@ -12,6 +12,22 @@ include_once('./conf.php'); +function VerifMXemail($email) +{ + require_once 'Net/DNS.php'; + $domaine=explode('@', $email); + $serveurDeNom=array( + NS1 + ); + $resolver = new Net_DNS_Resolver(); + $resolver->nameservers=$serveurDeNom; + $response = $resolver->query($domaine[1],'MX'); + if ($response) { + return true; + } else { + return false; + } +} function UpdateVirtualDB() { echo exec(BIN_POSTMAP.' '.FICHIERALIAS,$output,$return); @@ -52,6 +68,8 @@ if (isset($_REQUEST['Validemail'])) { $email=strtolower($_REQUEST['email']); if (! filter_var($email, FILTER_VALIDATE_EMAIL)) { echo '
Erreur : Adresse email incorrect
'; + } else if (! VerifMXemail($email)) { + echo '
Erreur : Adresse email incorrect (2)
'; } else if (! preg_match('#^[\w.-]+$#',$alias)) { echo '
Erreur : email poubelle incorrect
'; } elseif (isset($_REQUEST['ajo'])) { @@ -124,6 +142,8 @@ if (isset($_REQUEST['Validemail'])) {

Typiquement c'est un script à inclure dans une page entre les balises body

+

Le script a besoin de la lib pear Net_DNS

+

Le script utilise les virtual_alias_maps de postfix. Connectez vous en root

srv:~# vi /etc/postfix/main.cf
[...]
@@ -136,7 +156,11 @@ srv:~# chown www-data /www/emailPoubelle/postfix/virtual.db

Assurez vous que l'exécutable /usr/sbin/postmap soit accessible par l'utilisateur www-data

Changelog

-Version 0.1 Beta1 +Version 0.1.1 + +Version 0.1