This commit is contained in:
David 2018-03-18 12:54:28 +01:00
parent aecdc0fa4c
commit 52c627bc3f
3 changed files with 42 additions and 1 deletions

View file

@ -20,6 +20,8 @@ define('DEBUG', false);
// Domain email (separe with ; exemple : exemple.com;zici.fr;exemple.fr)
define('DOMAIN', 'exemple.fr');
//define('DOMAIN', 'exemple.com;zici.fr;exemple.fr');
// Nombre d'alias poubelle limite par email
define('ALIASLIMITBYMAIL', 30);
// PDO stucture
// Exemple pour MYSQL :

View file

@ -157,8 +157,10 @@ if (isset($_POST['username']) && $_POST['username'] != '') { // minimal anti-spa
echo '<div class="highlight-1">Erreur : Adresse email incorrect (2)</div>';
} else if (! preg_match('#^[\w.-]+$#',$alias)) {
echo '<div class="highlight-1">Erreur : Format de l\'email poubelle incorrect</div>';
} else if (! preg_match('#'.$domain.'#',DOMAIN)) {
} else if (!domainePresent($domain)) {
echo '<div class="highlight-1">Erreur : ce domain n\'est pas pris en charge</div>';
} else if (emailIsAlias($email)) {
echo '<div class="highlight-1">Erreur : votre email ne peut pas contenir un domaine "poubelle"</div>';
} else if (AliasDeny($alias)) {
echo '<div class="highlight-1">Erreur : email poubelle interdit</div>';
} else if (BlacklistEmail($email)) {
@ -167,6 +169,8 @@ if (isset($_POST['username']) && $_POST['username'] != '') { // minimal anti-spa
} elseif (isset($_POST['add'])) {
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>';
} else if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."'")->fetchColumn() > ALIASLIMITBYMAIL) {
echo '<div class="highlight-1">Erreur : Vous avez atteind votre quota limite de '.ALIASLIMITBYMAIL.' alias sur cette application. Vous pouvez <a href="http://forge.zici.fr/p/emailpoubelle-php/">installer ce script</a> sur un serveur personnel si vous voulez plus de quota.</div>';
} else {
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."' AND status > 0")->fetchColumn() != 0) {
AjouterAlias(5, $alias_full, $email, $life, $comment);

View file

@ -326,4 +326,39 @@ function LifeExpire() {
die();
}
}
// Vérifie que le domaine de l'alias est bien dans la configuration
function domainePresent($postDom) {
$domains = explode(';', DOMAIN);
$return=true;
if (count($domains) == 1) {
if (!preg_match('#'.$postDom.'#',DOMAIN)) {
$return=false;
}
} else {
foreach ($domains as $one_domain) {
if (!preg_match('#'.$postDom.'#',$one_domain)) {
$return=false;
}
}
}
return $return;
}
// Vérifie que l'email n'est pas un alias avec un domain "poubelle" (éviter boucle forward)
function emailIsAlias($postemail) {
$domains = explode(';', DOMAIN);
$return=false;
if (count($domains) == 1) {
if (preg_match('#'.DOMAIN.'$#',$postemail)) {
$return=true;
}
} else {
foreach ($domains as $one_domain) {
if (preg_match('#'.$one_domain.'$#',$postemail)) {
$return=true;
}
}
}
return $return;
}
?>