Hi all,

I’m having some issues figuring out if this is possible and then if so, how to 
approach it. This isn’t for production use, just some internal testing and 
experimentation...

My goal is to set a relay destination based on the SASL username used for smtp 
authentication. So if I have users “testsmtp1”, “testsmtp2”, “testsmtp3”, I’d 
like to select the relay destination based on that username, NOT on the 
envelope From.

I do have this version of it working, which does use the envelope From.

In main.cf:

# enable sasl auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_authenticated_header = yes

# map of sender to transport
sender_dependent_relayhost_maps = hash:/usr/local/etc/postfix/relay_by_sender

In the "relay_by_sender” map file:

testsmtp1       qmqprelay1
testsmtp2       qmqprelay2
testsmtp3       qmqprelay3

And in master.cf, the custom transports:

qmqprelay1 unix  -       n       n       -       -       pipe size=250000 
user=qmqp argv=/usr/local/adm/bin/sendqmqp.pl 10.9.8.200:631 ${sender} 
${recipient}
qmqprelay2 unix  -       n       n       -       -       pipe size=250000 
user=qmqp argv=/usr/local/adm/bin/sendqmqp.pl 10.9.8.200:632 ${sender} 
${recipient}
qmqprelay3 unix  -       n       n       -       -       pipe size=250000 
user=qmqp argv=/usr/local/adm/bin/sendqmqp.pl 10.99.8.200:633 ${sender} 
${recipient}

In the above configuration, when I connect to relay using any of those 
accounts, there is no match and the default transport is used.

If I add an entry to match the From address, that works fine, as expected.

So can I do this, but use the SASL username?

Thanks,

Charles

Reply via email to