--- - name: define Postfix virtual mailbox domain mapping template: src=mysql-virtual-mailbox-domains.cf.j2 dest=/etc/postfix/mysql-virtual-mailbox-domains.cf notify: restart postfix - name: tell Postfix to use the virtual mailbox domain mapping shell: postconf virtual_mailbox_domains=mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf - name: define Postfix virtual mailbox mapping template: src=mysql-virtual-mailbox-maps.cf.j2 dest=/etc/postfix/mysql-virtual-mailbox-maps.cf notify: restart postfix - name: tell Postfix to use the virtual mailbox mapping shell: postconf virtual_mailbox_maps=mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf - name: define Postfix virtual alias mapping template: src=mysql-virtual-alias-maps.cf.j2 dest=/etc/postfix/mysql-virtual-alias-maps.cf notify: restart postfix - name: tell Postfix to use the virtual alias mapping shell: postconf virtual_alias_maps=mysql:/etc/postfix/mysql-virtual-alias-maps.cf - name: define Postfix email-to-email mapping (required for catchall domains) template: src=mysql-email2email.cf.j2 dest=/etc/postfix/mysql-email2email.cf notify: restart postfix - name: tell Postfix to use the email-to-email mapping shell: postconf virtual_alias_maps=mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf - name: Restricting access to database mapping files that contain a password file: path=/etc/postfix/mysql-{{item}}.cf mode=0640 with_items: - virtual-mailbox-domains - virtual-mailbox-maps - virtual-alias-maps - name: Define dovecot service in master.cf shell: postconf -vM dovecot/unix='dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/dovecot-lda -f ${sender} -d ${recipient}' notify: restart postfix - name: Set virtual_transport to dovecot shell: postconf virtual_transport=dovecot - name: Restricting delivery to Dovecot to one email at a time shell: postconf dovecot_destination_recipient_limit=1