From dcacf85a5d8bff7aee20147c4cccfc11d3757a76 Mon Sep 17 00:00:00 2001 From: andryyy Date: Sat, 1 Jun 2019 13:53:24 +0200 Subject: [PATCH] [Dovecot] Rename sieve_after to global_sieve_after and create a global_sieve_before file --- 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 --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 = 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