NobGit
public nobgit read

NobMail

Based on mailcow: dockerized

Languages

Repository composition by tracked source files.

PHP
PHP 49% JavaScript 35% HTML 9% CSS 4% Shell 2% Python 1% Lua 0% Perl 0% Ruby 0% SCSS 0%
Create file Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git

Commit

[Rspamd] Important fix for settings map

9dc250c9
AndrĂ© <[email protected]> 8 years ago
data/conf/rspamd/dynmaps/settings.php | 37 +++++++++++++----------------------
 1 file changed, 14 insertions(+), 23 deletions(-)

Diff

diff --git a/data/conf/rspamd/dynmaps/settings.php b/data/conf/rspamd/dynmaps/settings.php
index e6a7923b..553a9400 100644
--- a/data/conf/rspamd/dynmaps/settings.php
+++ b/data/conf/rspamd/dynmaps/settings.php
@@ -35,21 +35,19 @@ function ucl_rcpts($object, $type) {
   if ($type == 'mailbox') {
     // Standard aliases
     $stmt = $pdo->prepare("SELECT `address` FROM `alias`
-      WHERE `goto` LIKE :object_goto
-        AND `address` NOT LIKE '@%'
-        AND `address` != :object_address");
+      WHERE `goto` = :object_goto
+        AND `address` NOT LIKE '@%'");
     $stmt->execute(array(
-      ':object_goto' => '%' . $object . '%',
-      ':object_address' => $object
+      ':object_goto' => $object
     ));
     $standard_aliases = $stmt->fetchAll(PDO::FETCH_ASSOC);
     while ($row = array_shift($standard_aliases)) {
       $local = parse_email($row['address'])['local'];
       $domain = parse_email($row['address'])['domain'];
       if (!empty($local) && !empty($domain)) {
-        $rcpt[] = '/' . $local . '[+].*' . $domain . '/i';
+        $rcpt[] = '/' . str_replace('/', '\/', $local) . '[+].*' . str_replace('/', '\/', $domain) . '/i';
       }
-      $rcpt[] = $row['address'];
+      $rcpt[] = str_replace('/', '\/', $row['address']);
     }
     // Aliases by alias domains
     $stmt = $pdo->prepare("SELECT CONCAT(`local_part`, '@', `alias_domain`.`alias_domain`) AS `alias` FROM `mailbox` 
@@ -70,13 +68,6 @@ function ucl_rcpts($object, $type) {
       $rcpt[] = $row['alias'];
       }
     }
-    // Mailbox self
-    $local = parse_email($row['object'])['local'];
-    $domain = parse_email($row['object'])['domain'];
-    if (!empty($local) && !empty($domain)) {
-      $rcpt[] = '/' . $local . '[+].*' . $domain . '/i';
-    }
-    $rcpt[] = $object;
   }
   elseif ($type == 'domain') {
     // Domain self
@@ -126,7 +117,7 @@ while ($row = array_shift($rows)) {
 <?php
   foreach (ucl_rcpts($row['object'], strpos($row['object'], '@') === FALSE ? 'domain' : 'mailbox') as $rcpt) {
 ?>
-    rcpt = <?=json_encode($rcpt);?>;
+    rcpt = <?=json_encode($rcpt, JSON_UNESCAPED_SLASHES);?>;
 <?php
   }
   $stmt = $pdo->prepare("SELECT `option`, `value` FROM `filterconf` 
@@ -172,7 +163,7 @@ while ($row = array_shift($rows)) {
 <?php
     foreach (ucl_rcpts($row['object'], strpos($row['object'], '@') === FALSE ? 'domain' : 'mailbox') as $rcpt) {
 ?>
-    rcpt = <?=json_encode($rcpt);?>;
+    rcpt = <?=json_encode($rcpt, JSON_UNESCAPED_SLASHES);?>;
 <?php
     }
   }
@@ -182,7 +173,7 @@ while ($row = array_shift($rows)) {
 <?php
     foreach (ucl_rcpts($row['object'], strpos($row['object'], '@') === FALSE ? 'domain' : 'mailbox') as $rcpt) {
 ?>
-    rcpt = <?=json_encode($rcpt);?>;
+    rcpt = <?=json_encode($rcpt, JSON_UNESCAPED_SLASHES);?>;
 <?php
     }
   }
@@ -213,7 +204,7 @@ while ($row = array_shift($rows)) {
 <?php
     foreach (ucl_rcpts($row['object'], strpos($row['object'], '@') === FALSE ? 'domain' : 'mailbox') as $rcpt) {
 ?>
-    rcpt = <?=json_encode($rcpt);?>;
+    rcpt = <?=json_encode($rcpt, JSON_UNESCAPED_SLASHES);?>;
 <?php
     }
   }
@@ -223,7 +214,7 @@ while ($row = array_shift($rows)) {
 <?php
     foreach (ucl_rcpts($row['object'], strpos($row['object'], '@') === FALSE ? 'domain' : 'mailbox') as $rcpt) {
 ?>
-    rcpt = <?=json_encode($rcpt);?>;
+    rcpt = <?=json_encode($rcpt, JSON_UNESCAPED_SLASHES);?>;
 <?php
     }
   }
@@ -264,7 +255,7 @@ while ($row = array_shift($rows)) {
 <?php
     foreach (ucl_rcpts($row['object'], strpos($row['object'], '@') === FALSE ? 'domain' : 'mailbox') as $rcpt) {
 ?>
-    rcpt = <?=json_encode($rcpt);?>;
+    rcpt = <?=json_encode($rcpt, JSON_UNESCAPED_SLASHES);?>;
 <?php
     }
   }
@@ -274,7 +265,7 @@ while ($row = array_shift($rows)) {
 <?php
     foreach (ucl_rcpts($row['object'], strpos($row['object'], '@') === FALSE ? 'domain' : 'mailbox') as $rcpt) {
 ?>
-    rcpt = <?=json_encode($rcpt);?>;
+    rcpt = <?=json_encode($rcpt, JSON_UNESCAPED_SLASHES);?>;
 <?php
     }
   }
@@ -305,7 +296,7 @@ while ($row = array_shift($rows)) {
 <?php
     foreach (ucl_rcpts($row['object'], strpos($row['object'], '@') === FALSE ? 'domain' : 'mailbox') as $rcpt) {
 ?>
-    rcpt = <?=json_encode($rcpt);?>;
+    rcpt = <?=json_encode($rcpt, JSON_UNESCAPED_SLASHES);?>;
 <?php
     }
   }
@@ -315,7 +306,7 @@ while ($row = array_shift($rows)) {
 <?php
     foreach (ucl_rcpts($row['object'], strpos($row['object'], '@') === FALSE ? 'domain' : 'mailbox') as $rcpt) {
 ?>
-    rcpt = <?=json_encode($rcpt);?>;
+    rcpt = <?=json_encode($rcpt, JSON_UNESCAPED_SLASHES);?>;
 <?php
     }
   }