From 258b4a81a8a7675d82bef71d0f7d0d12707fbece Mon Sep 17 00:00:00 2001 From: Mauro Torrez Date: Thu, 11 Aug 2022 01:44:21 -0300 Subject: [PATCH] Add managesieve support --- Dockerfile | 3 ++- confd/conf.d/managesieve.toml | 6 ++++++ confd/templates/20-managesieve.conf.tmpl | 14 ++++++++++++++ confd/templates/90-sieve.conf.tmpl | 4 +++- spamtrain.sh | 6 ++++-- 5 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 confd/conf.d/managesieve.toml create mode 100644 confd/templates/20-managesieve.conf.tmpl diff --git a/Dockerfile b/Dockerfile index 931333d..5f8afab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -60,6 +60,7 @@ ENV \ SINGLE_USER= \ ANTISPAM_ENABLE=yes \ SIEVE_ENABLE=yes \ + MANAGESIEVE_ENABLE=yes \ IMAP_URLAUTH_HOST="*" \ SSL_CLIENT_CA_DIR="/etc/ssl/certs" \ SSL_CLIENT_CA_FILE= \ @@ -72,5 +73,5 @@ ADD junk-filter.sieve /etc/dovecot/sieve/before/ ADD sievec /start.d/ VOLUME ["/ssl","/vmail"] -EXPOSE 110/tcp 143/tcp 587/tcp 993/tcp 995/tcp 2000/tcp +EXPOSE 110/tcp 143/tcp 587/tcp 993/tcp 995/tcp 4190/tcp CMD ["dovecot","-F"] diff --git a/confd/conf.d/managesieve.toml b/confd/conf.d/managesieve.toml new file mode 100644 index 0000000..4abe8e8 --- /dev/null +++ b/confd/conf.d/managesieve.toml @@ -0,0 +1,6 @@ +[template] +src = "20-managesieve.conf.tmpl" +dest = "/etc/dovecot/local.d/20-managesieve.conf" +keys = [ + "/managesieve/enable", +] diff --git a/confd/templates/20-managesieve.conf.tmpl b/confd/templates/20-managesieve.conf.tmpl new file mode 100644 index 0000000..d11c141 --- /dev/null +++ b/confd/templates/20-managesieve.conf.tmpl @@ -0,0 +1,14 @@ +# enable managesieve protocol +protocols = $protocols {{ if eq (getv "/managesieve/enable") "yes" }}sieve{{ end }} + +service managesieve-login { + inet_listener sieve { + port = 4190 + } +} + +service managesieve { +} + +protocol sieve { +} diff --git a/confd/templates/90-sieve.conf.tmpl b/confd/templates/90-sieve.conf.tmpl index dad5e84..c505822 100644 --- a/confd/templates/90-sieve.conf.tmpl +++ b/confd/templates/90-sieve.conf.tmpl @@ -1,10 +1,12 @@ plugin { - sieve_plugins = {{ if eq (getv "/sieve/enable") "yes" }}sieve_imapsieve{{ if eq (getv "/antispam/enable") "yes" }} sieve_extprograms{{ end }}{{ end }} + sieve = file:~/sieve;active=~/.dovecot.sieve sieve_before = /etc/dovecot/sieve/before sieve_after = /etc/dovecot/sieve/after {{ if eq (getv "/antispam/enable") "yes" }} + sieve_plugins = sieve_imapsieve sieve_extprograms + sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment sieve_pipe_bin_dir = /etc/dovecot/sieve diff --git a/spamtrain.sh b/spamtrain.sh index 6deb4a9..de22fa3 100755 --- a/spamtrain.sh +++ b/spamtrain.sh @@ -3,11 +3,13 @@ # arg 1 - spam or ham if [ "$1" == "ham" ]; then - /usr/bin/bogofilter -d /vmail/bogofilter -e -p -Sn + /usr/bin/bogofilter -d /vmail/bogofilter -p -Sn exit 0 fi if [ "$1" == "spam" ]; then - /usr/bin/bogofilter -d /vmail/bogofilter -e -p -Ns + /usr/bin/bogofilter -d /vmail/bogofilter -p -Ns exit 0 fi + +exit 1