On Mon, Mar 29, 2021 at 12:35:39AM +0200, Gaëtan DEPRÉ wrote: > I’d like x...@mydomain.dom being able to send mails from y...@mydomain.dom. > > The actual error is : 5.7.1 y...@domain.dom: Sender address rejected: not > owned by user x...@domain.dom
Have you tested your unionmap? For a minimal example: $ postmap -q foo "unionmap:{static:bar,static:baz}" bar,baz In your case the lookup key is the sender address, so it would be $ postmap -q y...@mydomain.dom "..." where "..." is detailed below. > I added this line in master.cf (just before mua restrictions) : > -o > smtpd_sender_login_maps=unionmap:{mysql:/etc/postfix/sql/sender-login-maps.cf,mysql:/etc/postfix/sql/sender_delegate_checks.cf} It is far better to write the definion in main.cf, via: master.cf: -o smtpd_sender_login_maps=$mua_sender_login_maps main.cf: mua_sender_login_maps = unionmap:{mysql:/etc/postfix/sql/sender-login-maps.cf,mysql:/etc/postfix/sql/sender_delegate_checks.cf} making sure to add the override to *all* the submission-related master.cf entries (port 587 and 465 if both are in use). In which case you'd write: $ postmap -q y...@mydomain.dom "$(postconf -xh mua_sender_login_maps)" but, given that the map files contain passwors, perhaps they're not world-readable. If so, run the command as "root". For bonus points, with the submission entry assumed to be "submission/inet", you could run either or both of: $ postmap -q y...@mydomain.dom "$(postconf -Phx submission/inet/smtpd_sender_login_maps)" $ postmap -q y...@mydomain.dom "$(postconf -Phx smtps/inet/smtpd_sender_login_maps)" and report the output. > query = SELECT email as user FROM virtual_users WHERE email='%s' > query = SELECT owned as user FROM virtual_delegation WHERE owner='%s' > > MariaDB [mailserver]> select * from virtual_delegation; > +----+----------------------+-------------------------+ > | id | owner | owned | > +----+----------------------+-------------------------+ > | 1 | x...@domain.dom | y...@domain.dom | > +----+----------------------+-------------------------+ The second query is backwards, it should be: query = SELECT owner as user FROM virtual_delegation WHERE owned='%s' -- Viktor.