aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ansible/roles/dovecot/handlers/main.yml4
-rw-r--r--ansible/roles/dovecot/tasks/main.yml33
-rw-r--r--ansible/roles/dovecot/templates/spam-to-folder.sieve.j28
3 files changed, 45 insertions, 0 deletions
diff --git a/ansible/roles/dovecot/handlers/main.yml b/ansible/roles/dovecot/handlers/main.yml
index fa1d224..7169fa5 100644
--- a/ansible/roles/dovecot/handlers/main.yml
+++ b/ansible/roles/dovecot/handlers/main.yml
@@ -8,3 +8,7 @@
service:
name: dovecot
state: restarted
+
+- name: Recompile spam-to-folder sieve script
+ command: /usr/bin/sievec /etc/dovecot/sieve-after/spam-to-folder.sieve
+ changed_when: true
diff --git a/ansible/roles/dovecot/tasks/main.yml b/ansible/roles/dovecot/tasks/main.yml
index 759a38d..5f57991 100644
--- a/ansible/roles/dovecot/tasks/main.yml
+++ b/ansible/roles/dovecot/tasks/main.yml
@@ -51,6 +51,39 @@
notify:
- Reload Dovecot
+- name: Create sieve-after directory
+ file:
+ state: directory
+ path: /etc/dovecot/sieve-after
+ owner: vmail
+ group: vmail
+ mode: "0755"
+ tags:
+ - role::dovecot
+
+- name: Template spam-to-folder sieve script
+ template:
+ src: spam-to-folder.sieve.j2
+ dest: /etc/dovecot/sieve-after/spam-to-folder.sieve
+ owner: vmail
+ group: vmail
+ mode: 0444
+ notify:
+ - Recompile spam-to-folder sieve script
+ tags:
+ - role::dovecot
+
+- name: Set up sieve configuration for dovecot
+ lineinfile:
+ path: /etc/dovecot/conf.d/90-sieve.conf
+ regexp: "sieve_after ="
+ line: " sieve_after = /etc/dovecot/sieve-after # (ansible managed)"
+ state: present
+ notify:
+ - Reload Dovecot
+ tags:
+ - role::dovecot
+
- name: Template Dovecot LDAP config
template:
src: dovecot-ldap.conf.ext.j2
diff --git a/ansible/roles/dovecot/templates/spam-to-folder.sieve.j2 b/ansible/roles/dovecot/templates/spam-to-folder.sieve.j2
new file mode 100644
index 0000000..9033787
--- /dev/null
+++ b/ansible/roles/dovecot/templates/spam-to-folder.sieve.j2
@@ -0,0 +1,8 @@
+# Ansible managed
+
+require ["fileinto"];
+
+if header :contains "X-Spam" "Yes" {
+ fileinto "Junk";
+ stop;
+}