As a new administrator of postfix I am not able to determine which of the two orders is correct from the existing documentation. An additional sentence would be very helpful. Perhaps, under canonical(5) section "TABLE SEARCH ORDER": "Each pattern is looked for across the entire set of tables in the map before moving on to the next pattern"
Regards, Todd > On Fr, 2016-09-16, at 08:33, Ondřej Lysoněk <olyso...@redhat.com> wrote: > > It just doesn't seem very clear to me. And one of our customers even got the > wrong impression about the search order. I think a sentence like the > following could be dropped in there somewhere: "First, a match of > 'user@domain' is searched for across all the listed tables in the order the > tables are listed. If no match is found, a match of 'user' is searched for in > all the listed tables, and so on". Or something less horrible. > > Ondra > > On 09/16/2016 12:51 PM, Wietse Venema wrote: >> canonical(5) section "TABLE SEARCH ORDER": >> >> "With lookups from indexed files such as DB or DBM, or from >> networked tables such as NIS, LDAP or SQL, patterns are tried >> in the order as listed below:" >> >> That really does what it says: try the first query. Try the second >> query. And so on. >> >> postconf(5) section "canonical_maps": >> >> "Tables will be searched in the specified order until a match >> is found. Note: these lookups are recursive." >> >> That really works as described. For each query, search the first >> table. Try the second table. And so on. >> >> The information is in two places, but it is not ambiguous. >> >> Are you proposing to mix these descriptions? >> >> Wietse >> >> Ond?ej Lyson?k: >> [ Charset windows-1252 converted... ] >>> Thank you! >>> >>> The documentation seems a bit ambiguous on this topic. After reading >>> canonical(5) and the canonical_maps section of postconf(5), I think it's >>> not clear which of the processing orders, mentioned in the first email, >>> it actually uses. Would you like me to write a patch for this? >>> >>> Ondra >>> >>> >>> On 09/15/2016 03:46 PM, Wietse Venema wrote: >>>> Ond?ej Lyson?k: >>>>> Hi, >>>>> >>>>> I need some help configuring canonical maps. >>>>> >>>>> Suppose you have two lookup tables listed in canonical_maps and each of >>>>> these tables uses all three pattern types (user@domain, user, @domain). >>>>> Now from what I see Postfix looks for a match when rewriting addresses >>>>> in the following order: >>>>> >>>>> Look for a match of: >>>>> - user@domain in the first table >>>>> - user@domain in the second table >>>>> - user in the first table >>>>> - user in the second table >>>>> - @domain in the first table >>>>> - @domain in the second table >>>>> >>>>> Is there a way to make Postfix do the lookup in the following order >>>>> instead? >>>>> >>>>> Look for a match of: >>>>> - user@domain in the first table >>>>> - user in the first table >>>>> - @domain in the first table >>>>> - user@domain in the second table >>>>> - user in the second table >>>>> - @domain in the second table >>>> >>>> That is not implemented. The code that generates partial queries >>>> is separate from the code that searches lookup tables (the same >>>> comes up with partial access(5) queries, or even header/body checks. >>>> Asking for this to be changed will not automatically make it happen. >>>> >>>> In the case of LDAP/SQL queries, you can enable the domain filter >>>> to avoid the domain-less queries. >>>> >>>> Wietse >>>> >>>