From f6844028763c0e6f43e3fb7462fe7127af26ebb7 Mon Sep 17 00:00:00 2001 From: Niklas Wolber Date: Mon, 13 Feb 2017 17:27:40 +0100 Subject: [PATCH 1/2] Add support recipient delimiters with aliases fixes #442 --- Makefile | 1 + target/postfix/main.cf | 2 +- target/postfix/master.cf | 2 ++ .../existing-alias-recipient-delimiter.txt | 12 ++++++++++++ test/tests.bats | 6 ++++++ 5 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 test/email-templates/existing-alias-recipient-delimiter.txt diff --git a/Makefile b/Makefile index 8eece1f9..cccb1c89 100644 --- a/Makefile +++ b/Makefile @@ -149,6 +149,7 @@ fixtures: docker exec mail /bin/sh -c "nc 0.0.0.0 25 < /tmp/docker-mailserver-test/email-templates/amavis-virus.txt" docker exec mail /bin/sh -c "nc 0.0.0.0 25 < /tmp/docker-mailserver-test/email-templates/existing-alias-external.txt" docker exec mail /bin/sh -c "nc 0.0.0.0 25 < /tmp/docker-mailserver-test/email-templates/existing-alias-local.txt" + docker exec mail /bin/sh -c "nc 0.0.0.0 25 < /tmp/docker-mailserver-test/email-templates/existing-alias-recipient-delimiter.txt" docker exec mail /bin/sh -c "nc 0.0.0.0 25 < /tmp/docker-mailserver-test/email-templates/existing-user.txt" docker exec mail /bin/sh -c "nc 0.0.0.0 25 < /tmp/docker-mailserver-test/email-templates/existing-user-and-cc-local-alias.txt" docker exec mail /bin/sh -c "nc 0.0.0.0 25 < /tmp/docker-mailserver-test/email-templates/existing-regexp-alias-external.txt" diff --git a/target/postfix/main.cf b/target/postfix/main.cf index 0a79adc7..d18b718c 100644 --- a/target/postfix/main.cf +++ b/target/postfix/main.cf @@ -58,7 +58,7 @@ smtpd_sasl_local_domain = $myhostname broken_sasl_auth_clients = yes # Mail directory -virtual_transport = lmtp:unix:/var/run/dovecot/lmtp +virtual_transport = dovecot virtual_mailbox_domains = /etc/postfix/vhost virtual_mailbox_maps = texthash:/etc/postfix/vmailbox virtual_alias_maps = texthash:/etc/postfix/virtual diff --git a/target/postfix/master.cf b/target/postfix/master.cf index f043ec48..db98c847 100644 --- a/target/postfix/master.cf +++ b/target/postfix/master.cf @@ -62,6 +62,8 @@ scalemail-backend unix - n n - 2 pipe mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} +dovecot unix - n n - - pipe + flags=DRhu user=docker:docker argv=/usr/lib/dovecot/deliver -f ${sender} -a ${recipient} -d ${user}@${nexthop} # diff --git a/test/email-templates/existing-alias-recipient-delimiter.txt b/test/email-templates/existing-alias-recipient-delimiter.txt new file mode 100644 index 00000000..9fd2953f --- /dev/null +++ b/test/email-templates/existing-alias-recipient-delimiter.txt @@ -0,0 +1,12 @@ +HELO mail.external.tld +MAIL FROM: user@external.tld +RCPT TO: alias1+test@localhost.localdomain +DATA +From: Docker Mail Server +To: Existing Local Alias +Date: Sat, 22 May 2010 07:43:25 -0400 +Subject: Test Message +This is a test mail. + +. +QUIT \ No newline at end of file diff --git a/test/tests.bats b/test/tests.bats index 1cd3538d..725a6dd7 100644 --- a/test/tests.bats +++ b/test/tests.bats @@ -272,6 +272,12 @@ load 'test_helper/bats-assert/load' assert_output 1 } +@test "checking smtp: delivers mail to existing alias with recipient delimiter" { + run docker exec mail /bin/sh -c "grep 'to=, orig_to=' /var/log/mail/mail.log | grep 'status=sent' | wc -l" + assert_success + assert_output 1 +} + @test "checking smtp: delivers mail to existing catchall" { run docker exec mail /bin/sh -c "grep 'to=, orig_to=' /var/log/mail/mail.log | grep 'status=sent' | wc -l" assert_success From a742b6ac5e9890a71a6b411f8a477c124fd9c451 Mon Sep 17 00:00:00 2001 From: Niklas Wolber Date: Mon, 13 Feb 2017 20:33:03 +0100 Subject: [PATCH 2/2] Adapt existing tests to #442 --- test/tests.bats | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/tests.bats b/test/tests.bats index 725a6dd7..bc4ba012 100644 --- a/test/tests.bats +++ b/test/tests.bats @@ -261,9 +261,9 @@ load 'test_helper/bats-assert/load' } @test "checking smtp: delivers mail to existing account" { - run docker exec mail /bin/sh -c "grep 'postfix/lmtp' /var/log/mail/mail.log | grep 'status=sent' | grep ' Saved)' | wc -l" + run docker exec mail /bin/sh -c "grep 'postfix/pipe' /var/log/mail/mail.log | grep 'status=sent (delivered via dovecot service)' | wc -l" assert_success - assert_output 6 + assert_output 7 } @test "checking smtp: delivers mail to existing alias" { @@ -293,7 +293,7 @@ load 'test_helper/bats-assert/load' @test "checking smtp: user1 should have received 5 mails" { run docker exec mail /bin/sh -c "ls -A /var/mail/localhost.localdomain/user1/new | wc -l" assert_success - assert_output 5 + assert_output 6 } @test "checking smtp: rejects mail to unknown user" {