# here we assume that postfix.yml has run such that user 'mailstore' exists - name: install dovecot packages apt: name: dovecot-imapd,dovecot-lmtpd,dovecot-pgsql,dovecot-managesieved,dovecot-lucene state: present - name: install dovecot config files template: src: "dovecot/{{ item }}" dest: "/etc/dovecot/conf.d/{{ item }}" owner: root group: root mode: 0644 force: yes loop: - 10-auth.conf - auth-sql.conf.ext - 10-mail.conf - 10-master.conf - 10-ssl.conf - 15-mailboxes.conf - 20-lmtp.conf - 20-imap.conf - 90-sieve.conf - 90-sieve-extprograms.conf - 90-plugin.conf - 90-acl.conf - 90-quota.conf - name: install more dovecot config files template: src: "dovecot/{{ item }}" dest: "/etc/dovecot/{{ item }}" owner: root group: dovecot mode: 0640 force: yes loop: - dovecot.conf - dovecot-sql.conf.ext - dovecot-dict-sql.conf.ext - name: directories /etc/dovecot/sieve_before /etc/dovecot/sieve_after file: path: "/etc/dovecot/{{ item }}" state: directory owner: root group: root mode: 0755 loop: - sieve_pipes - sieve_filters - sieve_execute - sieve_before - sieve_after - name: file /etc/dovecot/sieve_after/spam-to-folder.sieve template: src: dovecot/spam-to-folder.sieve dest: /etc/dovecot/sieve_after/spam-to-folder.sieve owner: root group: root mode: 0644 force: yes - name: files /etc/dovecot/sieve_pipes/*.sieve template: src: "dovecot/{{ item }}" dest: "/etc/dovecot/sieve_pipes/{{ item }}" owner: mailstore group: mailstore mode: 0600 force: yes loop: - learn-spam.sieve - learn-ham.sieve - name: files /etc/dovecot/sieve_pipes/*.sh template: src: "dovecot/{{ item }}" dest: "/etc/dovecot/sieve_pipes/{{ item }}" owner: mailstore group: mailstore mode: 0700 force: yes loop: - rspamd-learn-spam.sh - rspamd-learn-ham.sh - name: README files template: src: "dovecot/README_{{ item }}" dest: "/etc/dovecot/sieve_{{ item }}/README" owner: mailstore group: mailstore mode: 0600 force: yes loop: - filters - execute - before - after - name: restart dovecot systemd: name: dovecot state: restarted - name: compile sieve files shell: "/usr/bin/sievec /etc/dovecot/{{ item }}" loop: - "sieve_after/spam-to-folder.sieve" - "sieve_pipes/learn-spam.sieve" - "sieve_pipes/learn-ham.sieve" - name: permissions of .svbin file: path: "/etc/dovecot/{{ item }}" owner: mailstore group: mailstore mode: 0600 loop: - "sieve_after/spam-to-folder.sieve" - "sieve_pipes/learn-spam.svbin" - "sieve_pipes/learn-ham.svbin"