Re: Three new drafts and a question

Kjetil Torgrim Homme <kjetilho@ifi.uio.no> Thu, 24 April 2003 23:08 UTC

Received: from above.proper.com (localhost [127.0.0.1]) by above.proper.com (8.12.8p1/8.12.8) with ESMTP id h3ON8rt2032559 for <ietf-mta-filters-bks@above.proper.com>; Thu, 24 Apr 2003 16:08:53 -0700 (PDT) (envelope-from owner-ietf-mta-filters@mail.imc.org)
Received: (from majordom@localhost) by above.proper.com (8.12.8p1/8.12.9/Submit) id h3ON8qGj032558 for ietf-mta-filters-bks; Thu, 24 Apr 2003 16:08:52 -0700 (PDT)
X-Authentication-Warning: above.proper.com: majordom set sender to owner-ietf-mta-filters@mail.imc.org using -f
Received: from pat.uio.no (pat.uio.no [129.240.130.16]) by above.proper.com (8.12.8p1/8.12.8) with ESMTP id h3ON8pt2032553 for <ietf-mta-filters@imc.org>; Thu, 24 Apr 2003 16:08:51 -0700 (PDT) (envelope-from kjetilho@ifi.uio.no)
Received: from ellifu.ifi.uio.no ([129.240.65.211]) by pat.uio.no with esmtp (Exim 2.12 #7) id 198ppk-0004Hc-00 for ietf-mta-filters@imc.org; Fri, 25 Apr 2003 01:08:52 +0200
Received: (from kjetilho@localhost) by ellifu.ifi.uio.no ; Fri, 25 Apr 2003 01:08:52 +0200 (MEST)
To: ietf-mta-filters@imc.org
Subject: Re: Three new drafts and a question
References: <20030423201405.GA1432@jutta.sendmail.com>
From: Kjetil Torgrim Homme <kjetilho@ifi.uio.no>
Date: Fri, 25 Apr 2003 01:08:52 +0200
In-Reply-To: <20030423201405.GA1432@jutta.sendmail.com>
Message-ID: <1rof2v1ojf.fsf@ellifu.ifi.uio.no>
Lines: 103
User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Sender: owner-ietf-mta-filters@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-mta-filters/mail-archive/>
List-ID: <ietf-mta-filters.imc.org>
List-Unsubscribe: <mailto:ietf-mta-filters-request@imc.org?body=unsubscribe>

[Jutta Degener]:
>
>   I sent out three new sieve drafts last week that may be of interest:
>   
>    <http://www.ietf.org/internet-drafts/draft-degener-sieve-copy-00.txt>
>     	
>   	fileinto :copy, redirect :copy -- keyword parameter that
>   	prevents cancelling the implicit "keep".

great idea!  a small typo, quotes are missing around ":copy" in

   Syntax:
        "fileinto" [:copy] <folder: string>
        "redirect" [:copy] <folder: string>

>    <http://www.ietf.org/internet-drafts/draft-degener-sieve-editheader-00.txt>
>     	Deleting, adding, and changing message header fields.


| 5. Action replaceheader
|    [...]
|    The field-name is mandatory and always matched as a
|    case-insensitive us-ascii string.

I take it you mean an exact match (:is) ?  the following shouldn't
work:

   replaceheader "Original-*" :newname "${1}"

but it would be interesting, eh?  actually, :matches could be the
mandatory match type for the field-name, I don't think it influences
the rest.  if you do

   replaceheader "Original-*" :newname "${1}" :matches "*foo" :newvalue "${1}"

this will _not_ work, since the value match will run after the field
name match, and thus destroy the contents of the back references.

btw, it is interesting that this extension requires variable
references in strings to be resolved inside the action itself.  it
makes me wonder if I should add a "Note to implementers" in the
variables draft about this.

| 7. Security Considerations
|    [...]
|    A sieve filter that removes headers may unwisely destroy
|    evidence about the path a header has taken.

perhaps tampering with "Received" should be explicitly forbidden.
(even with that restriction, the above warning must be kept.)

>    <http://www.ietf.org/internet-drafts/draft-degener-sieve-multiscript-00.txt>
>     	
>   	Sequential execution of (unrelated) sieve scripts by the
>   	environment.  A meta-feature -- it doesn't define new sieve
>   	language elements -- that's interesting in particular in
>   	contrast to Cyrus's "include" draft.

yes, I think they both are useful.  this is for site configuration,
"include" is for user convenience.

| 4. Locality of script actions
|    [...]
|    For sieve engines that implement the "variables" extension,
|    variable state is not carried over between scripts.

I think this is the right choice, since a set of scripts using
"include" should be considered _one_ script and variable state thus
carry over in that single script.  this also fits in with:

|    The "stop;" command ends the execution of its single
|    containing script, not of scripts in general.

so the "return" in Cyrus's draft is still useful.

I agree that a capability string is unnecessary.

>   There may or may not be another one for fileinto in the wings.
>   It's about Kjetil's open issue 0.3 b):
>   
>   Some implementations of "fileinto" create IMAP folders on the
>   fly if they don't exist; others don't.  (They redirect to
>   the inbox instead.)  Sieve doesn't proscribe either way.
>   
>   My own implementation used to only reuse existing folders; but now
>   that we're thinking about creating them on demand in conjunction
>   with the "variables" extension, I'm getting requests for a way for
>   a user to express their intention; something like
>   
>   	fileinto :create 	"If it doesn't exist, create it"
>   or
>   	fileinto :exists	"If it doesn't exist, redirect to INBOX."
>   
>   or something in that area.

it is unfortunate that behaviour is undefined.  both behaviours are
useful, so I think both should be in the draft.  well, the draft could
instead mandate fileinto to file into INBOX if the folder doesn't
exist and ":create" isn't specified.  this can also serve as a hint to
new implementers of Sieve.

-- 
Kjetil T.