hello Gilles, gil...@poolp.org (Gilles Chehade), 2012.04.14 (Sat) 20:18 (CEST): > On Sat, Apr 14, 2012 at 07:48:24PM +0200, MERIGHI Marcus wrote: > > hello (opensmtpd-) folks, > > > > I think OpenSMTPd aborts delivery to multiple aliased recipients as soon > > as a delivery attempt returns non-zero. > > I consider this unwanted: a super user defined delivery list in > > aliases(5) is not applied if some foolish luser messes up her/his > > .forward. > > > > How I found out about this: > > > > in aliases(5): > > foobar: b_user, a_user > > > > (Verbose log shows this get's reordered to a_user, b_user. I'm not sure > > that is good.)
I was wrong there; the alias expansion is printed in reordered fashion to the log; delivery is attempted in the specified order. > > forward(5) of a_user (that's the one tried first) > > |/usr/local/bin/procmail > > > > after that delivery to b_user is not attempted. If I change > > a_user's forward(5) to > > |/usr/local/bin/procmail; exit 0 > > > > delivery to b_user is attempted. > > This is actually a known issue which is in my todo. that's good to know. Thanks (over and over again)! > What we do currently is generate a list of valid recipients and a list of > failed recipients. When we end the aliases expansion with a failed list > that's not empty we reject the entire batch. further testing of my workaround ``|/usr/local/bin/procmail; exit 0'' showed that it works for two recipients (expanded from aliases) but not for three; a test of the shell thingy: sudo su -l someuser -c "cat /somepath/testmail | /bin/sh -c \ '/usr/local/bin/procmail || print FAIL && print SUCC'" prints "SUCC". Therefore I see no real error condition there? The further testing was somewhat confusing: ordering of recipients in aliases(5) matters; also, which recipient got the ``|| exit 0'' or ``; exit 0'' in his/her forward(5). Up to two recipients, it seems, it needs to be the second rcpt; with more recipients I never saw a delivery to all of them, no matter who had the ``|| exit 0'' after the procmail call (or all of them). Tests with ``|/bin/cat > /dev/null'' in forward(5) made no difference. Maybe it's just that I'm tired. > In practice, we should simply iterate over the failed list and generate a > bounce, however we are unhappy with the current bounce code. Don't worry, > it will be fixed soon as I started playing with OpenSMTPD powered mailing > lists ;-) Please elaborate on that! Do you mean just having smtpd deliver to lots of recipients via aliases or something beyond that? Thanks, Marcus