On 2/20/2004 9:41 AM, ned(_dot_)freed(_at_)mrochek(_dot_)com sent forth 
electrons to convey:
The main problem with the idea of relaxing the rules for reject to 
allow it to
generate DSNs or a 5xy error when running on an MTA is that a script will
behave in a fairly different way depending on whether you run it on an 
MUA or a
MTA. I really don't like this. And if you use a require tag to mean 
"change the
semantics of reject to refuse" and make it so the tag only works  on 
MTAs,
you're back to having to change the scripts when you move them around. 
Its just
generally cleaner to have two different actions here and have one of 
them be
MTA-only.
It's unavoidable for behavior to differ between an MUA and an MTA, if 
there is support for a "refuse" action.
What solution do you suggest to avoid a script either behaving 
differently or having to be different ?
You're almost saying you want both, but isn't that an impossibility?
A require tag that means "change the semantics of reject to refuse" 
seems to have the fewest drawbacks.
I think it's impossible for a script that uses a "refuse" action to be 
and behave the same on an MUA and an MTA.
This is still a problem with Cyrus' proposal: what would happen if 
"refuse smtp5" was attempted in a script on a MUA?  It still would 
require a change on a mail agent that couldn't do SMTP time refuses.
Here's an idea!
Perhaps "refuse" should have an "Am I an MTA capable of refusing?" test 
or constant?
Then users wouldn't have to add/remove the <require "refuse"> string 
when moving a script between MUA and MTA.