diff --git a/conf.php b/conf.php index f4c247b..567d374 100755 --- a/conf.php +++ b/conf.php @@ -7,33 +7,57 @@ // Home : http://zici.fr/emailPoubelle.html //----------------------------------------------------------- -#error_reporting(0); -error_reporting(E_ALL); - -define('VERSION', '0.1.1'); +define('VERSION', '0.2'); define('DOMAIN', 'zici.fr'); // Serveur DNS pour la résolution/vérification du nom de domaine define('NS1', 'ns1.fdn.org'); +define('NS2', '8.8.8.8'); + +if (basename($_SERVER['SCRIPT_FILENAME']) == 'emailPoubelle_dev.php') { + # Dev + define('DEBUG', true); + error_reporting(E_ALL); + + define('FICHIERALIAS', './postfix/virtual_debug'); + + define('URLPAGE', 'http://www.zici.fr/emailPoubelle/emailPoubelle_dev.php'); + + // A indiquer si vous utiliser les URL's rewriting + // Exemple avec un htaccess + // RewriteRule ^EmailPoubell-([0-9]+)\.html$ index.php?page=emailPoubelle&Validemail=$1 [L] + #define('URLREWRITE_DEBUT', 'http://www.zici.fr/EmailPoubell-'); + #define('URLREWRITE_FIN', '.html'); + // Désactiver + define('URLREWRITE_DEBUT', false); + define('URLREWRITE_FIN', false); +} else { + # Prod + error_reporting(0); + define('DEBUG', false); + + define('FICHIERALIAS', './emailPoubelle/postfix/virtual'); + + define('URLPAGE', 'http://www.zici.fr/emailPoubelle.html'); + + // A indiquer si vous utiliser les URL's rewriting + // Exemple avec un htaccess + // RewriteRule ^EmailPoubell-([0-9]+)\.html$ index.php?page=emailPoubelle&Validemail=$1 [L] + define('URLREWRITE_DEBUT', 'http://www.zici.fr/EmailPoubell-'); + define('URLREWRITE_FIN', '.html'); + // Désactiver + # define('URLREWRITE_DEBUT', false); + # define('URLREWRITE_FIN', false); +} define('BIN_POSTMAP', '/usr/sbin/postmap'); -define('URLPAGE', 'http://zici.fr/emailPoubelle.html'); - -// A indiquer si vous utiliser les URL's rewriting -// Exemple avec un htaccess -// RewriteRule ^EmailPoubell-([0-9]+)\.html$ index.php?page=emailPoubelle&Validemail=$1 [L] -define('URLREWRITE_DEBUT', 'http://www.zici.fr/EmailPoubell-'); -define('URLREWRITE_FIN', '.html'); -// Désactiver -# define('URLREWRITE_DEBUT', false); -# define('URLREWRITE_FIN', false); - -define('FICHIERALIAS', './emailPoubelle/postfix/virtual'); - // Email de confirmation define('EMAIL_SUJET', '[zici] [EmailPoubelle] Confirmation alias '); define('EMAIL_FROM', '"NO REPLAY emailPoubelle" '); +# Alisas interdit : +$aliasInterditListe = array('root', 'mail', 'email', 'test', 'toto', 'www-data', 'www-owne', 'manager', 'admin', 'postmaster', 'MAILER-DAEMON', 'abuse', 'spam', 'backup', 'list', 'nobody', 'vmail', 'mysql', 'web', 'git'); + ?> diff --git a/emailPoubelle.php b/emailPoubelle.php index 9a1518c..db7a88a 100644 --- a/emailPoubelle.php +++ b/emailPoubelle.php @@ -1,53 +1,58 @@ Erreur : le fichier d\'alias ('.FICHIERALIAS.') ne peut pas être écrit. Merci de contacter l\'administrateur'); +} + +function VerifMXemail($email) { + require_once 'Net/DNS2.php'; $domaine=explode('@', $email); - $serveurDeNom=array( - NS1 - ); - $resolver = new Net_DNS_Resolver(); - $resolver->nameservers=$serveurDeNom; - $response = $resolver->query($domaine[1],'MX'); - if ($response) { + $r = new Net_DNS2_Resolver(array('nameservers' => array(NS1, NS2))); + try { + $result = $r->query($domaine[1], 'MX'); + } catch(Net_DNS2_Exception $e) { + return false; + } + if ($result->answer) { return true; } else { return false; } } -function UpdateVirtualDB() -{ + +function UpdateVirtualDB() { echo exec(BIN_POSTMAP.' '.FICHIERALIAS,$output,$return); } -function AjouterAlias($alias,$email) -{ +function AjouterAlias($alias,$email) { $fichier=fopen(FICHIERALIAS,'a+'); fputs($fichier, $alias.'@'.DOMAIN.' '.$email."\n"); fclose($fichier); UpdateVirtualDB(); } - -function SupprimerAlias($alias,$email) -{ +function SupprimerAlias($alias,$email) { file_put_contents(FICHIERALIAS, preg_replace('#\n\#[0-9]+ '.$alias.'@'.DOMAIN.' '.$email.'#U', '', file_get_contents(FICHIERALIAS)/*, 1*/)); file_put_contents(FICHIERALIAS, preg_replace('#\n'.$alias.'@'.DOMAIN.' '.$email.'#U', '', file_get_contents(FICHIERALIAS)/*, 1*/)); # http://www.siteduzero.com/forum-83-542138-p1-supprimer-une-ligne-d-un-fichier-texte-avec-regex.html UpdateVirtualDB(); } +if (DEBUG) { + echo '
Debug activé
'; +} + echo '

Emails poubelle libre

Générer des emails poubelle sans contrainte de durée de vie.

'; @@ -72,11 +77,13 @@ if (isset($_REQUEST['Validemail'])) { echo '
Erreur : Adresse email incorrect (2)
'; } else if (! preg_match('#^[\w.-]+$#',$alias)) { echo '
Erreur : email poubelle incorrect
'; + } else if (in_array($alias, $aliasInterditListe)) { + echo '
Erreur : email poubelle interdit
'; } elseif (isset($_REQUEST['ajo'])) { if (preg_match('#\n'.$alias.'@'.DOMAIN.'#', file_get_contents(FICHIERALIAS)) || preg_match('#\n\#[0-9]+ '.$alias.'@'.DOMAIN.'#', file_get_contents(FICHIERALIAS))) { echo '
Erreur : cet email poubelle est déjà utilisé
'; } else { - if (preg_match('#@'.DOMAIN.' '.$email.'$#', file_get_contents(FICHIERALIAS))) { + if (preg_match('#\n[a-z0-9]+@'.DOMAIN.' '.$email.'#', file_get_contents(FICHIERALIAS))) { AjouterAlias($alias,$email); echo '
Votre email poubelle '.$alias.'@'.DOMAIN.' > '.$email.' est maintenant actif
'; } else { @@ -130,4 +137,4 @@ if (isset($_REQUEST['Validemail'])) { la redirection poubelle

Version - Créé par David Mercereau sous licence GNU GPL v3

-

Télécharger et utiliser ce script sur le site du projet emailPoubelle.php

+

Télécharger et utiliser ce script sur le site du projet emailPoubelle.php