diff --git a/modoboa_installer/config_dict_template.py b/modoboa_installer/config_dict_template.py index b4304be..d03dde1 100644 --- a/modoboa_installer/config_dict_template.py +++ b/modoboa_installer/config_dict_template.py @@ -372,6 +372,14 @@ ConfigDictTemplate = [ "option": "postmaster_address", "default": "postmaster@%(domain)s", }, + { + "option": "radicale_auth_socket_path", + "default": "/var/run/dovecot/auth-radicale", + }, + { + "option": "move_spam_to_junk", + "default": "true", + }, ] }, { diff --git a/modoboa_installer/scripts/dovecot.py b/modoboa_installer/scripts/dovecot.py index 6c38e85..eb3d4a3 100644 --- a/modoboa_installer/scripts/dovecot.py +++ b/modoboa_installer/scripts/dovecot.py @@ -40,7 +40,13 @@ class Dovecot(base.Installer): def get_config_files(self): """Additional config files.""" - return self.config_files + [ + _config_files = self.config_files + + if self.app_config["move_spam_to_junk"]: + _config_files += ["conf.d/90-sieve.conf", + "conf.d/custom_after_sieve/spam-to-junk.sieve"] + + return _config_files + [ "dovecot-sql-{}.conf.ext=dovecot-sql.conf.ext" .format(self.dbengine), "dovecot-sql-master-{}.conf.ext=dovecot-sql-master.conf.ext" @@ -145,6 +151,10 @@ class Dovecot(base.Installer): utils.exec_cmd("chmod 600 /etc/dovecot/conf.d/10-ssl-keys.try") # Add mailboxes user to dovecot group for modoboa mailbox commands. # See https://github.com/modoboa/modoboa/issues/2157. + if self.app_config["move_spam_to_junk"]: + # Compile sieve script + sieve_file = "/etc/dovecot/conf.d/custom_after_sieve/spam-to-junk.sieve" + utils.exec_cmd(f"/usr/bin/sievec {sieve_file}") system.add_user_to_group(self.mailboxes_owner, 'dovecot') def restart_daemon(self): diff --git a/modoboa_installer/scripts/files/dovecot/conf.d/90-sieve.conf b/modoboa_installer/scripts/files/dovecot/conf.d/90-sieve.conf index 35a9f5d..dd76330 100644 --- a/modoboa_installer/scripts/files/dovecot/conf.d/90-sieve.conf +++ b/modoboa_installer/scripts/files/dovecot/conf.d/90-sieve.conf @@ -38,7 +38,7 @@ plugin { # Identical to sieve_before, only the specified scripts are executed after the # user's script (only when keep is still in effect!). Multiple script file or # directory paths can be specified by appending an increasing number. - #sieve_after = + {%dovecot_enabled}sieve_after = /etc/dovecot/conf.d/custom_after_sieve #sieve_after2 = #sieve_after2 = (etc...) diff --git a/modoboa_installer/scripts/files/dovecot/conf.d/custom_after_sieve/spam-to-junk.sieve.tpl b/modoboa_installer/scripts/files/dovecot/conf.d/custom_after_sieve/spam-to-junk.sieve.tpl new file mode 100644 index 0000000..8eb572c --- /dev/null +++ b/modoboa_installer/scripts/files/dovecot/conf.d/custom_after_sieve/spam-to-junk.sieve.tpl @@ -0,0 +1,4 @@ +require "fileinto"; +if header :contains "X-Spam-Status" "Yes" { + fileinto "Junk"; +}