ietf-mta-filters
[Top] [All Lists]

Re: does vacation need to define what an address looks like?

2000-08-11 19:15:23


Tim Showalter wrote:

Hi.  Ken Murchison pointed out that vacation doesn't define what an
address is supposed to look like beyond a string.

More specifically, section 2.4.2.3 of [SIEVE] states that addresses must
be compliant with RFC822, but doesn't state what part(s) of RFC822
addresses are accepted (ie, 'address', 'mailbox', 'addr-spec', etc)

BTW, I think this same discussion applies to redirect addresses. 
Hopefully we can decide on a syntax that is consistent for both.

I am inclined to forbid comments, and define that an address is supposed
to be only the stuff between the <>s.  I would like to add verbage to
the draft and state that this is all that's allowed.  Ken thought the
phrase part might be interesting for GUIs, and I'm not sure how to
handle that.

My point on this was that some user-friendly script creation tool might
simply pull addresses out of an addressbook (LDAP, MySQL, proprietary,
etc) which most likely would contain a phrase (ie, "Sieve Mailing List
<ietf-mta-filters(_at_)imc(_dot_)org>").  Since this is what most modern MUAs 
do, I
don't think we want to prohibit this in scripts.

Should address allow for a phrase part, or worse, comments?

IMHO, Yes.

If so, I
believe only the useful parts (i.e., user(_at_)domain) should be significant.

For determining vacation behavior, I agree.

Ot's probably necessary to allow just user (i.e., no @domain) for
OSes/MTAs that have concepts of local mail.  I will probably make this a
SHOULD since it might not be appropriate for some implementations.

I agree.

If an address is syntactically or semantically bogus, I think the right
thing to do is to just ignore it, and we probably need text that says
that, too.

In the context of vacation, this might be a good thing.  But for
redirect, I think the script should be kicked out so that the user knows
that mail can't/won't be redirected to the address(es) in question.  The
problem with two different semantics however is that when parsing a
script we would have to determine address validity based on context.  So
I'd like to use the same semantics for both, if possible.

I'm looking for a second opinion, especially on the question as to
whether phrases should be allowed/forbidden.

FWIW, here's what cmu-sieve currently does based on preliminary
discussions Tim and I had before IETF.

-  The grammar for addresses allowed in vacation and redirect is the
following:

sieve-address   = addr-spec
                / phrase "<" addr-spec ">"

where addr-spec and phrase are as defined in 822.  Note that like 822,
this grammar does NOT prohibit comments.  For those without 822 handy,
this removes the groups and routes.

-  The syntax of the these addresses are checked at parse-time, and if
incorrect, causes the sieve engine to stop processing just like any
other syntax error.

-  When determining whether a message was addressed directly to the
recipient, only the addr-spec part of the :addresses are compared
against the To, Cc, and Bcc headers.

If we want to allow for local addresses as Tim mentions, I would simply
augment the grammar above as follows:

addr-spec       /= local-part


Personally, I think the CMU implementation (shameless plug) provides for
the most flexibility with the least amount of insanity.  This being
said, I'm willing to concede any and all points :^)

Ken
-- 
Kenneth Murchison     Oceana Matrix Ltd.
Software Engineer     21 Princeton Place
716-662-8973 x26      Orchard Park, NY 14127
--PGP Public Key--    http://www.oceana.com/~ken/ksm.pgp