On Aug 10, 2004, at 12:16 PM, Cyrus Daboo wrote:
Hi Matthew,
--On Tuesday, August 10, 2004 11:36 AM -0700 Matthew Elvey
<matthew(_at_)elvey(_dot_)com> wrote:
There was some discussion at the lunch BOF last week about the
utility
of refuse.
Cool; wish I coulda been there/participated. Anyone take minutes?
(edit: I just heard that Alexey has notes he may share.)
The Jabber log is here:
<http://www.xmpp.org/ietf-logs/sieve(_at_)ietf(_dot_)xmpp(_dot_)org/2004-08-04.txt>
I will also attempt to write up a brief summary and post to the list
in the next day or so.
There was general consensus among the participants that it would be
better to extend reject to allow for SMTP refusal and DSN generation
rather than add a new command. Personally I prefer that approach -
but
the issue needs more discussion on the list.
We've probably been over this before, but can you explain in detail
why you think a new command is better than extending the behaviour of
reject?
So the idea is just a syntax change, yes?
A syntax change and also a relaxation of the requirement that 'reject'
must generate an MDN. i.e. if 'reject' occurs in an implementation
that runs SIEVE during SMTP then that implementation is allowed to do
either an SMTP error code, DSN or MDN as it feels appropriate. The
'reject' text specified by the user would be used for DSN or MDN text,
and we would add a new optional parameter for the SMTP error code and
descriptive error text.
I'm sorry I missed the discussion, as perhaps the issues I will repeat
below have been
already discussed.
If done as a relaxation of "reject", then one will need to be able to
handle the DNS and MDN cases differently due to the issue of character
sets and non-ASCII text in the reason text.
The SMTP text has to be ASCII only. The MDN text can potentially
contain non-ASCII text.
Being able to provide a reason in their "own" language (a language that
needs a non-ASCII
charset for proper representation) is very important to some users. I
can hardly stress
enough how important this is to some users and user communities!
So either: (1) A "relaxed" reject action would need another parameter
specifying whether
SMTP level rejection vs. later MDN should be performed, and then the
value of that
parameter would need to affect what sorts of characters are allowed in
the reason string, or
else (2) A "relaxed" reject action would need two parameters, one being
the SMTP rejection
text (ASCII only) and a second parameter would be the MDN text which
would allow
non-ASCII text. Or maybe some third approach I haven't thought of,
as long as it allows
non-ASCII text when non-ASCII text is legal, and uses ASCII text when
ASCII text is required.
To me, such approaches, complicating the reason text in a single action
("relaxed"
reject) seems uglier than adding a new action refuse that does the SMTP
rejection case and
leaving reject alone as the MDN rejection case. And I think that the
necessity for scripts
to be aware of the difference between SMTP rejection and MDN rejection
means that
they might as well be coded with different actions -- I think that
there is no real simplicity
benefit to using a single action.
What's the gist of the argument for the change? I can't think of any
strong arguments against the change; here are some less strong
arguments:
1)A normal extension (the current 'refuse') is a cleaner
implementation
in the sense that it's a standard extension - something that's well
understood, instead of something that makes the base Sieve RFC
'wrong' by
changing it.
My argument against a new command is that it makes scripts less
portable. By relaxing the restriction on reject the same script can
run efficiently on an implementation that runs at SMTP time and one
that runs at final delivery/LMTP time. It will also make switching
between such implementations easier as scripts will not have to be
changed to gain the benefits of SMTP time rejection.
The "portable script" argument only works for sites that are supporting
English-only (or
at best,
Western-European-languages-that-can-be-adequately-represented-in-ASCII-
only)
user communities.
For other sites that are already using reject with MDN text that is not
ASCII-only, their script
already isn't suitable for SMTP reject time interpretation. Such sites
are going to have to
care, in their scripts, about the different requirements for reason
text for SMTP rejections
vs. MDNs.
Regards,
Kristin
The question is whether there is ever a case where you would care what
type of reject behaviour is carried out: SMTP error, DSN or MDN. If
there is a requirement to allow users to explicitly state the type of
error that can easily be done as a parameter.
2)It's already written and debugged.
True, but I don't think switching to 'relaxed' reject would be a
significant change. I suspect the integration with SMTP is the biggest
issue.
Arguments for the change:
1)A change won't break anything, according to the URL below.
Have we done something like this (e.g. modify an action to accept a
special parameter flag) before?
Yes - the copy extension adds a :copy parameter to fileinto and
redirect. imapflags also extends fileinto and also keep.
--
Cyrus Daboo