plausible-hosting/smtp/stretch/docker-entrypoint.sh

54 lines
1.5 KiB
Bash
Raw Normal View History

#!/bin/sh
set -e
CONFDIR=/etc/exim4
# By default, send email directly to the recipient.
DC_EXIMCONFIG_CONFIGTYPE="internet"
# By default, only hosts on the private network can use the smart host (ie,
# only other containers, not the whole internet); a thin layer of protection
# in case port 25 is accidentally exposed to the public internet.
DC_RELAY_NETS="10.0.0.0/8;172.16.0.0/12;192.168.0.0/16"
# If RELAY_HOST has been set then switch to smart host configuration.
if [ "x$RELAY_HOST" != "x" ]; then
DC_EXIMCONFIG_CONFIGTYPE="satellite"
DC_SMARTHOST="$RELAY_HOST::${RELAY_PORT:-25}"
if [ "x$RELAY_USERNAME" != "x" ] && [ "x$RELAY_PASSWORD" != "x" ]; then
printf '%s\n' "*:$RELAY_USERNAME:$RELAY_PASSWORD" > "$CONFDIR/passwd.client"
fi
fi
# Set which hosts can use the smart host.
if [ "x$RELAY_NETS" != "x" ]; then
DC_RELAY_NETS="$RELAY_NETS"
fi
# Write exim configuration.
cat << EOF > "$CONFDIR/update-exim4.conf.conf"
dc_eximconfig_configtype='$DC_EXIMCONFIG_CONFIGTYPE'
dc_other_hostnames=''
dc_local_interfaces=''
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets='$DC_RELAY_NETS'
dc_smarthost='${DC_SMARTHOST:-}'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
EOF
# Set primary_hostname.
if [ "x$MAILNAME" != "x" ]; then
printf '%s\n' "$MAILNAME" > /etc/mailname
printf '%s\n' "MAIN_HARDCODE_PRIMARY_HOSTNAME=$MAILNAME" >> "$CONFDIR/update-exim4.conf.conf"
fi
# Apply exim configuration.
update-exim4.conf
exec "$@"