Debug activé
'; echo print_r($_REQUEST); echo ''; } if (!defined('DOMAIN') || !defined('DATA') || !defined('DEBUG') || !defined('FICHIERALIAS') || !defined('DB')) { echo '
Erreur : Il ne semble pas que le fichier de configuration conf.php soit inclue car les constantes ne sont pas présentes.
'; // check writable work directory } else if (!is_writable(DATA)) { echo '
Erreur : le répertoire de travail ne peut pas être écrit. Merci de contacter l\'administrateur
'; // check alias file is_writable } else if (!is_writable(FICHIERALIAS)) { echo '
Erreur : le fichier d\'alias ne peut pas être écrit. Merci de contacter l\'administrateur
'; // check blacklist file is_writable } else if (defined('BLACKLIST') && !is_readable(BLACKLIST)) { echo '
Erreur : un fichier de blacklist est renseigné mais n\'est pas lisible. Merci de contacter l\'administrateur
'; // check aliasdeny file is_writable } else if (defined('ALIASDENY') && !is_readable(ALIASDENY)) { echo '
Erreur : un fichier d\'alias interdit est renseigné mais n\'est pas lisible. Merci de contacter l\'administrateur
'; // maintenance mod } else if (MAINTENANCE_MODE == true && MAINTENANCE_IP != $_SERVER["REMOTE_ADDR"]) { echo '
Le service est en maintenance.
'; } else { if (MAINTENANCE_MODE == true) { echo '
Le service est en maintenance.
'; } // Connect DB try { if (preg_match('/^sqlite/', DB)) { $dbco = new PDO(DB); } else { $dbco = new PDO(DB, DBUSER, DBPASS); } $dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch ( PDOException $e ) { die('Connexion à la base '.$e->getMessage()); } // Create DB if not exists try { // status : 0=not verified - 3=disable - 5=active if (preg_match('/^sqlite/', DB)) { $create = $dbco->query("CREATE TABLE IF NOT EXISTS ".DBTABLEPREFIX."alias ( id INTEGER PRIMARY KEY, status INTEGER(1) NOT NULL, alias CHAR(150) NOT NULL UNIQUE, email CHAR(150) NOT NULL, dateCreat DATETIME NOT NULL, dateExpir DATETIME, comment TEXT);"); } else { $create = $dbco->query("CREATE TABLE IF NOT EXISTS ".DBTABLEPREFIX."alias ( id INTEGER PRIMARY KEY AUTO_INCREMENT, status INTEGER(1) NOT NULL, alias CHAR(150) NOT NULL UNIQUE, email CHAR(150) NOT NULL, dateCreat DATETIME NOT NULL, dateExpir DATETIME, comment TEXT);"); } } catch ( PDOException $e ) { echo '
Erreur à l\'initialisation des tables. Merci de contacter l\'administrateur '; if (DEBUG) { $e->getMessage(); } echo '
'; die(); } ////////////////// // Start program ////////////////// // get process "act" (action) $action = isset($_GET['act']) ? $_GET['act'] : ''; switch ($action) { case "validemail" : $get_value = urlUnGen($_GET['value']); if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE id = '".$get_value['id']."' AND status = 0")->fetchColumn() != 0) { UpdateStatusAlias($get_value['id'], $get_value['alias_full'], 5); echo '
Votre email poubelle '.$get_value['alias_full'].' est maintenant actif
'; } else { echo '
Erreur : ID introuvable ou déjà validé
'; } break; case "disable" : $get_value = urlUnGen($_GET['value']); DisableAlias($get_value['id'], $get_value['alias_full'], null); break; case "enable" : $get_value = urlUnGen($_GET['value']); EnableAlias($get_value['id'], $get_value['alias_full'], null); break; case "delete" : $get_value = urlUnGen($_GET['value']); DeleteAlias($get_value['id'], $get_value['alias_full']); break; case "cron" : if (CRON) { echo '
La tâche planifié est lancé
'; LifeExpire(); } else { echo '
Vous n\'avez pas autorisé le lancement par tâche planifié
'; } break; } // Form if (isset($_POST['username']) && $_POST['username'] != '') { // minimal anti-spam echo 'Hello you'; } else if (isset($_POST['list'])) { $email=strtolower(StripCleanToHtml($_POST['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 (ListeAlias($email)) { echo '
Un email vient de vous être envoyé
'; } else { echo '
Erreur : aucun email actif connu
'; } } else if (isset($_POST['email']) && isset($_POST['alias'])) { $alias=strtolower(StripCleanToHtml($_POST['alias'])); $email=strtolower(StripCleanToHtml($_POST['email'])); $domain=StripCleanToHtml($_POST['domain']); $life=$_POST['life']; $comment=StripCleanToHtml($_POST['comment']); $alias_full=$alias.'@'.$domain; // Check form 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 : Format de l\'email poubelle incorrect
'; } else if (! preg_match('#'.$domain.'#',DOMAIN)) { echo '
Erreur : ce domain n\'est pas pris en charge
'; } else if (AliasDeny($alias)) { echo '
Erreur : email poubelle interdit
'; } else if (BlacklistEmail($email)) { echo '
Erreur : vous avez été blacklisté sur ce service
'; // add } elseif (isset($_POST['add'])) { if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE alias = '".$alias_full."'")->fetchColumn() != 0) { echo '
Erreur : cet email poubelle est déjà utilisé
'; } else { if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."' AND status > 0")->fetchColumn() != 0) { AjouterAlias(5, $alias_full, $email, $life, $comment); echo '
Votre email poubelle '.$alias_full.' > '.$email.' est maintenant actif
'; } else { $lastId=AjouterAlias(0, $alias_full, $email, $life, $comment); $message= "Confirmation de la création de votre redirection email poubelle : "; $message= $alias_full.' => '.$email."\n"; $message= "Cliquer sur le lien ci-dessous pour confirmer : \n"; $message.= "\t * ".urlGen('validemail',$lastId,$alias_full)."\n"; $message.= "\n"; $message.= "Pour supprimer cet email poubelle vous pouvez vous rendre sur le lien ci-dessou : \n"; $message.= "\t * ".urlGen('delete',$lastId,$alias_full)."\n"; $message.= "\n"; $message.= "Après confirmation, vous pourez suspendre temporairement cet email poubelle vous pouvez vous rendre sur le lien ci-dessou : \n"; $message.= "\t * ".urlGen('disable',$lastId,$alias_full)."\n"; SendEmail($email,'Confirmation alias '.$alias,$message); echo '
Votre email ('.$email.') nous étant inconnu, une confirmation vous a été envoyé par email.
'; } } // delete } else if (isset($_POST['del'])) { if ($id = $dbco->query("SELECT id FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."' AND alias = '".$alias_full."'")->fetchColumn()) { $message= "Confirmation de la création de votre redirection email poubelle : "; $message= $alias_full.' => '.$email."\n"; $message= "Cliquer sur le lien ci-dessous pour confirmer la suppression : \n"; $message.= "\t * ".urlGen('delete',$id,$alias_full)."\n\n"; $message.= "Sinon pour suspendre temporairement cet email poubelle vous pouvez vous rendre sur le lien ci-dessou : \n"; $message.= "\t * ".urlGen('disable',$id,$alias_full)."\n"; SendEmail($email,'Suppression de l\'alias '.$alias,$message); echo '
Un email de confirmation vient de vous être envoyé.
'; } else { echo '
Erreur : impossible de trouver cet email poubelle
'; } // disable } else if (isset($_POST['disable'])) { DisableAlias(null, $alias_full, $email); // enable } else if (isset($_POST['enable'])) { EnableAlias(null, $alias_full, $email); } // memory email if (isset($_POST['memory'])) { setcookie ("email", StripCleanToHtml($email), time() + 31536000); } else if (isset($_COOKIE['email'])) { unset($_COOKIE['email']); } } ////////////////// // Printing form ////////////////// ?>
id="input-email" size="24" border="0" onkeyup="printForm()" onchange="printForm()" /> /> Mémoriser
@'; } else { echo ''; } ?>

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

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