train spam mails from junk
This commit is contained in:
parent
0cb92f1252
commit
d8ace47eea
7 changed files with 87 additions and 0 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
rspamd:
|
rspamd:
|
||||||
redis: false
|
redis: false
|
||||||
|
train_from_junk: false
|
||||||
local_configs: {}
|
local_configs: {}
|
||||||
rspamd_redis:
|
rspamd_redis:
|
||||||
local_configs:
|
local_configs:
|
||||||
|
|
|
||||||
5
files/learn-ham.sieve
Normal file
5
files/learn-ham.sieve
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
require ["vnd.dovecot.pipe", "copy", "imapsieve", "variables"];
|
||||||
|
if string "${mailbox}" "Trash" {
|
||||||
|
stop;
|
||||||
|
}
|
||||||
|
pipe :copy "rspamd-learn-ham.sh";
|
||||||
2
files/learn-spam.sieve
Normal file
2
files/learn-spam.sieve
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
require ["vnd.dovecot.pipe", "copy", "imapsieve"];
|
||||||
|
pipe :copy "rspamd-learn-spam.sh";
|
||||||
2
files/rspamd-learn-ham.sh
Normal file
2
files/rspamd-learn-ham.sh
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
exec /usr/bin/rspamc learn_ham
|
||||||
2
files/rspamd-learn-spam.sh
Normal file
2
files/rspamd-learn-spam.sh
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
exec /usr/bin/rspamc learn_spam
|
||||||
|
|
@ -24,3 +24,6 @@
|
||||||
loop: "{{ rspamd.local_configs | dict2items }}"
|
loop: "{{ rspamd.local_configs | dict2items }}"
|
||||||
notify:
|
notify:
|
||||||
- restart rspamd
|
- restart rspamd
|
||||||
|
|
||||||
|
- include: sieve_train_from_junk.yml
|
||||||
|
when: rspamd.train_from_junk
|
||||||
72
tasks/sieve_train_from_junk.yml
Normal file
72
tasks/sieve_train_from_junk.yml
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
- name: add sieve actions
|
||||||
|
blockinfile:
|
||||||
|
path: /etc/dovecot/conf.d/90-sieve.conf
|
||||||
|
insertbefore: "}"
|
||||||
|
block: |
|
||||||
|
# From elsewhere to Junk folder
|
||||||
|
imapsieve_mailbox1_name = Junk
|
||||||
|
imapsieve_mailbox1_causes = COPY
|
||||||
|
imapsieve_mailbox1_before = file:/etc/dovecot/sieve/learn-spam.sieve
|
||||||
|
|
||||||
|
# From Junk folder to elsewhere
|
||||||
|
imapsieve_mailbox2_name = *
|
||||||
|
imapsieve_mailbox2_from = Junk
|
||||||
|
imapsieve_mailbox2_causes = COPY
|
||||||
|
imapsieve_mailbox2_before = file:/etc/dovecot/sieve/learn-ham.sieve
|
||||||
|
|
||||||
|
sieve_pipe_bin_dir = /etc/dovecot/sieve
|
||||||
|
sieve_global_extensions = +vnd.dovecot.pipe
|
||||||
|
sieve_plugins = sieve_imapsieve sieve_extprograms
|
||||||
|
register: dovecot_config
|
||||||
|
|
||||||
|
- name: restart dovecot
|
||||||
|
when: dovecot_config.changed
|
||||||
|
service:
|
||||||
|
name: dovecot
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
- name: create directory for sieve files
|
||||||
|
file:
|
||||||
|
path: /etc/dovecot/sieve
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: copy global sieve files
|
||||||
|
copy:
|
||||||
|
src: "{{ item }}"
|
||||||
|
dest: "/etc/dovecot/sieve/{{ item }}"
|
||||||
|
owner: vmail
|
||||||
|
group: vmail
|
||||||
|
mode: 0500
|
||||||
|
with_items:
|
||||||
|
- learn-spam.sieve
|
||||||
|
- learn-ham.sieve
|
||||||
|
register: sieve_scripts
|
||||||
|
|
||||||
|
- name: run sieve compiler
|
||||||
|
when: sieve_scripts.changed
|
||||||
|
command: |
|
||||||
|
sievec /etc/dovecot/sieve/{{ item }}
|
||||||
|
with_items:
|
||||||
|
- learn-spam.sieve
|
||||||
|
- learn-ham.sieve
|
||||||
|
|
||||||
|
- name: chown sieve files
|
||||||
|
file:
|
||||||
|
path: "/etc/dovecot/sieve/{{ item }}"
|
||||||
|
owner: vmail
|
||||||
|
group: vmail
|
||||||
|
mode: 0500
|
||||||
|
with_items:
|
||||||
|
- learn-spam.svbin
|
||||||
|
- learn-ham.svbin
|
||||||
|
|
||||||
|
- name: copy shellscripts
|
||||||
|
copy:
|
||||||
|
src: "{{ item }}"
|
||||||
|
dest: "/etc/dovecot/sieve/{{ item }}"
|
||||||
|
owner: vmail
|
||||||
|
group: vmail
|
||||||
|
mode: 0700
|
||||||
|
with_items:
|
||||||
|
- rspamd-learn-spam.sh
|
||||||
|
- rspamd-learn-ham.sh
|
||||||
Loading…
Add table
Add a link
Reference in a new issue