Remove ssmtp support and add From overwrite option
This commit is contained in:
parent
d56e3b037d
commit
f7d8523942
6 changed files with 64 additions and 64 deletions
|
|
@ -1,5 +1,8 @@
|
|||
mail:
|
||||
from: "noreply@example.com"
|
||||
overwrite_from_envelope: no
|
||||
overwrite_from_header: no
|
||||
overwrite_from_header_except_users: []
|
||||
root: "root@example.com"
|
||||
server: "mail.example.com"
|
||||
domain: "example.com"
|
||||
backend: nullmailer
|
||||
|
|
|
|||
|
|
@ -1,6 +1,37 @@
|
|||
- include_tasks: ssmtp.yml
|
||||
when:
|
||||
- ansible_distribution_release == "stretch"
|
||||
- mail.backend == "ssmtp"
|
||||
- include_tasks: nullmailer.yml
|
||||
when: (ansible_distribution_release != "stretch" or mail.backend != "ssmtp")
|
||||
- name: install nullmailer
|
||||
apt:
|
||||
pkg: nullmailer
|
||||
|
||||
- name: divert nullmailer-inject
|
||||
community.general.dpkg_divert:
|
||||
path: /usr/bin/nullmailer-inject
|
||||
divert: /usr/bin/nullmailer-inject-bin
|
||||
rename: yes
|
||||
|
||||
- name: create nullmailer-inject wrapper script
|
||||
template:
|
||||
src: nullmailer-inject.j2
|
||||
dest: /usr/bin/nullmailer-inject
|
||||
mode: 0755
|
||||
|
||||
- name: setup nullmailer envelope from overwrite
|
||||
copy:
|
||||
dest: "/etc/nullmailer/allmailfrom"
|
||||
mode: "0644"
|
||||
owner: root
|
||||
group: root
|
||||
content: "{{ mail.from if mail.overwrite_from_envelope else '' }}"
|
||||
|
||||
- name: setup nullmailer
|
||||
notify: restart nullmailer
|
||||
copy:
|
||||
dest: "{{ item.dest }}"
|
||||
content: "{{ item.content }}"
|
||||
owner: "{{ item.owner }}"
|
||||
group: "{{ item.group }}"
|
||||
mode: "{{ item.mode }}"
|
||||
with_items:
|
||||
- {dest: "/etc/nullmailer/adminaddr", mode: "0644", owner: root, group: root, content: "{{ mail.root }}"}
|
||||
- {dest: "/etc/nullmailer/remotes", mode: "0600", owner: mail, group: mail, content: "{{ mail.server }}"}
|
||||
- {dest: "/etc/nullmailer/defaultdomain", mode: "0644", owner: root, group: root, content: "{{ mail.domain }}"}
|
||||
- {dest: "/etc/mailname", mode: "0644", owner: root, group: root, content: "{{ inventory_hostname }}\n"}
|
||||
|
|
|
|||
|
|
@ -1,27 +0,0 @@
|
|||
- name: install nullmailer
|
||||
apt:
|
||||
pkg: nullmailer
|
||||
|
||||
- name: remove ssmtp
|
||||
apt:
|
||||
pkg: ssmtp
|
||||
state: absent
|
||||
|
||||
- name: remove ssmtp config
|
||||
file:
|
||||
path: /etc/ssmtp/ssmtp.conf
|
||||
state: absent
|
||||
|
||||
- name: setup nullmailer
|
||||
notify: restart nullmailer
|
||||
copy:
|
||||
dest: "{{ item.dest }}"
|
||||
content: "{{ item.content }}"
|
||||
owner: "{{ item.owner }}"
|
||||
group: "{{ item.group }}"
|
||||
mode: "{{ item.mode }}"
|
||||
with_items:
|
||||
- {dest: "/etc/nullmailer/adminaddr", mode: "0644", owner: root, group: root, content: "{{ mail.root }}"}
|
||||
- {dest: "/etc/nullmailer/remotes", mode: "0600", owner: mail, group: mail, content: "{{ mail.server }}"}
|
||||
- {dest: "/etc/nullmailer/defaultdomain", mode: "0644", owner: root, group: root, content: "{{ mail.domain }}"}
|
||||
- {dest: "/etc/mailname", mode: "0644", owner: root, group: root, content: "{{ inventory_hostname }}\n"}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
- name: install ssmtp
|
||||
apt:
|
||||
pkg: ssmtp
|
||||
|
||||
- name: setup ssmtp
|
||||
template:
|
||||
src: smtp.conf.j2
|
||||
dest: /etc/ssmtp/ssmtp.conf
|
||||
mode: 0600
|
||||
23
templates/nullmailer-inject.j2
Normal file
23
templates/nullmailer-inject.j2
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/sh
|
||||
|
||||
{% if mail.overwrite_from_header %}
|
||||
username="$(id -un 2> /dev/null || echo nobody)"
|
||||
|
||||
excepted=0
|
||||
|
||||
for excepted_user in {% for item in mail.overwrite_from_header_except_users %} {{ item|quote }} {% endfor %}; do
|
||||
if [ "$username" = "$excepted_user" ]; then
|
||||
excepted=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$excepted" = "0" ]; then
|
||||
export NULLMAILER_NAME="${username} on $(hostname -f)"
|
||||
export NULLMAILER_USER={{ mail.from.split('@')[0]|quote }}
|
||||
export NULLMAILER_HOST={{ mail.from.split('@', 1)[1]|quote }}
|
||||
export NULLMAILER_FLAGS=f
|
||||
fi
|
||||
{% endif %}
|
||||
|
||||
exec /usr/bin/nullmailer-inject-bin "$@"
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
#
|
||||
# Config file for sSMTP sendmail
|
||||
#
|
||||
# The person who gets all mail for userids < 1000
|
||||
# Make this empty to disable rewriting.
|
||||
root={{ mail['root'] }}
|
||||
|
||||
# The place where the mail goes. The actual machine name is required no
|
||||
# MX records are consulted. Commonly mailhosts are named mail.domain.com
|
||||
mailhub={{ mail['server'] }}
|
||||
|
||||
# Where will the mail seem to come from?
|
||||
rewriteDomain={{ mail['domain'] }}
|
||||
|
||||
# The full hostname
|
||||
hostname={{ inventory_hostname }}
|
||||
|
||||
# Are users allowed to set their own From: address?
|
||||
# YES - Allow the user to specify their own From: address
|
||||
# NO - Use the system generated From: address
|
||||
FromLineOverride=YES
|
||||
Loading…
Add table
Add a link
Reference in a new issue