Skip to content

Commit bc0d115

Browse files
fix: sender relay credentials lookup by domain (#193)
In smtp_sasl_password_maps the search key has the form '@Domain' when the lookup occurs by domain. Ensure a "@" is prepended to the rule_subject value when compared to the '@Domain' form. Refs NethServer/dev#7551
1 parent c348b0a commit bc0d115

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

postfix/etc/postfix/relaycredentials.cf

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@ dbpath = /srv/pcdb.sqlite
77
query = SELECT FORMAT('%%s:%%s', username, password) AS credentials
88
FROM relayrules
99
WHERE enabled = 1 AND (
10-
(rule_subject = '%s' AND rule_type = 'sender')
10+
(rule_type = 'sender' AND
11+
CASE INSTR('%s', '@')
12+
WHEN 1 THEN ('@' || rule_subject) = '%s'
13+
ELSE rule_subject = '%s'
14+
END
15+
)
1116
OR ('%s' IN (FORMAT('[%%s]:%%s', host, port), FORMAT('[%%s]', host)) AND rule_type != 'sender')
1217
) AND username != ''
1318
LIMIT 1

tests/50__smtp/00__relay_rules.robot

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ Sender domain rule has less priority than address match
2727
... credentials=u3:Nethesis,1234
2828
Should be relayed via SMTP port=10002 smtp_user=${EMPTY}
2929

30+
Sender domain rule provides the correct credentials
31+
[Tags] bug bug-7551
32+
Send SMTP message to somebody@wildcard.test
33+
... from=noreply@addusers.test
34+
... credentials=u3:Nethesis,1234
35+
Should be relayed via SMTP port=10002 smtp_user=usr_bug7551
36+
3037
Recipient domain rule has less priority than address match
3138
Send SMTP message to someone@rcptrule.test
3239
... from=u1@inbound.test
@@ -46,5 +53,6 @@ Add relay rules
4653
Add relay rule sender u1@inbound.test 127.0.0.1 10002 usr_u1
4754
Add relay rule sender u3@inbound.test 127.0.0.1 10002 usr_u3
4855
Add relay rule recipient rcptrule.test 127.0.0.1 10003 ${EMPTY}
56+
Add relay rule sender addusers.test 127.0.0.1 10002 usr_bug7551
4957
Add relay rule sender g1@inbound.test 127.0.0.1 10002 usr_g1
5058
Add relay rule recipient dude@rcptrule.test 127.0.0.1 10004 usr_relay

0 commit comments

Comments
 (0)