- 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
loop:
- main.cf
- master.cf
+ - postscreen_access.cidr
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
+ 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 sender_transport_map
+ when: postfix.smtp_outgoing is defined
+ register: sender_transport_map
+ template:
+ dest: /etc/postfix/sender_transport_map
+ src: templates/sender_transport_map
+- 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
+ 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
- name: install check-for-local-mail cronjob
copy:
dest: /etc/cron.daily/check-for-local-mail
src: files/check-for-local-mail
mode: u=rwx,g=rx,o=rx
-- name: install mailman-check cronjob
- when: postfix.mailman is defined and postfix.mailman
- copy:
- dest: /etc/cron.daily/mailman-check
- src: files/mailman-check
- mode: u=rwx,g=rx,o=rx
-- name: remove mailman-check cronjob
- when: not (postfix.mailman is defined and postfix.mailman)
- file:
- path: /etc/cron.daily/mailman-check
- state: absent
-# tools
-- block:
- - name: create newmail dir
- file: path=/root/newmail state=directory
- - name: install newmail script
- copy:
- dest: /root/newmail/newmail
- src: files/newmail/newmail
- mode: u=rwx,g=rx,o=rx
- - name: install newmail templates
- copy:
- dest: /root/newmail/templates.py
- src: files/newmail/templates.py
- when: postfix.vmail_mysql_password is defined