diff --git a/core/dovecot/conf/dovecot.conf b/core/dovecot/conf/dovecot.conf index e3c97ef5..2ea88255 100644 --- a/core/dovecot/conf/dovecot.conf +++ b/core/dovecot/conf/dovecot.conf @@ -138,7 +138,7 @@ service managesieve { plugin { sieve = file:~/sieve;active=~/.dovecot.sieve sieve_plugins = sieve_extdata sieve_imapsieve sieve_extprograms - sieve_global_extensions = +vnd.dovecot.extdata +spamtest +spamtestplus +vnd.dovecot.execute + sieve_global_extensions = +vnd.dovecot.extdata +spamtest +spamtestplus +vnd.dovecot.execute +editheader sieve_before = /var/lib/dovecot/before.sieve sieve_default = /var/lib/dovecot/default.sieve sieve_after = /var/lib/dovecot/after.sieve diff --git a/core/dovecot/sieve/before.sieve b/core/dovecot/sieve/before.sieve index e2730c5d..6ebc20c5 100644 --- a/core/dovecot/sieve/before.sieve +++ b/core/dovecot/sieve/before.sieve @@ -11,6 +11,14 @@ require "comparator-i;ascii-numeric"; require "vnd.dovecot.extdata"; require "vnd.dovecot.execute"; require "spamtestplus"; +require "editheader"; +require "index"; + +if header :index 2 :matches "Received" "from * by * for <*>; *" +{ + deleteheader "Delivered-To"; + addheader "Delivered-To" "<${3}>"; +} if allof (string :is "${extdata.spam_enabled}" "1", spamtest :percent :value "gt" :comparator "i;ascii-numeric" "${extdata.spam_threshold}")