Przeglądaj źródła

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

Thomas Buck 5 lat temu
rodzic
commit
f5eb5f918d

+ 18
- 0
roles/mailserver/files/etc_dovecot_conf.d_90-sieve.conf Wyświetl plik

2
   sieve = ~/.dovecot.sieve
2
   sieve = ~/.dovecot.sieve
3
   sieve_dir = ~/sieve
3
   sieve_dir = ~/sieve
4
   sieve_before = /etc/dovecot/sieve/before.d
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 Wyświetl plik

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

+ 11
- 0
roles/mailserver/files/etc_dovecot_sieve_learn_ham.sieve Wyświetl plik

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 Wyświetl plik

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

+ 16
- 0
roles/mailserver/tasks/dovecot.yml Wyświetl plik

80
     group=dovecot
80
     group=dovecot
81
   notify: restart dovecot
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
 - name: Copy additional Dovecot configuration files in place
99
 - name: Copy additional Dovecot configuration files in place
84
   copy:
100
   copy:
85
     src=etc_dovecot_conf.d_{{ item }}
101
     src=etc_dovecot_conf.d_{{ item }}

Ładowanie…
Anuluj
Zapisz