diff --git a/Makefile b/Makefile index 3355ed04..b4e3d339 100644 --- a/Makefile +++ b/Makefile @@ -96,7 +96,7 @@ run: -e PERMIT_DOCKER=network \ -e DMS_DEBUG=0 \ -e OVERRIDE_HOSTNAME=mail.my-domain.com \ - -h mail.my-domain.com \ + -h unknown.domain.tld \ -t $(NAME) sleep 15 docker run -d --name mail_fail2ban \ diff --git a/target/start-mailserver.sh b/target/start-mailserver.sh index f3ad1eff..abd22b18 100644 --- a/target/start-mailserver.sh +++ b/target/start-mailserver.sh @@ -23,7 +23,6 @@ DEFAULT_VARS["ENABLE_SASLAUTHD"]="${ENABLE_SASLAUTHD:="0"}" DEFAULT_VARS["SMTP_ONLY"]="${SMTP_ONLY:="0"}" DEFAULT_VARS["DMS_DEBUG"]="${DMS_DEBUG:="0"}" DEFAULT_VARS["OVERRIDE_HOSTNAME"]="${OVERRIDE_HOSTNAME}" -DEFAULT_VARS["POSTMASTER_ADDRESS"]="${POSTMASTER_ADDRESS:="postmaster@domain.com"}" DEFAULT_VARS["POSTSCREEN_ACTION"]="${POSTSCREEN_ACTION:="enforce"}" DEFAULT_VARS["SPOOF_PROTECTION"]="${SPOOF_PROTECTION:="0"}" DEFAULT_VARS["TLS_LEVEL"]="${TLS_LEVEL:="modern"}" @@ -416,6 +415,9 @@ function setup() { function _setup_default_vars() { notify 'task' "Setting up default variables [$FUNCNAME]" + # update POSTMASTER_ADDRESS - must be done done after _check_hostname() + DEFAULT_VARS["POSTMASTER_ADDRESS"]="${POSTMASTER_ADDRESS:=postmaster@${DOMAINNAME}}" + for var in ${!DEFAULT_VARS[@]}; do echo "export $var=${DEFAULT_VARS[$var]}" >> /root/.bashrc [ $? != 0 ] && notify 'err' "Unable to set $var=${DEFAULT_VARS[$var]}" && kill -15 `cat /var/run/supervisord.pid` && return 1 diff --git a/test/tests.bats b/test/tests.bats index b02e0802..27c6f790 100644 --- a/test/tests.bats +++ b/test/tests.bats @@ -15,7 +15,7 @@ load 'test_helper/bats-assert/load' } @test "checking configuration: hostname/domainname override: check container hostname is applied correctly" { - run docker exec mail_override_hostname /bin/bash -c "hostname | grep mail.my-domain.com" + run docker exec mail_override_hostname /bin/bash -c "hostname | grep unknown.domain.tld" assert_success } @@ -1489,11 +1489,14 @@ load 'test_helper/bats-assert/load' } @test "checking dovecot: postmaster address" { - run docker exec mail /bin/sh -c "grep 'postmaster_address = postmaster@domain.com' /etc/dovecot/conf.d/15-lda.conf" + run docker exec mail /bin/sh -c "grep 'postmaster_address = postmaster@my-domain.com' /etc/dovecot/conf.d/15-lda.conf" assert_success run docker exec mail_with_ldap /bin/sh -c "grep 'postmaster_address = postmaster@localhost.localdomain' /etc/dovecot/conf.d/15-lda.conf" assert_success + + run docker exec mail_override_hostname /bin/sh -c "grep 'postmaster_address = postmaster@my-domain.com' /etc/dovecot/conf.d/15-lda.conf" + assert_success } @test "checking spoofing: rejects sender forging" {