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

[Dovecot] Rename sieve_after to global_sieve_after and create a global_sieve_before file

dcacf85a
andryyy <[email protected]> 7 years ago
data/Dockerfiles/dovecot/docker-entrypoint.sh         | 10 +++++++---
 data/conf/dovecot/dovecot.conf                        |  5 +++--
 data/conf/dovecot/{sieve_after => global_sieve_after} |  3 +++
 data/conf/dovecot/global_sieve_before                 |  2 ++
 docker-compose.yml                                    |  2 +-
 5 files changed, 16 insertions(+), 6 deletions(-)
 rename data/conf/dovecot/{sieve_after => global_sieve_after} (74%)
 create mode 100644 data/conf/dovecot/global_sieve_before

Diff

diff --git a/data/Dockerfiles/dovecot/docker-entrypoint.sh b/data/Dockerfiles/dovecot/docker-entrypoint.sh
index e11977b8..5b91a665 100755
--- a/data/Dockerfiles/dovecot/docker-entrypoint.sh
+++ b/data/Dockerfiles/dovecot/docker-entrypoint.sh
@@ -118,8 +118,11 @@ default_pass_scheme = SSHA256
 password_query = SELECT password FROM mailbox WHERE active = '1' AND username = '%u' AND domain IN (SELECT domain FROM domain WHERE domain='%d' AND active='1') AND JSON_EXTRACT(attributes, '$.force_pw_update') NOT LIKE '%%1%%'
 EOF
 
-# Create global sieve_after script
-cat /usr/local/etc/dovecot/sieve_after > /var/vmail/sieve/global.sieve
+# Migrate old sieve_after file
+[[ -f /usr/local/etc/dovecot/sieve_after ]] && mv /usr/local/etc/dovecot/sieve_after /usr/local/etc/dovecot/global_sieve_after
+# Create global sieve scripts
+cat /usr/local/etc/dovecot/global_sieve_after > /var/vmail/sieve/global_sieve_after.sieve
+cat /usr/local/etc/dovecot/global_sieve_before > /var/vmail/sieve/global_sieve_before.sieve
 
 # Check permissions of vmail/attachments directory.
 # Do not do this every start-up, it may take a very long time. So we use a stat check here.
@@ -181,7 +184,8 @@ else
 fi
 
 # Compile sieve scripts
-sievec /var/vmail/sieve/global.sieve
+sievec /var/vmail/sieve/global_sieve_before.sieve
+sievec /var/vmail/sieve/global_sieve_after.sieve
 sievec /usr/local/lib/dovecot/sieve/report-spam.sieve
 sievec /usr/local/lib/dovecot/sieve/report-ham.sieve
 
diff --git a/data/conf/dovecot/dovecot.conf b/data/conf/dovecot/dovecot.conf
index 75089a0b..cf6b5d12 100644
--- a/data/conf/dovecot/dovecot.conf
+++ b/data/conf/dovecot/dovecot.conf
@@ -331,9 +331,10 @@ plugin {
   sieve_vacation_min_period = 5s
   sieve_vacation_max_period = 0
   sieve_vacation_default_period = 60s
-  sieve_before = dict:proxy::sieve_before;name=active;bindir=/var/vmail/sieve_before_bindir
+  sieve_before = /var/vmail/sieve/global_sieve_before.sieve
+  sieve_before2 = dict:proxy::sieve_before;name=active;bindir=/var/vmail/sieve_before_bindir
   sieve_after = dict:proxy::sieve_after;name=active;bindir=/var/vmail/sieve_after_bindir
-  sieve_after2 = /var/vmail/sieve/global.sieve
+  sieve_after2 = /var/vmail/sieve/global_sieve_after.sieve
 
   # -- Global keys
   mail_crypt_global_private_key = </mail_crypt/ecprivkey.pem
diff --git a/data/conf/dovecot/sieve_after b/data/conf/dovecot/global_sieve_after
similarity index 74%
rename from data/conf/dovecot/sieve_after
rename to data/conf/dovecot/global_sieve_after
index 2e0cfe08..e047136e 100644
--- a/data/conf/dovecot/sieve_after
+++ b/data/conf/dovecot/global_sieve_after
@@ -1,3 +1,6 @@
+# global_sieve_after script
+# global_sieve_before -> user sieve_before (mailcow UI) -> user sieve_after (mailcow UI) -> global_sieve_after
+
 require "fileinto";
 require "mailbox";
 require "variables";
diff --git a/data/conf/dovecot/global_sieve_before b/data/conf/dovecot/global_sieve_before
new file mode 100644
index 00000000..e6a523d4
--- /dev/null
+++ b/data/conf/dovecot/global_sieve_before
@@ -0,0 +1,2 @@
+# global_sieve_before script
+# global_sieve_before -> user sieve_before (mailcow UI) -> user sieve_after (mailcow UI) -> global_sieve_after
diff --git a/docker-compose.yml b/docker-compose.yml
index 04b4a6e7..de70e631 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -173,7 +173,7 @@ services:
             - sogo
 
     dovecot-mailcow:
-      image: mailcow/dovecot:1.76
+      image: mailcow/dovecot:1.77
       build: ./data/Dockerfiles/dovecot
       cap_add:
         - NET_BIND_SERVICE