Finish imapsieve config for learn-ham and learn-spam

This commit is contained in:
Tunui Franken 2024-07-25 22:10:02 +02:00
parent b1c0a4f8a1
commit 6d70a60899
6 changed files with 107 additions and 2 deletions

View file

@ -5,3 +5,15 @@
ansible.builtin.command: ansible.builtin.command:
cmd: sievec /etc/dovecot/sieve-after/spam-to-folder.sieve cmd: sievec /etc/dovecot/sieve-after/spam-to-folder.sieve
changed_when: true changed_when: true
- name: Compile learn-spam.sieve
become: true
ansible.builtin.command:
cmd: sievec /etc/dovecot/sieve/learn-spam.sieve
changed_when: true
- name: Compile learn-ham.sieve
become: true
ansible.builtin.command:
cmd: sievec /etc/dovecot/sieve/learn-ham.sieve
changed_when: true

View file

@ -152,14 +152,17 @@
line: '\1sieve_after = /etc/dovecot/sieve-after' line: '\1sieve_after = /etc/dovecot/sieve-after'
notify: Reload dovecot service notify: Reload dovecot service
- name: Create sieve-after directory - name: Create sieve directories
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: /etc/dovecot/sieve-after path: "/etc/dovecot/{{ item }}"
state: directory state: directory
owner: root owner: root
group: root group: root
mode: "755" mode: "755"
loop:
- sieve
- sieve-after
- name: Copy spam-to-folder.sieve - name: Copy spam-to-folder.sieve
become: true become: true
@ -201,3 +204,69 @@
backrefs: true backrefs: true
line: '\1mail_plugins = $mail_plugins quota imap_sieve' line: '\1mail_plugins = $mail_plugins quota imap_sieve'
notify: Reload dovecot service notify: Reload dovecot service
- name: Add imapsieve config for Junk training
become: true
ansible.builtin.blockinfile:
path: /etc/dovecot/conf.d/90-sieve.conf
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
insertafter: 'plugin {'
marker: "# {mark} ANSIBLE MANAGED BLOCK IMAPSIEVE"
notify: Reload dovecot service
- name: Add configs for imapsieve
become: true
ansible.builtin.lineinfile:
path: /etc/dovecot/conf.d/90-sieve.conf
regexp: '^(\s*)#?{{ item.key }} =.*'
backrefs: true
line: '\1{{ item.key }} = {{ item.val }}'
loop:
- key: sieve_global_extensions
val: '+vnd.dovecot.pipe'
- key: sieve_plugins
val: 'sieve_imapsieve sieve_extprograms'
notify: Reload dovecot service
- name: Copy learn-spam.sieve
become: true
ansible.builtin.template:
src: learn-spam.sieve.j2
dest: /etc/dovecot/sieve/learn-spam.sieve
owner: root
group: root
mode: "600"
notify: Compile learn-spam.sieve
- name: Copy learn-ham.sieve
become: true
ansible.builtin.template:
src: learn-ham.sieve.j2
dest: /etc/dovecot/sieve/learn-ham.sieve
owner: root
group: root
mode: "600"
notify: Compile learn-ham.sieve
- name: Copy rspamd-learn-spam.sh and rspamd-learn-ham.sh scripts
become: true
ansible.builtin.template:
src: "rspamd-learn-{{ item }}.sh.j2"
dest: "/etc/dovecot/sieve/rspamd-learn-{{ item }}.sh"
owner: root
group: root
mode: "700"
loop:
- spam
- ham

View file

@ -0,0 +1,9 @@
# {{ ansible_managed }}
require ["vnd.dovecot.pipe", "copy", "imapsieve", "variables"];
if string "${mailbox}" "Trash" {
stop;
}
pipe :copy "rspamd-learn-ham.sh";

View file

@ -0,0 +1,5 @@
# {{ ansible_managed }}
require ["vnd.dovecot.pipe", "copy", "imapsieve"];
pipe :copy "rspamd-learn-spam.sh";

View file

@ -0,0 +1,5 @@
#!/bin/bash
# {{ ansible_managed }}
exec /usr/bin/rspamc learn_ham

View file

@ -0,0 +1,5 @@
#!/bin/bash
# {{ ansible_managed }}
exec /usr/bin/rspamc learn_spam