Commit 1451add680ec47993b8066f3c8afe7370c45b717
1 parent
d6f15b8b
Exists in
master
and in
79 other branches
Deliver non-list mail locally on integration
This breaks a mail loop that would happen when you wrote to anything@softwarepublico.*
Showing
3 changed files
with
25 additions
and
3 deletions
Show diff stats
... | ... | @@ -0,0 +1,5 @@ |
1 | +execute 'postfix::set_as_final_destination' do | |
2 | + command "postconf mydestination='$myhostname, localhost.$mydomain, localhost, #{node['config']['external_hostname']}'" | |
3 | + not_if "grep mydestination.*#{node['config']['external_hostname']} /etc/postfix/main.cf" | |
4 | + notifies :reload, 'service[postfix]' | |
5 | +end | ... | ... |
roles/integration_server.rb
... | ... | @@ -5,6 +5,7 @@ description "Server that runs COLAB (user authentication, visual integration and |
5 | 5 | # point in the future |
6 | 6 | run_list *[ |
7 | 7 | 'recipe[basics::nginx]', |
8 | + 'recipe[email::destination]', | |
8 | 9 | 'recipe[mailman-api]', |
9 | 10 | 'recipe[mailman]', |
10 | 11 | 'recipe[mailman::webui]', | ... | ... |
test/mail_relay_test.sh
1 | 1 | . $(dirname $0)/test_helper.sh |
2 | 2 | |
3 | -test_inbound_mail() { | |
3 | +test_inbound_list_mail() { | |
4 | 4 | run_on integration create-list mylist foo@example.com |
5 | 5 | |
6 | 6 | # sending FROM EMAIL RELAY HOST |
... | ... | @@ -10,7 +10,23 @@ test_inbound_mail() { |
10 | 10 | |
11 | 11 | run_on integration remove-list mylist |
12 | 12 | |
13 | - assertEquals 'Message arrives at the mailing list' '1' "$messages" | |
13 | + assertEquals 'Message did not arrive at the mailing list' '1' "$messages" | |
14 | +} | |
15 | + | |
16 | +test_inbound_regular_mail() { | |
17 | + messages_before=$(run_on integration sudo grep -c '^From.*foo@example.com' /var/mail/root) | |
18 | + run_on email send-email foo@example.com root@softwarepublico.dev | |
19 | + n=0 | |
20 | + while [ $n -lt 10 ]; do | |
21 | + sleep 1 | |
22 | + messages=$(run_on integration sudo grep -c '^From.*foo@example.com' /var/mail/root) | |
23 | + if [ "$messages" -gt "$messages_before" ]; then | |
24 | + return | |
25 | + else | |
26 | + n=$(($n + 1)) | |
27 | + fi | |
28 | + done | |
29 | + fail "didn't receive incoming email" | |
14 | 30 | } |
15 | 31 | |
16 | 32 | _test_outbound_email() { |
... | ... | @@ -24,7 +40,7 @@ _test_outbound_email() { |
24 | 40 | |
25 | 41 | run_on email clear-email-queue |
26 | 42 | |
27 | - assertEquals 'Message delivered through relay' 1 "$messages" | |
43 | + assertEquals 'Message was not delivered through relay' 1 "$messages" | |
28 | 44 | } |
29 | 45 | |
30 | 46 | test_outbound_email_integration() { | ... | ... |