On Tue, Oct 06, 2015 at 06:22:59PM +0200, Axel Luttgens wrote:

> > That's because you're not showing the full contents of the SQL
> > table.  If the order matters, the SQL table contains a conflicting
> > key.
> 
> Now that you say it, that could well be the problem.
> Indeed, augmenting my simplified example, I have something like this:
> 
>       from_address            login
>       ============            =====
>       jonh....@example.com    jdoe
>       i...@example.com        info
>       ed.mur...@example.com   emurphy
> 
>       # from_address          login
>       i...@example.com        emurphy
> 
> If I correctly interpret your comment, that would mean that once the db query 
> finds the production:
> 
>       i...@example.com => (info)
> 
> postfix would immediately conclude that user emurphy isn�t allowed to send
> with sender address "i...@example.com", without looking further in the
> hash table.

Correct, that's how "<mumble>_maps" features work in Postfix, first
match wins.

> Looking back at the documentation: "Tables will be searched in the specified 
> order until a match is found".
> 
> Word "match" is thus to be taken here in the narrowest sense: just a
> matching address, not a matching (address, login name) pair.

Of course, the table layer does not know how the data will be used.

> Moreover, when a matching address is found, the lookup chain is immediately 
> halted
> with a binary reject/accept decision.

That's a property of the sender<->login interface, unauthorized
logins are denied access.

-- 
        Viktor.

Reply via email to