From aa18f19de9f35532039961fad8149bd3c040d9f6 Mon Sep 17 00:00:00 2001 From: Tunui Franken Date: Thu, 25 Jul 2024 18:14:46 +0200 Subject: [PATCH] Add sieve to move spam to junk --- roles/mailserver_dovecot/handlers/main.yml | 7 +++++ roles/mailserver_dovecot/tasks/main.yml | 28 +++++++++++++++++++ .../templates/spam-to-folder.sieve.j2 | 8 ++++++ 3 files changed, 43 insertions(+) create mode 100644 roles/mailserver_dovecot/handlers/main.yml create mode 100644 roles/mailserver_dovecot/templates/spam-to-folder.sieve.j2 diff --git a/roles/mailserver_dovecot/handlers/main.yml b/roles/mailserver_dovecot/handlers/main.yml new file mode 100644 index 0000000..5712374 --- /dev/null +++ b/roles/mailserver_dovecot/handlers/main.yml @@ -0,0 +1,7 @@ +--- + +- name: Compile spam-to-folder.sieve + become: true + ansible.builtin.command: + cmd: sievec /etc/dovecot/sieve-after/spam-to-folder.sieve + changed_when: true diff --git a/roles/mailserver_dovecot/tasks/main.yml b/roles/mailserver_dovecot/tasks/main.yml index 852064a..24f66ec 100644 --- a/roles/mailserver_dovecot/tasks/main.yml +++ b/roles/mailserver_dovecot/tasks/main.yml @@ -142,3 +142,31 @@ dest: /etc/dovecot/conf.d/90-quota.conf mode: "644" notify: Reload dovecot service + +- name: Add sieve_after sieve config + become: true + ansible.builtin.lineinfile: + path: /etc/dovecot/conf.d/90-sieve.conf + regexp: '^(\s*)#?sieve_after =.*' + backrefs: true + line: '\1sieve_after = /etc/dovecot/sieve-after' + notify: Reload dovecot service + +- name: Create sieve-after directory + become: true + ansible.builtin.file: + path: /etc/dovecot/sieve-after + state: directory + owner: root + group: root + mode: "755" + +- name: Copy spam-to-folder.sieve + become: true + ansible.builtin.template: + src: spam-to-folder.sieve.j2 + dest: /etc/dovecot/sieve-after/spam-to-folder.sieve + owner: root + group: root + mode: "644" + notify: Compile spam-to-folder.sieve diff --git a/roles/mailserver_dovecot/templates/spam-to-folder.sieve.j2 b/roles/mailserver_dovecot/templates/spam-to-folder.sieve.j2 new file mode 100644 index 0000000..12e7d3c --- /dev/null +++ b/roles/mailserver_dovecot/templates/spam-to-folder.sieve.j2 @@ -0,0 +1,8 @@ +# {{ ansible_managed }} + +require ["fileinto","mailbox"]; + +if header :contains "X-Spam" "Yes" { + fileinto :create "INBOX.Junk"; + stop; +}