blob: 5a10bbdd4e60ffc67ebacc9f228cf282e21fc859 [file] [log] [blame]
#!/bin/sh
set -e
# 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, requiring a plain-text password in `/tmp/passwd/`.
add_users_with_passwd() {
for user in "$@"; do
i=0
while [ -z "$(cat /tmp/passwd/${user}/secret 2>/dev/null)" ]; do
if [ ${i} -eq 10 ]; then
echo "ERROR: No password file for '${user}' after ${i}s."
exit 1
fi
sleep 1
i=$((i+1))
done
if [ ! -d /var/mail/${HOSTNAME#mail.}/${user} ]; then
setup email add gerrit@${HOSTNAME#mail.} $(cat /tmp/passwd/${user}/secret)
else
setup email update gerrit@${HOSTNAME#mail.} $(cat /tmp/passwd/${user}/secret)
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
}