blob: 487903654e2367ac8a237f94776f3f06da3a2520 [file] [log] [blame]
#!/bin/sh
set -e
secret() {
seed=$(cat /run/secrets/seed)
printf "%s:%40s" "${seed}" "$*" | sha256sum | sed 's/[[:space:]].*//'
}
# Add local containers as trusted for postfix relaying.
add_mynetworks_hosts() {
myhosts=
for host in mailserver "$@"; do
IP=$(host ${host} | sed -n 's/.*has address //p')
myhosts="${myhosts} ${IP}/32"
done
postconf "mynetworks =${myhosts}"
}
# Create given users, requires a seed file for secret()
add_users_with_passwd() {
for user in "$@"; do
if [ ! -d /var/mail/${HOSTNAME#mail.}/${user} ]; then
setup email add ${user}@${HOSTNAME#mail.} $(secret mail:${user})
else
setup email update ${user}@${HOSTNAME#mail.} $(secret mail:${user})
fi
done
}
{
add_users_with_passwd gerrit
# Restrict gerrit@ sending to local IP:
if ! grep -q gerrit /tmp/docker-mailserver/user.access 2>/dev/null; then
echo "gerrit@${HOSTNAME#mail.} gerrit_sender_check" >>/tmp/docker-mailserver/user.access
postmap /tmp/docker-mailserver/user.access
fi
IP=$(host gerrit | sed -n 's/.*has address //p')
echo "${IP} permit_sasl_authenticated" >/tmp/docker-mailserver/gerrit-client.access
postmap /tmp/docker-mailserver/gerrit-client.access
}