Browse Source

Add dovecot sieves to automatically learn spam and ham in RSpamD by moving in and out of spam folder.

Thomas Buck 5 years ago
parent
commit
f5eb5f918d

+ 18
- 0
roles/mailserver/files/etc_dovecot_conf.d_90-sieve.conf View File

@@ -2,4 +2,22 @@ plugin {
2 2
   sieve = ~/.dovecot.sieve
3 3
   sieve_dir = ~/sieve
4 4
   sieve_before = /etc/dovecot/sieve/before.d
5
+  sieve_plugins = sieve_imapsieve sieve_extprograms
6
+
7
+  ###
8
+  ### Spam learning
9
+  ###
10
+  # From elsewhere to Spam folder
11
+  imapsieve_mailbox1_name = Junk
12
+  imapsieve_mailbox1_causes = COPY
13
+  imapsieve_mailbox1_before = file:/etc/dovecot/sieve/learn_spam.sieve
14
+
15
+  # From Spam folder to elsewhere
16
+  imapsieve_mailbox2_name = *
17
+  imapsieve_mailbox2_from = Junk
18
+  imapsieve_mailbox2_causes = COPY
19
+  imapsieve_mailbox2_before = file:/etc/dovecot/sieve/learn_ham.sieve
20
+
21
+  sieve_pipe_bin_dir = /usr/bin
22
+  sieve_global_extensions = +vnd.dovecot.pipe
5 23
 }

+ 6
- 0
roles/mailserver/files/etc_dovecot_sieve_before.d_no-spam.sieve View File

@@ -1,6 +1,12 @@
1 1
 require "fileinto";
2 2
 require "imap4flags";
3 3
 
4
+if header :contains "X-Spam-Flag" "YES" {
5
+    setflag "\\seen";
6
+    fileinto "Junk";
7
+    stop;
8
+}
9
+
4 10
 if header :is "X-Spam" "Yes" {
5 11
     setflag "\\seen";
6 12
     fileinto "Junk";

+ 11
- 0
roles/mailserver/files/etc_dovecot_sieve_learn_ham.sieve View File

@@ -0,0 +1,11 @@
1
+require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];
2
+
3
+if environment :matches "imap.mailbox" "*" {
4
+    set "mailbox" "${1}";
5
+}
6
+
7
+if string "${mailbox}" "Trash" {
8
+    stop;
9
+}
10
+
11
+pipe :copy "rspamc" ["learn_ham"];

+ 2
- 0
roles/mailserver/files/etc_dovecot_sieve_learn_spam.sieve View File

@@ -0,0 +1,2 @@
1
+require ["vnd.dovecot.pipe", "copy", "imapsieve"];
2
+pipe :copy "rspamc" ["learn_spam"];

+ 16
- 0
roles/mailserver/tasks/dovecot.yml View File

@@ -80,6 +80,22 @@
80 80
     group=dovecot
81 81
   notify: restart dovecot
82 82
 
83
+- name: Configure learning spam sieve script
84
+  copy:
85
+    src=etc_dovecot_sieve_learn_spam.sieve
86
+    dest=/etc/dovecot/sieve/learn_spam.sieve
87
+    owner=vmail
88
+    group=dovecot
89
+  notify: restart dovecot
90
+
91
+- name: Configure learning ham sieve script
92
+  copy:
93
+    src=etc_dovecot_sieve_learn_ham.sieve
94
+    dest=/etc/dovecot/sieve/learn_ham.sieve
95
+    owner=vmail
96
+    group=dovecot
97
+  notify: restart dovecot
98
+
83 99
 - name: Copy additional Dovecot configuration files in place
84 100
   copy:
85 101
     src=etc_dovecot_conf.d_{{ item }}

Loading…
Cancel
Save