mirror of
https://github.com/docker-mailserver/docker-mailserver.git
synced 2025-08-04 10:05:00 +02:00
This helper was to support an earlier ENV for SASL auth support. When extracting logic into individual helpers, it was assumed this was separate from relay support, which it appears was not the case. --- The `SASL_PASSWD` ENV is specified in tests but no longer used. There is no `external-domain.com` relay configured or tested against anywhere in the project. The ENV was likely used in tests prior to improved relay support that allowed for adding more than a single set of relay credentials. --- It likewise has no real relevance anywhere else outside of `relay.sh` as it's the only portion of code to operate with it. It's only relevant for SASL auth as an SMTP client, not the SMTP server (`smtpd`) SASL support that is delegated to Dovecot. Functionality has been completely migrated into `relay.sh` as a result. Documentation is poor for this ENV, it is unlikely in wide use? Should consider for removal. --- The ENV has been dependent upon `RELAY_HOST` to actually enable postfix to use `/etc/postfix/sasl_passwd`, thus not likely relevant in existing setups? --- Migrate `/etc/postfix/sasl_passwd` check from `tests.bats` as it belongs to relay tests.
82 lines
3.2 KiB
Bash
82 lines
3.2 KiB
Bash
load 'test_helper/common'
|
|
|
|
function setup_file() {
|
|
# We use a temporary config directory since we'll be dynamically editing
|
|
# it with setup.sh.
|
|
tmp_confdir=$(mktemp -d /tmp/docker-mailserver-config-relay-hosts-XXXXX)
|
|
cp -a test/config/relay-hosts/* "${tmp_confdir}/"
|
|
|
|
docker run -d --name mail_with_relays \
|
|
-v "${tmp_confdir}":/tmp/docker-mailserver \
|
|
-v "$(pwd)/test/test-files":/tmp/docker-mailserver-test:ro \
|
|
-e RELAY_HOST=default.relay.com \
|
|
-e RELAY_PORT=2525 \
|
|
-e RELAY_USER=smtp_user \
|
|
-e RELAY_PASSWORD=smtp_password \
|
|
--cap-add=SYS_PTRACE \
|
|
-e PERMIT_DOCKER=host \
|
|
-h mail.my-domain.com -t "${NAME}"
|
|
|
|
wait_for_finished_setup_in_container mail_with_relays
|
|
}
|
|
|
|
function teardown_file() {
|
|
docker rm -f mail_with_relays
|
|
rm -rf "${tmp_confdir}"
|
|
}
|
|
|
|
@test "checking relay hosts: default mapping is added from env vars" {
|
|
run docker exec mail_with_relays grep -e domainone.tld /etc/postfix/relayhost_map
|
|
assert_output -e '^@domainone.tld[[:space:]]+\[default.relay.com\]:2525$'
|
|
}
|
|
|
|
@test "checking relay hosts: default mapping is added from env vars for virtual user entry" {
|
|
run docker exec mail_with_relays grep -e domain1.tld /etc/postfix/relayhost_map
|
|
assert_output -e '^@domain1.tld[[:space:]]+\[default.relay.com\]:2525$'
|
|
}
|
|
|
|
@test "checking relay hosts: default mapping is added from env vars for new user entry" {
|
|
run docker exec mail_with_relays grep -e domainzero.tld /etc/postfix/relayhost_map
|
|
assert_output ''
|
|
|
|
run ./setup.sh -c mail_with_relays email add user0@domainzero.tld password123
|
|
run_until_success_or_timeout 10 docker exec mail_with_relays grep -e domainzero.tld /etc/postfix/relayhost_map
|
|
assert_output -e '^@domainzero.tld[[:space:]]+\[default.relay.com\]:2525$'
|
|
}
|
|
|
|
@test "checking relay hosts: default mapping is added from env vars for new virtual user entry" {
|
|
run docker exec mail_with_relays grep -e domain2.tld /etc/postfix/relayhost_map
|
|
assert_output ''
|
|
|
|
run ./setup.sh -c mail_with_relays alias add user2@domain2.tld user2@domaintwo.tld
|
|
run_until_success_or_timeout 10 docker exec mail_with_relays grep -e domain2.tld /etc/postfix/relayhost_map
|
|
assert_output -e '^@domain2.tld[[:space:]]+\[default.relay.com\]:2525$'
|
|
}
|
|
|
|
@test "checking relay hosts: custom mapping is added from file" {
|
|
run docker exec mail_with_relays grep -e domaintwo.tld /etc/postfix/relayhost_map
|
|
assert_output -e '^@domaintwo.tld[[:space:]]+\[other.relay.com\]:587$'
|
|
}
|
|
|
|
@test "checking relay hosts: ignored domain is not added" {
|
|
run docker exec mail_with_relays grep -e domainthree.tld /etc/postfix/relayhost_map
|
|
assert_failure 1
|
|
assert_output ''
|
|
}
|
|
|
|
@test "checking relay hosts: sasl_passwd exists" {
|
|
run docker exec mail_with_relays [ -f /etc/postfix/sasl_passwd ]
|
|
assert_success
|
|
}
|
|
|
|
@test "checking relay hosts: auth entry is added" {
|
|
run docker exec mail_with_relays /bin/sh -c 'cat /etc/postfix/sasl_passwd | grep -e "^@domaintwo.tld\s\+smtp_user_2:smtp_password_2" | wc -l'
|
|
assert_success
|
|
assert_output 1
|
|
}
|
|
|
|
@test "checking relay hosts: default auth entry is added" {
|
|
run docker exec mail_with_relays /bin/sh -c 'cat /etc/postfix/sasl_passwd | grep -e "^\[default.relay.com\]:2525\s\+smtp_user:smtp_password" | wc -l'
|
|
assert_success
|
|
assert_output 1
|
|
}
|