- name: install postfix
apt: name=postfix,bsd-mailx state=latest
- name: install postfix-mysql
- when: postfix.vmail_mysql_password is defined
+ when: postfix.dovecot is defined
apt: name=postfix-mysql state=latest
- name: enable postfix
service: name=postfix enabled=yes
+- name: install mailman
+ when: postfix.mailman is defined and postfix.mailman
+ apt: name=mailman state=latest
# config
- name: install postfix config
template:
- master.cf
notify: postfix
- name: install postfix mysql config
- when: postfix.vmail_mysql_password is defined
+ when: postfix.dovecot is defined
template:
dest: /etc/postfix/{{ item }}
src: templates/{{ item }}
- mysql_vmail_senders.cf
- mysql_vmail_users.cf
notify: postfix
-- name: create empty maps
- when: postfix.virtual_mailbox_domains is defined
- copy:
- dest: /etc/postfix/{{ item }}
- content: ""
- force: no
- loop:
- - virtual_alias_map
- - transport_map
- name: give postfix user access to opendkim
# we assume the user alredy exists (it is created above by installing postfix)
when: postfix.opendkim is defined
groups: opendkim
append: yes
notify: postfix
+# maps
+- name: create empty virtual_alias_map
+ when: postfix.virtual_mailbox_domains is defined
+ register: virtual_alias_map
+ copy:
+ dest: /etc/postfix/virtual_alias_map
+ content: ""
+ force: no
+- name: postmap virtual_alias_map
+ when: virtual_alias_map.changed
+ command: postmap /etc/postfix/virtual_alias_map
+ notify: postfix
+- name: create empty sender_transport_map
+ when: postfix.smtp_outgoing is defined
+ register: sender_transport_map
+ copy:
+ dest: /etc/postfix/sender_transport_map
+ content: ""
+ force: no
+- name: postmap sender_transport_map
+ when: sender_transport_map.changed
+ command: postmap /etc/postfix/sender_transport_map
+ notify: postfix
+- name: create relay_clientcerts
+ when: postfix.relay_client_cert_whitelist is defined
+ register: relay_clientcerts
+ template:
+ dest: /etc/postfix/relay_clientcerts
+ src: templates/relay_clientcerts
+- name: postmap relay_clientcerts
+ when: relay_clientcerts.changed
+ command: postmap /etc/postfix/relay_clientcerts
+ notify: postfix
+- name: create transport_map
+ when: postfix.virtual_mailbox_domains is defined
+ register: transport_map
+ template:
+ dest: /etc/postfix/transport_map
+ src: templates/transport_map
+- name: postmap transport_map
+ when: transport_map.changed
+ command: postmap /etc/postfix/transport_map
+ notify: postfix
# cronjobs
- name: delete old local-mail cronjob
file: path=/etc/cron.daily/local-mail state=absent
copy:
dest: /root/newmail/templates.py
src: files/newmail/templates.py
- when: postfix.vmail_mysql_password is defined
+ when: postfix.dovecot is defined