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
//////////////////
?>
Version = VERSION ?> - Créé par David Mercereau sous licence GNU GPL v3
Télécharger et utiliser ce script sur le site du projet emailPoubelle.php