diff --git a/conf-dist.php b/conf-dist.php
index 96a064e..8bf7807 100644
--- a/conf-dist.php
+++ b/conf-dist.php
@@ -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 :
diff --git a/emailPoubelle.php b/emailPoubelle.php
index 463d8fb..8de3060 100644
--- a/emailPoubelle.php
+++ b/emailPoubelle.php
@@ -157,8 +157,10 @@ if (isset($_POST['username']) && $_POST['username'] != '') { // minimal anti-spa
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)) {
+ } else if (!domainePresent($domain)) {
echo 'Erreur : ce domain n\'est pas pris en charge
';
+ } else if (emailIsAlias($email)) {
+ echo 'Erreur : votre email ne peut pas contenir un domaine "poubelle"
';
} else if (AliasDeny($alias)) {
echo 'Erreur : email poubelle interdit
';
} 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 'Erreur : cet email poubelle est déjà utilisé
';
+ } else if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."'")->fetchColumn() > ALIASLIMITBYMAIL) {
+ echo 'Erreur : Vous avez atteind votre quota limite de '.ALIASLIMITBYMAIL.' alias sur cette application. Vous pouvez
installer ce script sur un serveur personnel si vous voulez plus de quota.
';
} else {
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."' AND status > 0")->fetchColumn() != 0) {
AjouterAlias(5, $alias_full, $email, $life, $comment);
diff --git a/lib/ep_function.php b/lib/ep_function.php
index c07ddb9..4a3eb3e 100644
--- a/lib/ep_function.php
+++ b/lib/ep_function.php
@@ -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;
+}
?>