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/test/config/dovecot.cf b/test/config/dovecot.cf index 35279f28..47e76619 100644 --- a/test/config/dovecot.cf +++ b/test/config/dovecot.cf @@ -1 +1,2 @@ mail_max_userip_connections = 69 +recipient_delimiter = ~ diff --git a/test/config/postfix-main.cf b/test/config/postfix-main.cf index 37155392..e5f3d0fe 100644 --- a/test/config/postfix-main.cf +++ b/test/config/postfix-main.cf @@ -1,2 +1,3 @@ +recipient_delimiter = ~ max_idle = 600s readme_directory = /tmp 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..39052986 --- /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 With Delimiter +Date: Sat, 22 May 2010 07:43:25 -0400 +Subject: Test Message +This is a test mail. + +. +QUIT diff --git a/test/tests.bats b/test/tests.bats index 1cd3538d..66a7bd3b 100644 --- a/test/tests.bats +++ b/test/tests.bats @@ -151,7 +151,7 @@ load 'test_helper/bats-assert/load' run docker exec mail_with_postgrey /bin/sh -c "sed -ie 's/reject_unauth_pipelining.*reject_unknown_recipient_domain,$//g' /etc/postfix/main.cf" run docker exec mail_with_postgrey /bin/sh -c "sed -ie 's/reject_rbl_client.*inet:127\.0\.0\.1:10023$//g' /etc/postfix/main.cf" run docker exec mail_with_postgrey /bin/sh -c "sed -ie 's/smtpd_recipient_restrictions = /smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10023/g' /etc/postfix/main.cf" - + run docker exec mail_with_postgrey /bin/sh -c "/etc/init.d/postfix reload" run docker exec mail_with_postgrey /bin/sh -c "nc 0.0.0.0 25 < /tmp/docker-mailserver-test/email-templates/postgrey.txt" sleep 5 #ensure that the information has been written into the log @@ -263,7 +263,7 @@ 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" assert_success - assert_output 6 + assert_output 7 } @test "checking smtp: delivers mail to existing alias" { @@ -272,6 +272,15 @@ 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 + + run docker exec mail /bin/sh -c "grep 'to=' /var/log/mail/mail.log | grep 'status=bounced'" + assert_failure +} + @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 @@ -284,10 +293,10 @@ load 'test_helper/bats-assert/load' assert_output 1 } -@test "checking smtp: user1 should have received 5 mails" { +@test "checking smtp: user1 should have received 6 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" {