Victor Duchovni: > On Thu, Apr 23, 2009 at 10:49:50AM -0400, Wietse Venema wrote: > > > > We could call this feature frozen_owner_alias, and make the new > > > default "yes" (i.e. don't lose the owner-parent alias when delivering > > > to an alias without owner-child alias). > > > > > > This is similar in spirit to "frozen_delivered_to = yes" which > > > was introduced to stop undesirable behavior that resulted from > > > attempts to accurately attribute mail delivery actions. > > > > This breaks compatibility with some Sendmail versions. Specifically, > > when alias "foo" includes "foo" in its expansion, Postfix must > > deliver to the user "foo" instead of creating a mail loop (which > > is what frozen_delivered_to=yes would cause). > > We could reserve the special treatment just for the current recipient > address (that would trigger loop detection) and deliver everything > else indirectly: > > Safe to deliver to "user" indirectly, because "user" is not "foo": > > aliases: > foo: :include:/some/path > bar: user > > /some/path > bar > > Must deliver to "user" directly, because "user" is the top-level > recipient: > > aliases: > user: :include:/some/path > bar: user > > /some/path > bar
This makes the meaning of an alias dependent on the context in which it is used. Sending to b...@mydestination or sending to the same address via a distribution list that includes it. Of course, silently inheriting an owner atribute also changes the meaning of an alias. This is not the alias problem that I tried to solve: when alias "foo" contains "foo", deliver to "foo". root: root, joe This sends mail for root to both root and joe. Originally what I had to solve also included scenarios like: when ~user/.forward includes first.last, and first.last is aliased to "user", deliver to the user instead of looping. Sendmail solved the problem by expanding first, and then storing all the destinations in a queue file (including shell commands etc.). Postfix tries to emulate this by doing the expansion in-memory, except then owner-alias is defined. Another possibility is to always deliver the addresses in aliases indirectly, and to accompany the new queue file's recipient record with its expansion history, so that the next delivery agent can determine (in the above example) whether to expand "root" or to deliver to "root". This should not be confused with the duplicate elimination filter. Wietse