- 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