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:
loop:
- main.cf
- master.cf
+ - postscreen_access.cidr
notify: postfix
- name: install postfix mysql config
when: postfix.dovecot is defined
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
when: virtual_alias_map.changed
command: postmap /etc/postfix/virtual_alias_map
notify: postfix
-- name: create empty sender_transport_map
+- name: create sender_transport_map
when: postfix.smtp_outgoing is defined
register: sender_transport_map
- copy:
+ template:
dest: /etc/postfix/sender_transport_map
- content: ""
- force: no
+ 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 empty relay_clientcerts
+- name: create relay_clientcerts
when: postfix.relay_client_cert_whitelist is defined
register: relay_clientcerts
- copy:
+ template:
dest: /etc/postfix/relay_clientcerts
- content: ""
- force: no
+ 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
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.dovecot is defined