Re-organisation
5
.gitignore
vendored
|
@ -1,2 +1,5 @@
|
||||||
/postfix
|
/postfix
|
||||||
/data
|
virtual
|
||||||
|
virtual.db
|
||||||
|
checkupdate
|
||||||
|
test*
|
||||||
|
|
|
@ -32,3 +32,8 @@ Configurer Postfix :
|
||||||
/usr/sbin/postmap /www/emailPoubelle/postfix/virtual
|
/usr/sbin/postmap /www/emailPoubelle/postfix/virtual
|
||||||
chown www-data /www/emailPoubelle/postfix/virtual
|
chown www-data /www/emailPoubelle/postfix/virtual
|
||||||
chown www-data /www/emailPoubelle/postfix/virtual.db
|
chown www-data /www/emailPoubelle/postfix/virtual.db
|
||||||
|
|
||||||
|
Ajouter dans le fichier /etc/alias le devnull
|
||||||
|
|
||||||
|
echo "devnull: /dev/null" >> /etc/aliases
|
||||||
|
newaliases
|
||||||
|
|
78
bin/migrate-0.3-1.0.php
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
#!/usr/bin/php
|
||||||
|
<?php
|
||||||
|
include('./conf.php');
|
||||||
|
|
||||||
|
// 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());
|
||||||
|
}
|
||||||
|
|
||||||
|
// postmap command
|
||||||
|
function UpdateVirtualDB() {
|
||||||
|
global $dbco;
|
||||||
|
try {
|
||||||
|
$selectcmd = $dbco->prepare("SELECT alias, email
|
||||||
|
FROM ".DBTABLEPREFIX."alias
|
||||||
|
WHERE status = 5
|
||||||
|
ORDER BY id ASC");
|
||||||
|
$selectcmd->execute();
|
||||||
|
} catch ( PDOException $e ) {
|
||||||
|
echo "DB error : ", $e->getMessage();
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
$file_content=null;
|
||||||
|
while($alias_db = $selectcmd->fetch()) {
|
||||||
|
$file_content .= $alias_db['alias'].' '.$alias_db['email']."\n";
|
||||||
|
}
|
||||||
|
$alias_file=fopen(FICHIERALIAS,'w');
|
||||||
|
fputs($alias_file, $file_content);
|
||||||
|
fclose($alias_file);
|
||||||
|
exec(BIN_POSTMAP.' '.FICHIERALIAS,$output,$return);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// add new alias
|
||||||
|
function AjouterAlias($status, $alias,$email, $life, $comment) {
|
||||||
|
global $dbco;
|
||||||
|
$dateCreat=date('Y-m-d H:i:s', 0);
|
||||||
|
$dateExpir=NULL;
|
||||||
|
try {
|
||||||
|
$insertcmd = $dbco->prepare("INSERT INTO ".DBTABLEPREFIX."alias (status, alias, email, dateCreat, dateExpir, comment)
|
||||||
|
VALUES (:status, :alias, :email, :dateCreat, :dateExpir, :comment)");
|
||||||
|
$insertcmd->bindParam('status', $status, PDO::PARAM_INT);
|
||||||
|
$insertcmd->bindParam('alias', $alias, PDO::PARAM_STR);
|
||||||
|
$insertcmd->bindParam('email', $email, PDO::PARAM_STR);
|
||||||
|
$insertcmd->bindParam('dateCreat', $dateCreat, PDO::PARAM_STR);
|
||||||
|
$insertcmd->bindParam('dateExpir', $dateExpir, PDO::PARAM_STR);
|
||||||
|
$insertcmd->bindParam('comment', $comment, PDO::PARAM_STR);
|
||||||
|
$insertcmd->execute();
|
||||||
|
} catch ( PDOException $e ) {
|
||||||
|
echo "DB error : ", $e->getMessage();
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
return $dbco->lastInsertId();
|
||||||
|
}
|
||||||
|
|
||||||
|
$handle = fopen(FICHIERALIAS, 'r');
|
||||||
|
while (!feof($handle)) {
|
||||||
|
$buffer = fgets($handle);
|
||||||
|
if ($buffer) {
|
||||||
|
$bufferExplode = explode(' ', $buffer);
|
||||||
|
if (!preg_match('/^(#|$|;)/', $buffer)) {
|
||||||
|
echo $bufferExplode[0].' -> '.$bufferExplode[1]."\n";
|
||||||
|
AjouterAlias(5, trim($bufferExplode[0]), trim($bufferExplode[1]), null, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fclose($handle);
|
||||||
|
|
||||||
|
UpdateVirtualDB();
|
||||||
|
|
||||||
|
?>
|
24
conf.php
|
@ -7,6 +7,15 @@
|
||||||
// Home : http://poubelle.zici.fr
|
// Home : http://poubelle.zici.fr
|
||||||
//-----------------------------------------------------------
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
|
// writable for script
|
||||||
|
define('DATA', '../var');
|
||||||
|
// include directory
|
||||||
|
define('INC', '../lib');
|
||||||
|
|
||||||
|
// include function
|
||||||
|
include_once(INC.'/ep_function.php');
|
||||||
|
include_once(INC.'/ep_admin.php');
|
||||||
|
|
||||||
define('DEBUG', true);
|
define('DEBUG', true);
|
||||||
|
|
||||||
// Domain email (separe with ;)
|
// Domain email (separe with ;)
|
||||||
|
@ -26,8 +35,7 @@ define('DBUSER', 'c1_demo');
|
||||||
define('DBPASS', 'sqdf2csd4rvn45548');
|
define('DBPASS', 'sqdf2csd4rvn45548');
|
||||||
define('DBTABLEPREFIX', 'ep_');
|
define('DBTABLEPREFIX', 'ep_');
|
||||||
|
|
||||||
// writable for script
|
|
||||||
define('DATA', './data');
|
|
||||||
|
|
||||||
// Fichier d'alias postfix
|
// Fichier d'alias postfix
|
||||||
define('FICHIERALIAS', DATA.'/virtual');
|
define('FICHIERALIAS', DATA.'/virtual');
|
||||||
|
@ -48,12 +56,13 @@ define('URLREWRITE_FIN', false);
|
||||||
define('EMAILTAGSUJET', '[EmailPoubelle]');
|
define('EMAILTAGSUJET', '[EmailPoubelle]');
|
||||||
// From de l'email
|
// From de l'email
|
||||||
define('EMAILFROM', '"NO REPLAY emailPoubelle" <emailpoubelle@exemple.com>');
|
define('EMAILFROM', '"NO REPLAY emailPoubelle" <emailpoubelle@exemple.com>');
|
||||||
|
define('EMAILEND', 'emailPoubelle.zici.fr');
|
||||||
|
|
||||||
// Alisas interdit : (regex ligne par ligne) - commenter pour désactiver
|
// Alisas interdit : (regex ligne par ligne) - commenter pour désactiver
|
||||||
define('ALIASDENY', './aliasdeny.txt');
|
define('ALIASDENY', DATA.'/aliasdeny.txt');
|
||||||
|
|
||||||
// Blackliste d'email : (regex ligne par ligne) - commenter pour désactiver
|
// Blackliste d'email : (regex ligne par ligne) - commenter pour désactiver
|
||||||
define('BLACKLIST', './blacklist.txt');
|
define('BLACKLIST', DATA.'/blacklist.txt');
|
||||||
|
|
||||||
// Depend pear Net/DNS2
|
// Depend pear Net/DNS2
|
||||||
define('CHECKMX', false);
|
define('CHECKMX', false);
|
||||||
|
@ -64,6 +73,11 @@ if (CHECKMX) {
|
||||||
define('NS2', '8.8.8.8');
|
define('NS2', '8.8.8.8');
|
||||||
}
|
}
|
||||||
|
|
||||||
define('CHECKUPDATE', true);
|
// check update :
|
||||||
|
// enable : in seconds
|
||||||
|
// disable : false
|
||||||
|
define('CHECKUPDATE', 300);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -10,18 +10,21 @@
|
||||||
// Depend : Postifx (postmap command) php-pdo
|
// Depend : Postifx (postmap command) php-pdo
|
||||||
//-----------------------------------------------------------
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
include_once('./conf.php');
|
// @todo
|
||||||
define('VERSION', '1.0');
|
// form ergonomie
|
||||||
|
// sqlite
|
||||||
|
// disable time
|
||||||
|
|
||||||
//////////////////
|
//////////////////
|
||||||
// Init & check
|
// Init & check
|
||||||
//////////////////
|
//////////////////
|
||||||
|
|
||||||
|
define('VERSION', '1.0');
|
||||||
|
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
error_reporting(E_ALL);
|
error_reporting(E_ALL);
|
||||||
ini_set('display_errors', 'On');
|
ini_set('display_errors', 'On');
|
||||||
echo '<div class="highlight-2">Debug activé</div>';
|
echo '<div class="highlight-2">Debug activé <br />'.print_r($_REQUEST).'</div>';
|
||||||
print_r($_REQUEST);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined(DOMAIN)) {
|
if (defined(DOMAIN)) {
|
||||||
|
@ -73,198 +76,55 @@ $create = $dbco->query("CREATE TABLE IF NOT EXISTS ".DBTABLEPREFIX."alias (
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////
|
|
||||||
// Function
|
|
||||||
//////////////////
|
|
||||||
|
|
||||||
// Verification des emails
|
|
||||||
function VerifMXemail($email) {
|
|
||||||
if (CHECKMX) {
|
|
||||||
$domaine=explode('@', $email);
|
|
||||||
$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;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// postmap command
|
|
||||||
function UpdateVirtualDB() {
|
|
||||||
// @todo : créer le ficheir à partir de la base
|
|
||||||
//echo exec(BIN_POSTMAP.' '.FICHIERALIAS,$output,$return);
|
|
||||||
}
|
|
||||||
|
|
||||||
// add new alias
|
|
||||||
function AjouterAlias($status, $alias,$email, $life, $comment) {
|
|
||||||
global $dbco;
|
|
||||||
$dateCreat=date('Y-m-d H:i:s');
|
|
||||||
if ($life == 0) {
|
|
||||||
$dateExpir=NULL;
|
|
||||||
} else {
|
|
||||||
$dateExpir=date('Y-m-d H:i:s', time()+$life);
|
|
||||||
}
|
|
||||||
$insertcmd = $dbco->prepare("INSERT INTO ".DBTABLEPREFIX."alias (status, alias, email, dateCreat, dateExpir, comment)
|
|
||||||
VALUES ($status, '$alias', '$email', '$dateCreat', '$dateExpir', '$comment')");
|
|
||||||
$insertcmd->execute();
|
|
||||||
if (!$insertcmd) {
|
|
||||||
echo '<div class="highlight-1">Erreur pendant l\'ajout dans la base. Merci de contacter l\'administrateur ';
|
|
||||||
if (DEBUG) {
|
|
||||||
print_r($dbco->errorInfo());
|
|
||||||
}
|
|
||||||
echo '</div>';
|
|
||||||
} else {
|
|
||||||
return $dbco->lastInsertId();
|
|
||||||
}
|
|
||||||
// @todo : a faire
|
|
||||||
UpdateVirtualDB();
|
|
||||||
}
|
|
||||||
|
|
||||||
// delete new alias
|
|
||||||
function SupprimerAlias($alias,$email) {
|
|
||||||
// @todo : a faire
|
|
||||||
UpdateVirtualDB();
|
|
||||||
}
|
|
||||||
|
|
||||||
// update alias status
|
|
||||||
function UpdateStatusAlias($id, $alias_full, $status) {
|
|
||||||
global $dbco;
|
|
||||||
try {
|
|
||||||
$updatecmd = $dbco->prepare("UPDATE ".DBTABLEPREFIX."alias SET status = $status WHERE id = $id AND alias = '$alias_full'");
|
|
||||||
$updatecmd->execute();
|
|
||||||
} catch ( PDOException $e ) {
|
|
||||||
echo "DB error : ", $e->getMessage();
|
|
||||||
die();
|
|
||||||
}
|
|
||||||
UpdateVirtualDB();
|
|
||||||
}
|
|
||||||
|
|
||||||
// parse file for blacklist and aliasdeny
|
|
||||||
function parseFileRegex($file, $chaine) {
|
|
||||||
$return=false;
|
|
||||||
$handle = fopen($file, 'r');
|
|
||||||
while (!feof($handle)) {
|
|
||||||
$buffer = fgets($handle);
|
|
||||||
$buffer = str_replace("\n", "", $buffer);
|
|
||||||
if ($buffer) {
|
|
||||||
if (!preg_match('/^(#|$|;)/', $buffer) && preg_match($buffer, $chaine)) {
|
|
||||||
$return=true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose($handle);
|
|
||||||
return $return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check blacklistemail
|
|
||||||
function BlacklistEmail($email) {
|
|
||||||
if (defined('BLACKLIST')) {
|
|
||||||
return parseFileRegex(BLACKLIST, $email);
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// check aliasdeny
|
|
||||||
function AliasDeny($alias) {
|
|
||||||
if (defined('ALIASDENY')) {
|
|
||||||
return parseFileRegex(ALIASDENY, $alias);
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//// A FAIRE :
|
|
||||||
|
|
||||||
// list alias
|
|
||||||
function ListeAlias($email) {
|
|
||||||
// @todo : a faire
|
|
||||||
return ($alias);
|
|
||||||
}
|
|
||||||
|
|
||||||
function SendEmail($recipient, $sujet, $message) {
|
|
||||||
$header = 'From: '.EMAILFROM.'\n';
|
|
||||||
$header.= 'MIME-Version: 1.0\n';
|
|
||||||
if (preg_match('#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#', $recipient)) {
|
|
||||||
$header = str_replace('\n', '\r\n', $header);
|
|
||||||
$message = str_replace('\n', '\r\n', $header);
|
|
||||||
}
|
|
||||||
mail($recipient,EMAILTAGSUJET.' '.$sujet,$message,$header);
|
|
||||||
}
|
|
||||||
|
|
||||||
function urlGen($act,$id,$alias_full) {
|
|
||||||
$idUrl=base64_encode($id.';'.$alias_full);
|
|
||||||
if (URLREWRITE_DEBUT && URLREWRITE_FIN) {
|
|
||||||
return URLREWRITE_DEBUT.$idUrl.URLREWRITE_FIN;
|
|
||||||
} else {
|
|
||||||
return URLPAGE."?act=".$act."&value=".$idUrl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////
|
|
||||||
// Admin function
|
|
||||||
//////////////////
|
|
||||||
|
|
||||||
function CheckUpdate() {
|
|
||||||
//$doc = file_get_contents('http://poubelle.zici.fr/ep_checkupdate');
|
|
||||||
//echo $doc;
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////
|
//////////////////
|
||||||
// Start program
|
// Start program
|
||||||
//////////////////
|
//////////////////
|
||||||
|
|
||||||
// Valid email process
|
// get process act
|
||||||
if (isset($_GET['act']) && $_GET['act'] == 'validemail' && isset($_GET['value'])) {
|
$action = isset($_GET['act']) ? $_GET['act'] : '';
|
||||||
$idUrl = explode(';', base64_decode($_GET['value']));
|
switch ($action) {
|
||||||
echo $dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE id = '".$idUrl[0]."' AND status = 0")->fetchColumn();
|
case "validemail" :
|
||||||
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE id = '".$idUrl[0]."' AND status = 0")->fetchColumn() != 0) {
|
$get_value = urlUnGen($_GET['value']);
|
||||||
UpdateStatusAlias($idUrl[0], $idUrl[1], 5);
|
echo $dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE id = '".$get_value['id']."' AND status = 0")->fetchColumn();
|
||||||
echo '<div class="highlight-3">Votre email poubelle <b>'.$idUrl[1].'</b> est maintenant actif</div>';
|
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE id = '".$get_value['id']."' AND status = 0")->fetchColumn() != 0) {
|
||||||
} else {
|
UpdateStatusAlias($get_value['id'], $get_value['alias_full'], 5);
|
||||||
echo '<div class="highlight-1">Erreur : ID introuvable ou déjà validé</div>';
|
echo '<div class="highlight-3">Votre email poubelle <b>'.$get_value['alias_full'].'</b> est maintenant actif</div>';
|
||||||
}
|
} else {
|
||||||
} elseif (isset($_GET['dis'])) {
|
echo '<div class="highlight-1">Erreur : ID introuvable ou déjà validé</div>';
|
||||||
// @todo fa faire
|
}
|
||||||
} elseif (isset($_GET['del'])) {
|
break;
|
||||||
// @todo fa faire
|
case "disable" :
|
||||||
// list email process
|
$get_value = urlUnGen($_GET['value']);
|
||||||
} elseif (isset($_GET['list'])) {
|
DisableAlias($get_value['id'], $get_value['alias_full'], null);
|
||||||
$email=strtolower($_REQUEST['email']);
|
break;
|
||||||
if (! filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
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;
|
||||||
|
}
|
||||||
|
// Form
|
||||||
|
if (isset($_POST['list'])) {
|
||||||
|
$email=strtolower($_POST['email']);
|
||||||
|
if (! filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||||
echo '<div class="highlight-1">Erreur : Adresse email incorrect</div>';
|
echo '<div class="highlight-1">Erreur : Adresse email incorrect</div>';
|
||||||
} else if (! VerifMXemail($email)) {
|
} else if (! VerifMXemail($email)) {
|
||||||
echo '<div class="highlight-1">Erreur : Adresse email incorrect (2)</div>';
|
echo '<div class="highlight-1">Erreur : Adresse email incorrect (2)</div>';
|
||||||
} else if (!preg_match('#\n[a-z0-9]+@'.DOMAIN.' '.$email.'#', file_get_contents(FICHIERALIAS))) {
|
} else if (ListeAlias($email)) {
|
||||||
echo '<div class="highlight-1">Vous n\'avez encore aucun alias d\'actif</div>';
|
echo '<div class="highlight-3">Un email vient de vous être envoyé</div>';
|
||||||
} else {
|
} else {
|
||||||
$header = 'From: '.EMAIL_FROM.'\n';
|
echo '<div class="highlight-1">Erreur : aucun email actif connu</div>';
|
||||||
$header.= 'MIME-Version: 1.0\n';
|
}
|
||||||
$message= 'Liste de vos redirections poubelles : \n';
|
} else if (isset($_POST['email']) && isset($_POST['alias'])) {
|
||||||
foreach (ListeAlias($email) as $alias) {
|
|
||||||
$message.=' * '.$alias.'\n';
|
|
||||||
}
|
|
||||||
$message.= 'Pour supprimer un email poubelle vous pouvez vous rendre sur le lien ci-dessou : \n';
|
|
||||||
$message.= "\t * ".URLPAGE.'\n';
|
|
||||||
SendEmail($email,'Liste des alias',$message);
|
|
||||||
echo '<div class="highlight-3">Un email vous a été adressé avec la liste de vos emails poubelles actifs.</div>';
|
|
||||||
}
|
|
||||||
// Form
|
|
||||||
} elseif (isset($_POST['email']) && isset($_POST['alias'])) {
|
|
||||||
$alias=strtolower($_POST['alias']);
|
$alias=strtolower($_POST['alias']);
|
||||||
$email=strtolower($_POST['email']);
|
$email=strtolower($_POST['email']);
|
||||||
$domain=$_POST['domain'];
|
$domain=$_POST['domain'];
|
||||||
$life=$_POST['life'];
|
$life=$_POST['life'];
|
||||||
$comment=$_POST['comment'];
|
$comment=$_POST['comment'];
|
||||||
|
$alias_full=$alias.'@'.$domain;
|
||||||
// Check form
|
// Check form
|
||||||
if (! filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
if (! filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||||
echo '<div class="highlight-1">Erreur : Adresse email incorrect</div>';
|
echo '<div class="highlight-1">Erreur : Adresse email incorrect</div>';
|
||||||
|
@ -276,53 +136,54 @@ if (isset($_GET['act']) && $_GET['act'] == 'validemail' && isset($_GET['value'])
|
||||||
echo '<div class="highlight-1">Erreur : ce domain n\'est pas pris en charge</div>';
|
echo '<div class="highlight-1">Erreur : ce domain n\'est pas pris en charge</div>';
|
||||||
} else if (AliasDeny($alias)) {
|
} else if (AliasDeny($alias)) {
|
||||||
echo '<div class="highlight-1">Erreur : email poubelle interdit</div>';
|
echo '<div class="highlight-1">Erreur : email poubelle interdit</div>';
|
||||||
} else if (BlacklistEmail($email)) {
|
} else if (BlacklistEmail($email)) {
|
||||||
echo '<div class="highlight-1">Erreur : vous avez été blacklisté sur ce service</div>';
|
echo '<div class="highlight-1">Erreur : vous avez été blacklisté sur ce service</div>';
|
||||||
// add
|
// add
|
||||||
} elseif (isset($_POST['add'])) {
|
} elseif (isset($_POST['add'])) {
|
||||||
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE alias = '".$alias.'@'.$domain."'")->fetchColumn() != 0) {
|
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE alias = '".$alias_full."'")->fetchColumn() != 0) {
|
||||||
echo '<div class="highlight-1">Erreur : cet email poubelle est déjà utilisé</div>';
|
echo '<div class="highlight-1">Erreur : cet email poubelle est déjà utilisé</div>';
|
||||||
} else {
|
} else {
|
||||||
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."' AND status = 5")->fetchColumn() != 0) {
|
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."' AND status > 0")->fetchColumn() != 0) {
|
||||||
AjouterAlias(5, $alias.'@'.$domain, $email, $life, $comment);
|
AjouterAlias(5, $alias_full, $email, $life, $comment);
|
||||||
echo '<div class="highlight-3">Votre email poubelle <b>'.$alias.'@'.$domain.' > '.$email.'</b> est maintenant actif</div>';
|
echo '<div class="highlight-3">Votre email poubelle <b>'.$alias_full.' > '.$email.'</b> est maintenant actif</div>';
|
||||||
} else {
|
} else {
|
||||||
$lastId=AjouterAlias(0, $alias.'@'.$domain, $email, $life, $comment);
|
$lastId=AjouterAlias(0, $alias_full, $email, $life, $comment);
|
||||||
$message= "Confirmation de la création de votre redirection email poubelle : ";
|
$message= "Confirmation de la création de votre redirection email poubelle : ";
|
||||||
$message= $alias.'@'.$domain.' => '.$email."\n";
|
$message= $alias_full.' => '.$email."\n";
|
||||||
$message= "Cliquer sur le lien ci-dessous pour confirmer : \n";
|
$message= "Cliquer sur le lien ci-dessous pour confirmer : \n";
|
||||||
$message.= "\t * ".urlGen('validemail',$lastId,$alias.'@'.$domain)."\n";
|
$message.= "\t * ".urlGen('validemail',$lastId,$alias_full)."\n";
|
||||||
$message.= "Pour suspendre temporairement cet email poubelle vous pouvez vous rendre sur le lien ci-dessou : \n";
|
|
||||||
$message.= "\t * ".urlGen('dis',$lastId,$alias.'@'.$domain)."\n";
|
|
||||||
$message.= "Pour supprimer cet email poubelle vous pouvez vous rendre sur le lien ci-dessou : \n";
|
$message.= "Pour supprimer cet email poubelle vous pouvez vous rendre sur le lien ci-dessou : \n";
|
||||||
$message.= "\t * ".urlGen('del',$lastId,$alias.'@'.$domain)."\n";
|
$message.= "\t * ".urlGen('del',$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);
|
SendEmail($email,'Confirmation alias '.$alias,$message);
|
||||||
echo '<div class="highlight-2">Votre email ('.$email.') nous étant inconnu, une confirmation vous a été envoyé par email.</div>';
|
echo '<div class="highlight-2">Votre email ('.$email.') nous étant inconnu, une confirmation vous a été envoyé par email.</div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// delete
|
// delete
|
||||||
} else if (isset($_POST['del'])) {
|
} else if (isset($_POST['del'])) {
|
||||||
if ($id = $dbco->query("SELECT id FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."' AND alias = '".$alias.'@'.$domain."'")->fetchColumn()) {
|
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= "Confirmation de la création de votre redirection email poubelle : ";
|
||||||
$message= $alias.'@'.$domain.' => '.$email."\n";
|
$message= $alias_full.' => '.$email."\n";
|
||||||
$message= "Cliquer sur le lien ci-dessous pour confirmer la suppression : \n";
|
$message= "Cliquer sur le lien ci-dessous pour confirmer la suppression : \n";
|
||||||
$message.= "\t * ".urlGen('del',$id,$alias.'@'.$domain)."\n\n";
|
$message.= "\t * ".urlGen('del',$id,$alias_full)."\n\n";
|
||||||
$message.= "Sinon pour suspendre temporairement cet email poubelle vous pouvez vous rendre sur le lien ci-dessou : \n";
|
$message.= "Sinon pour suspendre temporairement cet email poubelle vous pouvez vous rendre sur le lien ci-dessou : \n";
|
||||||
$message.= "\t * ".urlGen('dis',$id,$alias.'@'.$domain)."\n";
|
$message.= "\t * ".urlGen('disable',$id,$alias_full)."\n";
|
||||||
SendEmail($email,'Suppression de l\'alias '.$alias,$message);
|
SendEmail($email,'Suppression de l\'alias '.$alias,$message);
|
||||||
echo '<div class="highlight-2">Un email de confirmation vient de vous être envoyé.</div>';
|
echo '<div class="highlight-2">Un email de confirmation vient de vous être envoyé.</div>';
|
||||||
} else {
|
} else {
|
||||||
echo '<div class="highlight-1">Erreur : impossible de trouver cet email poubelle</div>';
|
echo '<div class="highlight-1">Erreur : impossible de trouver cet email poubelle</div>';
|
||||||
}
|
}
|
||||||
// disable
|
// disable
|
||||||
} else if (isset($_POST['dis'])) {
|
} else if (isset($_POST['disable'])) {
|
||||||
// @todo a faire
|
DisableAlias(null, $alias_full, $email);
|
||||||
if ($return=DisableAlias($alias.'@'.$domain,$email)) {
|
// enable
|
||||||
echo '<div class="highlight-3">Votre email poubelle <b>'.$alias.'@'.$domain.'</b> est maintenant suspendu !</div>';
|
} else if (isset($_POST['enable'])) {
|
||||||
} else {
|
EnableAlias(null, $alias_full, $email);
|
||||||
echo '<div class="highlight-1">Erreur : '.$return.'</div>';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// memory email
|
||||||
if (isset($_POST['memory'])) {
|
if (isset($_POST['memory'])) {
|
||||||
setcookie ("email", $email, time() + 31536000);
|
setcookie ("email", $email, time() + 31536000);
|
||||||
} else if (isset($_COOKIE['email'])) {
|
} else if (isset($_COOKIE['email'])) {
|
||||||
|
@ -376,10 +237,12 @@ $dbco = null;
|
||||||
</div>
|
</div>
|
||||||
<div id="form-submit">
|
<div id="form-submit">
|
||||||
<input class="button" type="submit" id="button-add" name="add" value="Activer" /> -
|
<input class="button" type="submit" id="button-add" name="add" value="Activer" /> -
|
||||||
<input class="button" type="submit" id="button-dis" name="dis" value="Susprendre" /> -
|
<input class="button" type="submit" id="button-disable" name="disable" value="Susprendre" /> -
|
||||||
|
<input class="button" type="submit" id="button-enable" name="enable" value="Reprendre" /> -
|
||||||
<input class="button" type="submit" id="button-del" name="del" value="Supprimer" />
|
<input class="button" type="submit" id="button-del" name="del" value="Supprimer" />
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function validateEmail(email) {
|
function validateEmail(email) {
|
||||||
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
||||||
|
@ -393,7 +256,7 @@ $dbco = null;
|
||||||
document.getElementById('input-domain').disabled = false;
|
document.getElementById('input-domain').disabled = false;
|
||||||
document.getElementById('button-list').disabled = false;
|
document.getElementById('button-list').disabled = false;
|
||||||
document.getElementById('button-add').disabled = false;
|
document.getElementById('button-add').disabled = false;
|
||||||
document.getElementById('button-dis').disabled = false;
|
document.getElementById('button-disable').disabled = false;
|
||||||
document.getElementById('button-del').disabled = false;
|
document.getElementById('button-del').disabled = false;
|
||||||
document.getElementById('input-life').disabled = false;
|
document.getElementById('input-life').disabled = false;
|
||||||
document.getElementById('form-comment').style.display = "block" ;
|
document.getElementById('form-comment').style.display = "block" ;
|
||||||
|
@ -405,7 +268,7 @@ $dbco = null;
|
||||||
document.getElementById('input-life').disabled = false;
|
document.getElementById('input-life').disabled = false;
|
||||||
document.getElementById('form-comment').style.display = "display" ;
|
document.getElementById('form-comment').style.display = "display" ;
|
||||||
document.getElementById('button-add').disabled = true;
|
document.getElementById('button-add').disabled = true;
|
||||||
document.getElementById('button-dis').disabled = true;
|
document.getElementById('button-disable').disabled = true;
|
||||||
document.getElementById('button-del').disabled = true;
|
document.getElementById('button-del').disabled = true;
|
||||||
document.getElementById('input-life').disabled = true;
|
document.getElementById('input-life').disabled = true;
|
||||||
document.getElementById('form-comment').style.display = "none" ;
|
document.getElementById('form-comment').style.display = "none" ;
|
||||||
|
@ -415,7 +278,7 @@ $dbco = null;
|
||||||
document.getElementById('input-domain').disabled = true;
|
document.getElementById('input-domain').disabled = true;
|
||||||
document.getElementById('button-list').disabled = true;
|
document.getElementById('button-list').disabled = true;
|
||||||
document.getElementById('button-add').disabled = true;
|
document.getElementById('button-add').disabled = true;
|
||||||
document.getElementById('button-dis').disabled = true;
|
document.getElementById('button-disable').disabled = true;
|
||||||
document.getElementById('button-del').disabled = true;
|
document.getElementById('button-del').disabled = true;
|
||||||
document.getElementById('input-life').disabled = true;
|
document.getElementById('input-life').disabled = true;
|
||||||
document.getElementById('form-comment').style.display = "none" ;
|
document.getElementById('form-comment').style.display = "none" ;
|
||||||
|
@ -425,3 +288,5 @@ $dbco = null;
|
||||||
</script>
|
</script>
|
||||||
<p>Version <?= VERSION ?> - Créé par David Mercereau sous licence GNU GPL v3</p>
|
<p>Version <?= VERSION ?> - Créé par David Mercereau sous licence GNU GPL v3</p>
|
||||||
<p>Télécharger et utiliser ce script sur le site du projet <a target="_blank" href="http://forge.zici.fr/p/emailpoubelle-php/">emailPoubelle.php</a></p>
|
<p>Télécharger et utiliser ce script sur le site du projet <a target="_blank" href="http://forge.zici.fr/p/emailpoubelle-php/">emailPoubelle.php</a></p>
|
||||||
|
|
||||||
|
<?php echo '<p>Upgrade note : '.CheckUpdate().'</p>'; ?>
|
||||||
|
|
2
lib/ep_admin.php
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
<?php
|
||||||
|
?>
|
302
lib/ep_function.php
Normal file
|
@ -0,0 +1,302 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
//////////////////
|
||||||
|
// Function
|
||||||
|
//////////////////
|
||||||
|
|
||||||
|
// Verification des emails
|
||||||
|
function VerifMXemail($email) {
|
||||||
|
if (CHECKMX) {
|
||||||
|
$domaine=explode('@', $email);
|
||||||
|
$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;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// postmap command
|
||||||
|
function UpdateVirtualDB() {
|
||||||
|
global $dbco;
|
||||||
|
try {
|
||||||
|
$selectcmd = $dbco->prepare("SELECT status, alias, email
|
||||||
|
FROM ".DBTABLEPREFIX."alias
|
||||||
|
WHERE status > 0
|
||||||
|
ORDER BY id ASC");
|
||||||
|
$selectcmd->execute();
|
||||||
|
} catch ( PDOException $e ) {
|
||||||
|
echo "DB error : ", $e->getMessage();
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
$file_content=null;
|
||||||
|
while($alias_db = $selectcmd->fetch()) {
|
||||||
|
if ($alias_db['status'] == 5) {
|
||||||
|
$file_content .= $alias_db['alias'].' '.$alias_db['email']."\n";
|
||||||
|
} else if ($alias_db['status'] == 3) {
|
||||||
|
$file_content .= $alias_db['alias']." devnull\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$alias_file=fopen(FICHIERALIAS,'w');
|
||||||
|
fputs($alias_file, $file_content);
|
||||||
|
fclose($alias_file);
|
||||||
|
exec(BIN_POSTMAP.' '.FICHIERALIAS,$output,$return);
|
||||||
|
}
|
||||||
|
|
||||||
|
// add new alias
|
||||||
|
function AjouterAlias($status, $alias,$email, $life, $comment) {
|
||||||
|
global $dbco;
|
||||||
|
$dateCreat=date('Y-m-d H:i:s');
|
||||||
|
if ($life == 0) {
|
||||||
|
$dateExpir=NULL;
|
||||||
|
} else {
|
||||||
|
$dateExpir=date('Y-m-d H:i:s', time()+$life);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
$insertcmd = $dbco->prepare("INSERT INTO ".DBTABLEPREFIX."alias (status, alias, email, dateCreat, dateExpir, comment)
|
||||||
|
VALUES (:status, :alias, :email, :dateCreat, :dateExpir, :comment)");
|
||||||
|
$insertcmd->bindParam('status', $status, PDO::PARAM_INT);
|
||||||
|
$insertcmd->bindParam('alias', $alias, PDO::PARAM_STR);
|
||||||
|
$insertcmd->bindParam('email', $email, PDO::PARAM_STR);
|
||||||
|
$insertcmd->bindParam('dateCreat', $dateCreat, PDO::PARAM_STR);
|
||||||
|
$insertcmd->bindParam('dateExpir', $dateExpir, PDO::PARAM_STR);
|
||||||
|
$insertcmd->bindParam('comment', $comment, PDO::PARAM_STR);
|
||||||
|
$insertcmd->execute();
|
||||||
|
} catch ( PDOException $e ) {
|
||||||
|
echo "DB error : ", $e->getMessage();
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
UpdateVirtualDB();
|
||||||
|
return $dbco->lastInsertId();
|
||||||
|
}
|
||||||
|
|
||||||
|
// delete alias
|
||||||
|
function DeleteAlias($id, $alias_full) {
|
||||||
|
global $dbco;
|
||||||
|
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE alias = '".$alias_full."' AND id = ".$id)->fetchColumn() != 0) {
|
||||||
|
try {
|
||||||
|
$deletecmd = $dbco->prepare("DELETE FROM ".DBTABLEPREFIX."alias WHERE id = :id AND alias = :alias_full");
|
||||||
|
$deletecmd->bindParam('id', $id, PDO::PARAM_INT);
|
||||||
|
$deletecmd->bindParam('alias_full', $alias_full, PDO::PARAM_STR);
|
||||||
|
$deletecmd->execute();
|
||||||
|
echo '<div class="highlight-3">l\'email <b>'.$alias_full.'</b> a bien été supprimé</div>';
|
||||||
|
} catch ( PDOException $e ) {
|
||||||
|
echo "DB error : ", $e->getMessage();
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo '<div class="highlight-1">Erreur : email poubelle inconnu</div>';
|
||||||
|
}
|
||||||
|
UpdateVirtualDB();
|
||||||
|
}
|
||||||
|
|
||||||
|
// enable alias
|
||||||
|
function EnableAlias($id, $alias_full, $email) {
|
||||||
|
global $dbco;
|
||||||
|
if ($id == null) {
|
||||||
|
$selectcmd = $dbco->prepare("SELECT id,status FROM ".DBTABLEPREFIX."alias WHERE email = :email AND alias = :alias_full");
|
||||||
|
$selectcmd->bindParam('email', $email, PDO::PARAM_STR);
|
||||||
|
} else {
|
||||||
|
$selectcmd = $dbco->prepare("SELECT id,status FROM ".DBTABLEPREFIX."alias WHERE id = :id AND alias = :alias_full");
|
||||||
|
$selectcmd->bindParam('id', $id, PDO::PARAM_INT);
|
||||||
|
}
|
||||||
|
$selectcmd->bindParam('alias_full', $alias_full, PDO::PARAM_STR);
|
||||||
|
$selectcmd->execute();
|
||||||
|
$alias_fetch = $selectcmd->fetch();
|
||||||
|
if (! $alias_fetch) {
|
||||||
|
echo '<div class="highlight-1">Erreur : impossible de trouver cet email poubelle</div>';
|
||||||
|
} else if ($alias_fetch['status'] == 3) {
|
||||||
|
UpdateStatusAlias($alias_fetch['id'], $alias_full, 5);
|
||||||
|
echo '<div class="highlight-3">La réception sur <b>'.$alias_full.'</b> est de nouveau active.</div>';
|
||||||
|
} else if ($alias_fetch['status'] == 5) {
|
||||||
|
echo '<div class="highlight-2">La réception sur <b>'.$alias_full.'</b> est déjà active.</div>';
|
||||||
|
} else if ($alias_fetch['status'] == 0) {
|
||||||
|
echo '<div class="highlight-1">La réception sur <b>'.$alias_full.'</b n\'à pas été confirmé par email.</div>';
|
||||||
|
} else {
|
||||||
|
echo '<div class="highlight-1">Erreur : status inconnu</div>';
|
||||||
|
}
|
||||||
|
UpdateVirtualDB();
|
||||||
|
}
|
||||||
|
|
||||||
|
// disable alias
|
||||||
|
function DisableAlias($id, $alias_full, $email) {
|
||||||
|
global $dbco;
|
||||||
|
if ($id == null) {
|
||||||
|
$selectcmd = $dbco->prepare("SELECT id,status FROM ".DBTABLEPREFIX."alias WHERE email = :email AND alias = :alias_full");
|
||||||
|
$selectcmd->bindParam('email', $email, PDO::PARAM_STR);
|
||||||
|
} else {
|
||||||
|
$selectcmd = $dbco->prepare("SELECT id,status FROM ".DBTABLEPREFIX."alias WHERE id = :id AND alias = :alias_full");
|
||||||
|
$selectcmd->bindParam('id', $id, PDO::PARAM_INT);
|
||||||
|
}
|
||||||
|
$selectcmd->bindParam('alias_full', $alias_full, PDO::PARAM_STR);
|
||||||
|
$selectcmd->execute();
|
||||||
|
$alias_fetch = $selectcmd->fetch();
|
||||||
|
if (! $alias_fetch) {
|
||||||
|
echo '<div class="highlight-1">Erreur : impossible de trouver cet email poubelle</div>';
|
||||||
|
} else if ($alias_fetch['status'] == 5) {
|
||||||
|
UpdateStatusAlias($alias_fetch['id'], $alias_full, 3);
|
||||||
|
echo '<div class="highlight-3">La réception sur <b>'.$alias_full.'</b> est maintenant suspendu.</div>';
|
||||||
|
} else if ($alias_fetch['status'] == 3) {
|
||||||
|
echo '<div class="highlight-2">La réception sur <b>'.$alias_full.'</b> est déjà suspendu.</div>';
|
||||||
|
} else if ($alias_fetch['status'] == 0) {
|
||||||
|
echo '<div class="highlight-1">La réception sur <b>'.$alias_full.'</b> ne peut être suspendu car elle n\'a pas encore été activé.</div>';
|
||||||
|
} else {
|
||||||
|
echo '<div class="highlight-1">Erreur : status inconnu</div>';
|
||||||
|
}
|
||||||
|
UpdateVirtualDB();
|
||||||
|
}
|
||||||
|
|
||||||
|
// update alias status
|
||||||
|
function UpdateStatusAlias($id, $alias_full, $status) {
|
||||||
|
global $dbco;
|
||||||
|
try {
|
||||||
|
$updatecmd = $dbco->prepare("UPDATE ".DBTABLEPREFIX."alias SET status = $status WHERE id = :id AND alias = :alias_full");
|
||||||
|
$updatecmd->bindParam('id', $id, PDO::PARAM_INT);
|
||||||
|
$updatecmd->bindParam('alias_full', $alias_full, PDO::PARAM_STR);
|
||||||
|
$updatecmd->execute();
|
||||||
|
} catch ( PDOException $e ) {
|
||||||
|
echo "DB error : ", $e->getMessage();
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
UpdateVirtualDB();
|
||||||
|
}
|
||||||
|
|
||||||
|
// parse file for blacklist and aliasdeny
|
||||||
|
function parseFileRegex($file, $chaine) {
|
||||||
|
$return=false;
|
||||||
|
$handle = fopen($file, 'r');
|
||||||
|
while (!feof($handle)) {
|
||||||
|
$buffer = fgets($handle);
|
||||||
|
$buffer = str_replace("\n", "", $buffer);
|
||||||
|
if ($buffer) {
|
||||||
|
if (!preg_match('/^(#|$|;)/', $buffer) && preg_match($buffer, $chaine)) {
|
||||||
|
$return=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fclose($handle);
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check blacklistemail
|
||||||
|
function BlacklistEmail($email) {
|
||||||
|
if (defined('BLACKLIST')) {
|
||||||
|
return parseFileRegex(BLACKLIST, $email);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// check aliasdeny
|
||||||
|
function AliasDeny($alias) {
|
||||||
|
if (defined('ALIASDENY')) {
|
||||||
|
return parseFileRegex(ALIASDENY, $alias);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// list alias
|
||||||
|
function ListeAlias($email) {
|
||||||
|
global $dbco;
|
||||||
|
try {
|
||||||
|
$selectcmd = $dbco->prepare("SELECT id, status, alias, dateCreat, dateExpir, comment
|
||||||
|
FROM ".DBTABLEPREFIX."alias
|
||||||
|
WHERE email = :email AND status > 0
|
||||||
|
ORDER BY status DESC");
|
||||||
|
$selectcmd->bindParam('email', $email, PDO::PARAM_STR);
|
||||||
|
$selectcmd->execute();
|
||||||
|
} catch ( PDOException $e ) {
|
||||||
|
echo "DB error : ", $e->getMessage();
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
$nb_alias=0;
|
||||||
|
$nb_alias_disable=0;
|
||||||
|
$message= "## Liste de vos redirections poubelles active : \n\n";
|
||||||
|
while($alias_db = $selectcmd->fetch()) {
|
||||||
|
if ($alias_db['status'] == 3 && $nb_alias != 0) {
|
||||||
|
$message.= "## Liste de vos redirections poubelles désactivé : \n\n";
|
||||||
|
}
|
||||||
|
$message.=" * ".$alias_db['alias']." Créé le ".$alias_db['dateCreat'];
|
||||||
|
if ($alias_db['dateExpir']) {
|
||||||
|
$message.=" et expire le ".$alias_db['dateExpir'];
|
||||||
|
}
|
||||||
|
$message.="\n";
|
||||||
|
if ($alias_db['comment']) {
|
||||||
|
$message.="\tCommentaire : ".$alias_db['comment']."\n";
|
||||||
|
}
|
||||||
|
if ($alias_db['status'] == 5) {
|
||||||
|
$message.="\tDésactiver : ".urlGen('disable',$alias_db['id'],$alias_db['alias'])."\n";
|
||||||
|
$nb_alias++;
|
||||||
|
} else {
|
||||||
|
$message.="\tActiver : ".urlGen('enable',$alias_db['id'],$alias_db['alias'])."\n";
|
||||||
|
$nb_alias++;
|
||||||
|
}
|
||||||
|
$message.="\tSupprimer : ".urlGen('delete',$alias_db['id'],$alias_db['alias'])."\n\n";
|
||||||
|
}
|
||||||
|
$nb_alias_total = $nb_alias + $nb_alias_disable;
|
||||||
|
SendEmail($email,'Liste de vos '.$nb_alias_total.' redirection(s) poubelle(s)',$message);
|
||||||
|
if ($nb_alias_total == 0) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function SendEmail($recipient, $sujet, $message) {
|
||||||
|
$header = "From: ".EMAILFROM."\n";
|
||||||
|
$header.= "MIME-Version: 1.0\n";
|
||||||
|
if (preg_match('#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#', $recipient)) {
|
||||||
|
$header = str_replace("\n", "\r\n", $header);
|
||||||
|
$message = str_replace("\n", "\r\n", $header);
|
||||||
|
}
|
||||||
|
$message="Bonjour,\n\n".$message."\n\n".
|
||||||
|
mail($recipient,EMAILTAGSUJET.' '.$sujet,$message,$header);
|
||||||
|
}
|
||||||
|
|
||||||
|
function urlGen($act,$id,$alias_full) {
|
||||||
|
$idUrl=base64_encode($id.';'.$alias_full);
|
||||||
|
if (URLREWRITE_DEBUT && URLREWRITE_FIN) {
|
||||||
|
return URLREWRITE_DEBUT.$idUrl.URLREWRITE_FIN;
|
||||||
|
} else {
|
||||||
|
return URLPAGE."?act=".$act."&value=".$idUrl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function urlUnGen($get_value) {
|
||||||
|
$explode_get_value = explode(';', base64_decode($get_value));
|
||||||
|
$return['id']=$explode_get_value[0];
|
||||||
|
$return['alias_full']=$explode_get_value[1];
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////
|
||||||
|
// Admin function
|
||||||
|
//////////////////
|
||||||
|
|
||||||
|
function CheckUpdate() {
|
||||||
|
if (CHECKUPDATE) {
|
||||||
|
if (! is_file(DATA.'/checkupdate') || filemtime(DATA.'/checkupdate') + CHECKUPDATE < time()) {
|
||||||
|
$ep_get_version = @file_get_contents('http://poubelle.zici.fr/ep_checkupdate');
|
||||||
|
$ep_version_file=fopen(DATA.'/checkupdate','w');
|
||||||
|
fputs($ep_version_file, $ep_get_version);
|
||||||
|
fclose($ep_version_file);
|
||||||
|
if (DEBUG) { echo 'ep_checkupdate_downloaded : '.file_get_contents(DATA.'/checkupdate').'\n'; }
|
||||||
|
}
|
||||||
|
$file_current_version = trim(file_get_contents(DATA.'/checkupdate'));
|
||||||
|
if ($file_current_version != '' && $file_current_version != VERSION) {
|
||||||
|
return 'Votre version est en '.VERSION.' alors que la version en cours est en '.$file_current_version;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
|
@ -24,7 +24,8 @@
|
||||||
<p>Générer des emails poubelle sans contrainte de durée de vie. </p>
|
<p>Générer des emails poubelle sans contrainte de durée de vie. </p>
|
||||||
<?php
|
<?php
|
||||||
// Intégration dans votre site :
|
// Intégration dans votre site :
|
||||||
include('emailPoubelle.php');
|
include('../conf.php');
|
||||||
|
include('../emailPoubelle.php');
|
||||||
?>
|
?>
|
||||||
<h3>Let the Show Begin - Pre and Code</h3>
|
<h3>Let the Show Begin - Pre and Code</h3>
|
||||||
<p>This is how it looks if you use <code>pre</code> and <code>code</code> together, for example to highlight and nicely markup a piece of code:</p>
|
<p>This is how it looks if you use <code>pre</code> and <code>code</code> together, for example to highlight and nicely markup a piece of code:</p>
|
Before Width: | Height: | Size: 116 B After Width: | Height: | Size: 116 B |
Before Width: | Height: | Size: 116 B After Width: | Height: | Size: 116 B |
Before Width: | Height: | Size: 196 B After Width: | Height: | Size: 196 B |
Before Width: | Height: | Size: 195 B After Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 183 B After Width: | Height: | Size: 183 B |
Before Width: | Height: | Size: 136 B After Width: | Height: | Size: 136 B |
Before Width: | Height: | Size: 137 B After Width: | Height: | Size: 137 B |
Before Width: | Height: | Size: 137 B After Width: | Height: | Size: 137 B |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 270 B After Width: | Height: | Size: 270 B |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |