forgot to mention: doing all of this on OpenBSD 5.1-current (GENERIC) #182: Fri Mar 30 13:51:26 MDT 2012
[email protected] (MERIGHI Marcus), 2012.04.14 (Sat) 21:30 (CEST): > hello Gilles, > > [email protected] (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

