On Thu, Apr 23, 2009 at 06:47:53PM +1000, Steve Head wrote: > I've managed to reproduce the problem with an alias include file with > just two recipients (bypassing majordomo altogether). > > It appears to happen when an address included from a file is an alias to > a mailbox which is over quota. When it is not an alias, delivery > continues as I would have expected. > > ============= > Success mode: > /etc/postfix/aliases: > smh-test: :include:/home/majordomo/lists/smh-test > # lmtp responds 452 Over quota for mailbox aaasmh > > /home/majordomo/lists/smh-test: (identical for both) > s...@onthe.net.au > aaa...@infoxchange.net.au > > ============= > Failure mode: > /etc/postfix/aliases: > # Add aaasmh alias to over quota user. > # lmtp responds 452 Over quota, for mailbox shead2 > smh-test: :include:/home/majordomo/lists/smh-test > aaasmh: shead2 >
Yes, aliases are expanded from :include: files: src/local/recipient.c: /* * \user is special: it means don't do any alias or forward expansion. * ... */ ... /* * Otherwise, alias expansion has highest precedence. First look up the * full localpart, then the bare user. Obey the address extension * propagation policy. */ ... /* * Special case for mail locally forwarded or aliased to a different * local address. Resubmit the message via the cleanup service, so that * each recipient gets a separate delivery queue file status record in * the new queue file. The downside of this approach is that mutually * recursive .forward files cause a mail forwarding loop. Fortunately, * the loop can be broken by the use of the Delivered-To: message header. * * ... */ ... /* * Always forward recipients in :include: files. */ ... and "forget" that the address came from a ":include:" file. While local users encountered directly in the :include: file are delivered indirectly to a new queue file, aliases encountered in the :include: file are delivered in the same was as "top-level" aliases. src/local/alias.c: /* * DELIVERY POLICY * * Update the expansion type attribute, so we can decide if * deliveries to |command and /file/name are allowed at all. */ state.msg_attr.exp_type = EXPAND_TYPE_ALIAS; I am not sure whether this is intentional, the Sendmail compatibility constraints in local(8) are rather complex. Perhaps delaying alias expansion in :include: files would cause compatibility issues. I avoid the problem by making all domains (including $myorigin) non-local, local(8) delivery happens only after virtual(5) alias expansion results in a name listed in $mydestination, addresses used and seen by users are never local (have domains in $mydestination). With this, delivery to user addresses is always "indirect". Even giving the parent list an "owner-parent" alias will not work, because when the child-list has no "owner-child" alias, the parent "owner" property is cleared. src/local/alias.c: /* * WHERE TO REPORT DELIVERY PROBLEMS. * * Use the owner- alias if one is specified, otherwise reset the * owner attribute and use the include file ownership if we can. * Save the dict_lookup() result before something clobbers it. * * Don't match aliases that are based on regexps. */ -- Viktor. Disclaimer: off-list followups get on-list replies or get ignored. Please do not ignore the "Reply-To" header. To unsubscribe from the postfix-users list, visit http://www.postfix.org/lists.html or click the link below: <mailto:majord...@postfix.org?body=unsubscribe%20postfix-users> If my response solves your problem, the best way to thank me is to not send an "it worked, thanks" follow-up. If you must respond, please put "It worked, thanks" in the "Subject" so I can delete these quickly.