
From alexey.melnikov@isode.com  Sun Jun  3 12:32:07 2012
Return-Path: <alexey.melnikov@isode.com>
X-Original-To: sieve@ietfa.amsl.com
Delivered-To: sieve@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 507C221F861D for <sieve@ietfa.amsl.com>; Sun,  3 Jun 2012 12:32:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -100.915
X-Spam-Level: 
X-Spam-Status: No, score=-100.915 tagged_above=-999 required=5 tests=[AWL=0.288, BAYES_00=-2.599, MIME_QP_LONG_LINE=1.396, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6qSmOj7-7GP0 for <sieve@ietfa.amsl.com>; Sun,  3 Jun 2012 12:32:06 -0700 (PDT)
Received: from rufus.isode.com (cl-125.lon-03.gb.sixxs.net [IPv6:2a00:14f0:e000:7c::2]) by ietfa.amsl.com (Postfix) with ESMTP id 6D53921F861C for <sieve@ietf.org>; Sun,  3 Jun 2012 12:32:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1338751924; d=isode.com; s=selector; i=@isode.com; bh=Xj7SeO74KDaZ8obrkRzxmt+Ur7zj8bZu/aH3eevfBP0=; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version: In-Reply-To:References:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description; b=KpHkqA8ud3y6WKw0T4nSZh/lQAUPNhdPLJl8UTm5xjUiuO2nXcbBlrh7dt9X7voP5I0+nJ VlVx7ZwZbj0knAS/1IywJ11KKS/lLEsyemZJtTHhylAVmmaS0Li9NrVkzbbdOaJqXzMKmO 3OWh6bLK0ugjlJ4miYdsDcmQ4WzniJ8=;
Received: from [188.29.202.120] (188.29.202.120.threembb.co.uk [188.29.202.120])  by rufus.isode.com (submission channel) via TCP with ESMTPSA  id <T8u7sgAE42hs@rufus.isode.com>; Sun, 3 Jun 2012 20:32:04 +0100
References: <B5057302A66EA30CEE78BCB9@caldav.corp.apple.com>
In-Reply-To: <B5057302A66EA30CEE78BCB9@caldav.corp.apple.com>
Message-Id: <4F996C12-904C-47AC-9228-F56D4F5475CF@isode.com>
X-Mailer: iPad Mail (9B206)
From: Alexey Melnikov <alexey.melnikov@isode.com>
Date: Sun, 3 Jun 2012 20:31:58 +0100
To: Cyrus Daboo <cyrus@daboo.name>
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=us-ascii
Cc: "sieve@ietf.org" <sieve@ietf.org>
Subject: Re: [sieve] WGLC: draft-ietf-sieve-imap-sieve-04.txt
X-BeenThere: sieve@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: SIEVE Working Group <sieve.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sieve>, <mailto:sieve-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sieve>
List-Post: <mailto:sieve@ietf.org>
List-Help: <mailto:sieve-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sieve>, <mailto:sieve-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Jun 2012 19:32:07 -0000

On 30 May 2012, at 21:30, Cyrus Daboo <cyrus@daboo.name> wrote:

> Hi folks,
> I am starting a working group last call on draft-ietf-sieve-imap-sieve-04.=
txt. This is the last document this working group has on its plate and once f=
inished, we intend to shut down the working group.
>=20
> The last call on draft-ietf-sieve-imap-sieve-04.txt will run for two weeks=
. Please review this draft and send comments to the list. This document has b=
een around for a while, so if you have done a detailed review before, just c=
hecking the changes now should be sufficient. In any case, the chairs want t=
o heard from everyone who has done a review and those who have decided for o=
r against doing an implementation of this in the near future.

I have reviewed the latest version and happy for this to be published as a P=
roposed Standard.


From aaron@serendipity.cx  Fri Jun 15 18:09:27 2012
Return-Path: <aaron@serendipity.cx>
X-Original-To: sieve@ietfa.amsl.com
Delivered-To: sieve@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7E7D111E80F6 for <sieve@ietfa.amsl.com>; Fri, 15 Jun 2012 18:09:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -100.443
X-Spam-Level: 
X-Spam-Status: No, score=-100.443 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, IP_NOT_FRIENDLY=0.334, J_CHICKENPOX_54=0.6, J_CHICKENPOX_56=0.6, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NHrdFOjHjyzD for <sieve@ietfa.amsl.com>; Fri, 15 Jun 2012 18:09:26 -0700 (PDT)
Received: from slice.serendipity.cx (slice.serendipity.cx [67.23.2.90]) by ietfa.amsl.com (Postfix) with ESMTP id B886B11E807F for <sieve@ietf.org>; Fri, 15 Jun 2012 18:09:26 -0700 (PDT)
Received: from mail-gh0-f172.google.com (mail-gh0-f172.google.com [209.85.160.172]) by slice.serendipity.cx (Postfix) with ESMTPSA id 37D6294002 for <sieve@ietf.org>; Fri, 15 Jun 2012 18:08:00 -0700 (PDT)
Received: by ghbg16 with SMTP id g16so3088257ghb.31 for <sieve@ietf.org>; Fri, 15 Jun 2012 18:09:19 -0700 (PDT)
Received: by 10.236.185.38 with SMTP id t26mr10329924yhm.92.1339808959056; Fri, 15 Jun 2012 18:09:19 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.147.113.19 with HTTP; Fri, 15 Jun 2012 18:08:58 -0700 (PDT)
In-Reply-To: <B5057302A66EA30CEE78BCB9@caldav.corp.apple.com>
References: <B5057302A66EA30CEE78BCB9@caldav.corp.apple.com>
From: Aaron Stone <aaron@serendipity.cx>
Date: Fri, 15 Jun 2012 18:08:58 -0700
Message-ID: <CAEdAYKX5LUC00ztFvOaM05cMXTQ0xr5bDuejHdoVL1CXZXoc=w@mail.gmail.com>
To: Barry Leiba <barryleiba@computer.org>
Content-Type: text/plain; charset=ISO-8859-1
Cc: sieve@ietf.org
Subject: Re: [sieve] WGLC: draft-ietf-sieve-imap-sieve-04.txt
X-BeenThere: sieve@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: SIEVE Working Group <sieve.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sieve>, <mailto:sieve-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sieve>
List-Post: <mailto:sieve@ietf.org>
List-Help: <mailto:sieve-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sieve>, <mailto:sieve-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Jun 2012 01:09:27 -0000

Review with my contributor hat on:

Major:
RFC 5464 says:
   All entries MUST have either "/shared" or "/private" as a prefix.
   Entry names are case-insensitive.

I think that means our metadata key should be
"/shared/imapsieve/script". Text below implements this change, but
please double-check.

Minor and Nits:

Global nit: perform regex s/section (\d+)/Section $1/g

Section 1.2: remove extra comma
OLD
  At times other than message delivery, delivery "envelope"
  information, might not be available.
NEW
  At times other than message delivery, delivery "envelope"
  information might not be available.

Section 2.1: feels like there should be a MUST in here somewhere?

OLD
   The corresponding Sieve implementation uses the Sieve capability
   string "imapsieve", and Sieve scripts that depend upon the IMAP
   events MUST include that string in their "required" lists.
NEW
   The corresponding Sieve implementation MUST provide the "imapsieve"
   capability string (see [RFC5228] Section 6.1), and Sieve scripts that depend
   upon IMAP events MUST include that string in their "required" lists.

Section 2.2: Add a MUST regarding individual script execution, because
I missed this requirement the first two times I read through it:
OLD
   If more than one message is affected at the same time, each message
   triggers the execution of a Sieve script separately.  The scripts MAY
   be run in parallel.
NEW
   If more than one message is affected at the same time, each message
   MUST trigger execution of the Sieve script separately.  The scripts MAY
   be run in parallel.

Section 2.3.1: Convert from prose to list, and rephrase to include a
lot of MUSTs
OLD
   When an applicable event occurs on an IMAP mailbox, if there is an
   IMAP metadata entry named "/IMAPSieve/Script" for the mailbox, that
   entry is used.  If there is not, but there is an IMAP metadata entry
   named "/IMAPSieve/Script" for the server, that entry is used
   (providing a way to define a global script for all mailboxes on a
   server).  If neither entry exists, then no script will be invoked.
NEW
   When an applicable event occurs, the IMAP server MUST inspect
   the following metadata entries, in order, to determine which Sieve
   script to invoke:
   o "/IMAPSieve/Script" for the target mailbox,
   o "/IMAPSieve/Script" for the server.
   If neither entry exists, then no script will be invoked.

MINOR: I just realized that there might be confusion over an "empty"
script name. I propose that a global server script, and a mailbox
script with no value, means "run this script for every mailbox, except
this one". If that's OK with you, I propose this text immediately
following the text above:
NEW
    If the script name is an empty string, the server MUST NOT
    inspect any further metadata entries (this allows a user to specify
    a global server script, but disable it for specific mailboxes).

Given the above, and the Major issue at the top, I think this
paragraph can be removed:

OLD
   If an "/IMAPSieve/Script" metadata entry was selected above, the
   shared value of that metadata name (its "value.shared" attribute)
   MUST be the name of the Sieve script that will be invoked in response
   to the IMAP event.  Note that only the value.shared attribute is
   used; any value.priv attributes are ignored.
NEW
   [nothing]

The registration template in RFC 5464 is changed since early drafts, therefore:

Section 7.4:
OLD
   To: iana@iana.org
   Subject: IMAP METADATA Registration
   Please register the following IMAP METADATA item:
   [x] Entry           [ ] Attribute
   [x] Mailbox         [ ] Server
   Name: /IMAPSieve/Script
   Description: This entry name is used to define mailbox metadata
   associated with IMAP events in Sieve for the associated mailbox.
   Specifically, this specifies the Sieve script that will be invoked
   when IMAP events occur on the specified mailbox.
   Content-type: text/plain; charset=utf-8
   RFC number: [[this RFC]]
   Contact address: Sieve mailing list <sieve@ietf.org>
NEW
       To: iana@iana.org
       Subject: IMAP METADATA Entry Registration

       Type:         Mailbox
       Name:         /shared/imapsieve/script
       Description:  This entry name is used to define mailbox metadata
   associated with IMAP events in Sieve for the associated mailbox.
   Specifically, this specifies the Sieve script that will be invoked
   when IMAP events occur on the specified mailbox.
       Content-type: text/plain; charset=utf-8
       RFC Number:   [this RFC]
       Contact:      Sieve mailing list <sieve@ietf.org>

Section 7.5:
OLD
  To: iana@iana.org
   Subject: IMAP METADATA Registration
   Please register the following IMAP METADATA item:
   [x] Entry           [ ] Attribute
   [ ] Mailbox         [x] Server
   Name: /IMAPSieve/Script
   Description: This entry name is used to define metadata associated
   globally with IMAP events in Sieve for the associated server.
   Specifically, this specifies the Sieve script that will be invoked
   when IMAP events occur on any mailbox in the server that does not
   have its own mailbox-level /IMAPSieve/Script entry.
   Content-type: text/plain; charset=utf-8
   RFC number: [[this RFC]]
   Contact address: Sieve mailing list <sieve@ietf.org>
NEW
       To: iana@iana.org
       Subject: IMAP METADATA Entry Registration

       Type:         Server
       Name:         /shared/imapsieve/script
       Description:  This entry name is used to define metadata associated
   globally with IMAP events in Sieve for the associated server.
   Specifically, this specifies the Sieve script that will be invoked
   when IMAP events occur on any mailbox in the server that does not
   have its own mailbox-level /IMAPSieve/Script entry.
       Content-type: text/plain; charset=utf-8
       RFC Number:   [this RFC]
       Contact:      Sieve mailing list <sieve@ietf.org>


Draft looks awesome besides the above, and I'm looking forward to publication!

Best,
Aaron


On Wed, May 30, 2012 at 1:30 PM, Cyrus Daboo <cyrus@daboo.name> wrote:
> Hi folks,
> I am starting a working group last call on
> draft-ietf-sieve-imap-sieve-04.txt. This is the last document this working
> group has on its plate and once finished, we intend to shut down the working
> group.
>
> The last call on draft-ietf-sieve-imap-sieve-04.txt will run for two weeks.
> Please review this draft and send comments to the list. This document has
> been around for a while, so if you have done a detailed review before, just
> checking the changes now should be sufficient. In any case, the chairs want
> to heard from everyone who has done a review and those who have decided for
> or against doing an implementation of this in the near future.
>
> --
> Cyrus Daboo
>
> _______________________________________________
> sieve mailing list
> sieve@ietf.org
> https://www.ietf.org/mailman/listinfo/sieve

From barryleiba@gmail.com  Fri Jun 15 18:50:16 2012
Return-Path: <barryleiba@gmail.com>
X-Original-To: sieve@ietfa.amsl.com
Delivered-To: sieve@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8F17D21F852C for <sieve@ietfa.amsl.com>; Fri, 15 Jun 2012 18:50:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.888
X-Spam-Level: 
X-Spam-Status: No, score=-102.888 tagged_above=-999 required=5 tests=[AWL=0.089, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-1, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id R-wQxo4jCAId for <sieve@ietfa.amsl.com>; Fri, 15 Jun 2012 18:50:15 -0700 (PDT)
Received: from mail-qa0-f42.google.com (mail-qa0-f42.google.com [209.85.216.42]) by ietfa.amsl.com (Postfix) with ESMTP id 5C38821F8533 for <sieve@ietf.org>; Fri, 15 Jun 2012 18:50:14 -0700 (PDT)
Received: by qafi31 with SMTP id i31so48084qaf.15 for <sieve@ietf.org>; Fri, 15 Jun 2012 18:50:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=lUbqp2xRZBGyKtkEl0FT/YWtjVJTwBpnGCN3QAf3Hmk=; b=nGqWzTyklyRqcUy02XdgUQhWCnUidhc18AedKxTugOYI6hj3CdvPAJcFO/5TabH9yP 2G8aAlrSU1IM2fKOg7EIT6cdlE/1N+uqsHWl95Vnw9lRA5n/vc2sGyQmosHxf5Qq1ez6 JWfhcvaSVua2XCTeJMdLCYPwGx1SOd+qAfHOTs1ASQITCGopP4HemOfJDZlZFaMlWzfN HoqlPdeXBTEgTymWr+zFASQnGooiooOPxx2q4FnuxQge/sz8b7O/+y5sf8/omSq4QwkP Csyh8cCDkNT3o5EiBsRHpxA8ZspJbG6T8DpQuI6MsMdPp+NlYZTbddzukf+UfvSr3MTI Xf8w==
MIME-Version: 1.0
Received: by 10.224.200.194 with SMTP id ex2mr14863792qab.58.1339811413800; Fri, 15 Jun 2012 18:50:13 -0700 (PDT)
Sender: barryleiba@gmail.com
Received: by 10.229.245.85 with HTTP; Fri, 15 Jun 2012 18:50:13 -0700 (PDT)
In-Reply-To: <CAEdAYKX5LUC00ztFvOaM05cMXTQ0xr5bDuejHdoVL1CXZXoc=w@mail.gmail.com>
References: <B5057302A66EA30CEE78BCB9@caldav.corp.apple.com> <CAEdAYKX5LUC00ztFvOaM05cMXTQ0xr5bDuejHdoVL1CXZXoc=w@mail.gmail.com>
Date: Fri, 15 Jun 2012 21:50:13 -0400
X-Google-Sender-Auth: hIP-XAsJSrItGouiKxv7xzG7WuA
Message-ID: <CALaySJKjjn2ZghvsNFuqnhsp_89HcBgFKfWThoRz7SJE2_jLVw@mail.gmail.com>
From: Barry Leiba <barryleiba@computer.org>
To: Aaron Stone <aaron@serendipity.cx>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: sieve@ietf.org
Subject: Re: [sieve] WGLC: draft-ietf-sieve-imap-sieve-04.txt
X-BeenThere: sieve@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: SIEVE Working Group <sieve.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sieve>, <mailto:sieve-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sieve>
List-Post: <mailto:sieve@ietf.org>
List-Help: <mailto:sieve-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sieve>, <mailto:sieve-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Jun 2012 01:50:16 -0000

Thanks, Aaron, for the review.

> RFC 5464 says:
> =A0 All entries MUST have either "/shared" or "/private" as a prefix.
> =A0 Entry names are case-insensitive.
>
> I think that means our metadata key should be
> "/shared/imapsieve/script".

Well, it doesn't mean that it couldn't be, say,
"/shared/IMAPSieve/Script".  It says it's insensitive, so I can put it
in any case I like.  But as long as I have to change it to add the
prefix (the text was written when there was no prefix and "value.xxx"
was used), I also changed it to be all lower case.  Why not?

> Section 2.1: feels like there should be a MUST in here somewhere?
>
> OLD
> =A0 The corresponding Sieve implementation uses the Sieve capability
> =A0 string "imapsieve", and Sieve scripts that depend upon the IMAP
> =A0 events MUST include that string in their "required" lists.
> NEW
> =A0 The corresponding Sieve implementation MUST provide the "imapsieve"
> =A0 capability string (see [RFC5228] Section 6.1), and Sieve scripts that=
 depend
> =A0 upon IMAP events MUST include that string in their "required" lists.

Absolutely not: that would make this the only Sieve extension to say
that.  All the extensions I've looked at (Vacation, Notify,
Editheader, Ihave, MIME-loop, Reject) do NOT use 2119 language when
they talk about the capability string.

> Section 2.2: Add a MUST regarding individual script execution, because
> I missed this requirement the first two times I read through it:
> OLD
> =A0 If more than one message is affected at the same time, each message
> =A0 triggers the execution of a Sieve script separately. =A0The scripts M=
AY
> =A0 be run in parallel.
> NEW
> =A0 If more than one message is affected at the same time, each message
> =A0 MUST trigger execution of the Sieve script separately. =A0The scripts=
 MAY
> =A0 be run in parallel.

No.  If you're only taking text to be normative if it has a 2119
keyword in it, you need to read documents differently.  "This is how
the protocol works" statements don't need to have "MUST" all over
them, and I see no need for a MUST here.

> Section 2.3.1: Convert from prose to list, and rephrase to include a
> lot of MUSTs
> OLD
> =A0 When an applicable event occurs on an IMAP mailbox, if there is an
> =A0 IMAP metadata entry named "/IMAPSieve/Script" for the mailbox, that
> =A0 entry is used. =A0If there is not, but there is an IMAP metadata entr=
y
> =A0 named "/IMAPSieve/Script" for the server, that entry is used
> =A0 (providing a way to define a global script for all mailboxes on a
> =A0 server). =A0If neither entry exists, then no script will be invoked.
> NEW
> =A0 When an applicable event occurs, the IMAP server MUST inspect
> =A0 the following metadata entries, in order, to determine which Sieve
> =A0 script to invoke:
> =A0 o "/IMAPSieve/Script" for the target mailbox,
> =A0 o "/IMAPSieve/Script" for the server.
> =A0 If neither entry exists, then no script will be invoked.

Same as above.  The original text is fine.  I dislike the list format
here, and see no reason for a MUST.

> MINOR: I just realized that there might be confusion over an "empty"
> script name. I propose that a global server script, and a mailbox
> script with no value, means "run this script for every mailbox, except
> this one". If that's OK with you, I propose this text immediately
> following the text above:
> NEW
> =A0 =A0If the script name is an empty string, the server MUST NOT
> =A0 =A0inspect any further metadata entries (this allows a user to specif=
y
> =A0 =A0a global server script, but disable it for specific mailboxes).

No reason to tell it not to inspect further, because we've already
said that if it finds a mailbox entry, it has what it needs.  But I
like the idea of saying that an empty entry value means that no script
is run, so I'll add that.  New paragraph 3:

                If a "/shared/imapsieve/script" metadata entry was selected
                above, its value is used as the name of the Sieve script
                that will be invoked in response to the IMAP event.
                If the value is empty, then no script is run.

I'll post a new version after I send this.

Barry

From internet-drafts@ietf.org  Fri Jun 15 18:54:20 2012
Return-Path: <internet-drafts@ietf.org>
X-Original-To: sieve@ietfa.amsl.com
Delivered-To: sieve@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 05BC611E80CE; Fri, 15 Jun 2012 18:54:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.599
X-Spam-Level: 
X-Spam-Status: No, score=-102.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yKwFqQLNvRDZ; Fri, 15 Jun 2012 18:54:19 -0700 (PDT)
Received: from ietfa.amsl.com (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5E5F921F8542; Fri, 15 Jun 2012 18:54:19 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
From: internet-drafts@ietf.org
To: i-d-announce@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 4.20
Message-ID: <20120616015419.7038.94310.idtracker@ietfa.amsl.com>
Date: Fri, 15 Jun 2012 18:54:19 -0700
Cc: sieve@ietf.org
Subject: [sieve] I-D Action: draft-ietf-sieve-imap-sieve-05.txt
X-BeenThere: sieve@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: SIEVE Working Group <sieve.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sieve>, <mailto:sieve-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sieve>
List-Post: <mailto:sieve@ietf.org>
List-Help: <mailto:sieve-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sieve>, <mailto:sieve-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Jun 2012 01:54:20 -0000

A New Internet-Draft is available from the on-line Internet-Drafts director=
ies.
 This draft is a work item of the Sieve Mail Filtering Language Working Gro=
up of the IETF.

	Title           : Support for Internet Message Access Protocol (IMAP) Even=
ts in Sieve
	Author(s)       : Barry Leiba
	Filename        : draft-ietf-sieve-imap-sieve-05.txt
	Pages           : 23
	Date            : 2012-06-15

Abstract:
   Sieve defines an email filtering language that can, in principle,
   plug into any point in the processing of an email message.  As
   defined in the base specification, it plugs into mail delivery.  This
   document defines how Sieve can plug into points in the IMAP protocol
   where messages are created or changed, adding the option of user-
   defined or installation-defined filtering (or, with Sieve extensions,
   features such as notifications).


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-sieve-imap-sieve

There's also a htmlized version available at:
http://tools.ietf.org/html/draft-ietf-sieve-imap-sieve-05

A diff from previous version is available at:
http://tools.ietf.org/rfcdiff?url2=3Ddraft-ietf-sieve-imap-sieve-05


Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From aaron@serendipity.cx  Fri Jun 15 19:22:44 2012
Return-Path: <aaron@serendipity.cx>
X-Original-To: sieve@ietfa.amsl.com
Delivered-To: sieve@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2356211E8072 for <sieve@ietfa.amsl.com>; Fri, 15 Jun 2012 19:22:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.043
X-Spam-Level: 
X-Spam-Status: No, score=-101.043 tagged_above=-999 required=5 tests=[AWL=0.600, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, IP_NOT_FRIENDLY=0.334, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6Gw1ka+cmBSN for <sieve@ietfa.amsl.com>; Fri, 15 Jun 2012 19:22:43 -0700 (PDT)
Received: from slice.serendipity.cx (slice.serendipity.cx [67.23.2.90]) by ietfa.amsl.com (Postfix) with ESMTP id 7010D21F845A for <sieve@ietf.org>; Fri, 15 Jun 2012 19:22:43 -0700 (PDT)
Received: from mail-gg0-f172.google.com (mail-gg0-f172.google.com [209.85.161.172]) by slice.serendipity.cx (Postfix) with ESMTPSA id 617F294002 for <sieve@ietf.org>; Fri, 15 Jun 2012 19:21:11 -0700 (PDT)
Received: by ggnc4 with SMTP id c4so3125368ggn.31 for <sieve@ietf.org>; Fri, 15 Jun 2012 19:22:30 -0700 (PDT)
Received: by 10.236.181.229 with SMTP id l65mr10234950yhm.116.1339813350580; Fri, 15 Jun 2012 19:22:30 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.147.113.19 with HTTP; Fri, 15 Jun 2012 19:22:10 -0700 (PDT)
In-Reply-To: <CALaySJKjjn2ZghvsNFuqnhsp_89HcBgFKfWThoRz7SJE2_jLVw@mail.gmail.com>
References: <B5057302A66EA30CEE78BCB9@caldav.corp.apple.com> <CAEdAYKX5LUC00ztFvOaM05cMXTQ0xr5bDuejHdoVL1CXZXoc=w@mail.gmail.com> <CALaySJKjjn2ZghvsNFuqnhsp_89HcBgFKfWThoRz7SJE2_jLVw@mail.gmail.com>
From: Aaron Stone <aaron@serendipity.cx>
Date: Fri, 15 Jun 2012 19:22:10 -0700
Message-ID: <CAEdAYKUn=JCP-EsTFRp+Qx84_yu2U1tF2ie1JgAA6Qg7cddesg@mail.gmail.com>
To: Barry Leiba <barryleiba@computer.org>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: sieve@ietf.org
Subject: Re: [sieve] WGLC: draft-ietf-sieve-imap-sieve-04.txt
X-BeenThere: sieve@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: SIEVE Working Group <sieve.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sieve>, <mailto:sieve-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sieve>
List-Post: <mailto:sieve@ietf.org>
List-Help: <mailto:sieve-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sieve>, <mailto:sieve-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Jun 2012 02:22:44 -0000

Thanks! No sweat on the comments not taken :)

On Fri, Jun 15, 2012 at 6:50 PM, Barry Leiba <barryleiba@computer.org> wrot=
e:
> Thanks, Aaron, for the review.
>
>> RFC 5464 says:
>> =A0 All entries MUST have either "/shared" or "/private" as a prefix.
>> =A0 Entry names are case-insensitive.
>>
>> I think that means our metadata key should be
>> "/shared/imapsieve/script".
>
> Well, it doesn't mean that it couldn't be, say,
> "/shared/IMAPSieve/Script". =A0It says it's insensitive, so I can put it
> in any case I like. =A0But as long as I have to change it to add the
> prefix (the text was written when there was no prefix and "value.xxx"
> was used), I also changed it to be all lower case. =A0Why not?
>
>> Section 2.1: feels like there should be a MUST in here somewhere?
>>
>> OLD
>> =A0 The corresponding Sieve implementation uses the Sieve capability
>> =A0 string "imapsieve", and Sieve scripts that depend upon the IMAP
>> =A0 events MUST include that string in their "required" lists.
>> NEW
>> =A0 The corresponding Sieve implementation MUST provide the "imapsieve"
>> =A0 capability string (see [RFC5228] Section 6.1), and Sieve scripts tha=
t depend
>> =A0 upon IMAP events MUST include that string in their "required" lists.
>
> Absolutely not: that would make this the only Sieve extension to say
> that. =A0All the extensions I've looked at (Vacation, Notify,
> Editheader, Ihave, MIME-loop, Reject) do NOT use 2119 language when
> they talk about the capability string.

OK.

>> Section 2.2: Add a MUST regarding individual script execution, because
>> I missed this requirement the first two times I read through it:
>> OLD
>> =A0 If more than one message is affected at the same time, each message
>> =A0 triggers the execution of a Sieve script separately. =A0The scripts =
MAY
>> =A0 be run in parallel.
>> NEW
>> =A0 If more than one message is affected at the same time, each message
>> =A0 MUST trigger execution of the Sieve script separately. =A0The script=
s MAY
>> =A0 be run in parallel.
>
> No. =A0If you're only taking text to be normative if it has a 2119
> keyword in it, you need to read documents differently. =A0"This is how
> the protocol works" statements don't need to have "MUST" all over
> them, and I see no need for a MUST here.

OK.

>> Section 2.3.1: Convert from prose to list, and rephrase to include a
>> lot of MUSTs
>> OLD
>> =A0 When an applicable event occurs on an IMAP mailbox, if there is an
>> =A0 IMAP metadata entry named "/IMAPSieve/Script" for the mailbox, that
>> =A0 entry is used. =A0If there is not, but there is an IMAP metadata ent=
ry
>> =A0 named "/IMAPSieve/Script" for the server, that entry is used
>> =A0 (providing a way to define a global script for all mailboxes on a
>> =A0 server). =A0If neither entry exists, then no script will be invoked.
>> NEW
>> =A0 When an applicable event occurs, the IMAP server MUST inspect
>> =A0 the following metadata entries, in order, to determine which Sieve
>> =A0 script to invoke:
>> =A0 o "/IMAPSieve/Script" for the target mailbox,
>> =A0 o "/IMAPSieve/Script" for the server.
>> =A0 If neither entry exists, then no script will be invoked.
>
> Same as above. =A0The original text is fine. =A0I dislike the list format
> here, and see no reason for a MUST.

OK.

>> MINOR: I just realized that there might be confusion over an "empty"
>> script name. I propose that a global server script, and a mailbox
>> script with no value, means "run this script for every mailbox, except
>> this one". If that's OK with you, I propose this text immediately
>> following the text above:
>> NEW
>> =A0 =A0If the script name is an empty string, the server MUST NOT
>> =A0 =A0inspect any further metadata entries (this allows a user to speci=
fy
>> =A0 =A0a global server script, but disable it for specific mailboxes).
>
> No reason to tell it not to inspect further, because we've already
> said that if it finds a mailbox entry, it has what it needs. =A0But I
> like the idea of saying that an empty entry value means that no script
> is run, so I'll add that. =A0New paragraph 3:
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0If a "/shared/imapsieve/script" metadata e=
ntry was selected
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0above, its value is used as the name of th=
e Sieve script
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0that will be invoked in response to the IM=
AP event.
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0If the value is empty, then no script is r=
un.

I dig your subtle style.

> I'll post a new version after I send this.
>
> Barry

From aaron@serendipity.cx  Mon Jun 18 10:26:23 2012
Return-Path: <aaron@serendipity.cx>
X-Original-To: sieve@ietfa.amsl.com
Delivered-To: sieve@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 375C821F85DA for <sieve@ietfa.amsl.com>; Mon, 18 Jun 2012 10:26:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.343
X-Spam-Level: 
X-Spam-Status: No, score=-101.343 tagged_above=-999 required=5 tests=[AWL=0.300, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, IP_NOT_FRIENDLY=0.334, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qH0kGxLNZPTy for <sieve@ietfa.amsl.com>; Mon, 18 Jun 2012 10:26:22 -0700 (PDT)
Received: from slice.serendipity.cx (slice.serendipity.cx [67.23.2.90]) by ietfa.amsl.com (Postfix) with ESMTP id 91C2F21F859A for <sieve@ietf.org>; Mon, 18 Jun 2012 10:26:22 -0700 (PDT)
Received: from mail-gh0-f172.google.com (mail-gh0-f172.google.com [209.85.160.172]) by slice.serendipity.cx (Postfix) with ESMTPSA id D0742334F5 for <sieve@ietf.org>; Mon, 18 Jun 2012 10:24:45 -0700 (PDT)
Received: by ghbg16 with SMTP id g16so4277244ghb.31 for <sieve@ietf.org>; Mon, 18 Jun 2012 10:26:08 -0700 (PDT)
Received: by 10.101.166.2 with SMTP id t2mr5956285ano.70.1340040368846; Mon, 18 Jun 2012 10:26:08 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.147.113.19 with HTTP; Mon, 18 Jun 2012 10:25:48 -0700 (PDT)
In-Reply-To: <CAEdAYKUn=JCP-EsTFRp+Qx84_yu2U1tF2ie1JgAA6Qg7cddesg@mail.gmail.com>
References: <B5057302A66EA30CEE78BCB9@caldav.corp.apple.com> <CAEdAYKX5LUC00ztFvOaM05cMXTQ0xr5bDuejHdoVL1CXZXoc=w@mail.gmail.com> <CALaySJKjjn2ZghvsNFuqnhsp_89HcBgFKfWThoRz7SJE2_jLVw@mail.gmail.com> <CAEdAYKUn=JCP-EsTFRp+Qx84_yu2U1tF2ie1JgAA6Qg7cddesg@mail.gmail.com>
From: Aaron Stone <aaron@serendipity.cx>
Date: Mon, 18 Jun 2012 10:25:48 -0700
Message-ID: <CAEdAYKWGvrZ+RrrmvtbnSmU7RtzEZ6jMpyQy2COZaiVU3nzb6g@mail.gmail.com>
To: Barry Leiba <barryleiba@computer.org>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: sieve@ietf.org
Subject: Re: [sieve] WGLC: draft-ietf-sieve-imap-sieve-04.txt
X-BeenThere: sieve@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: SIEVE Working Group <sieve.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sieve>, <mailto:sieve-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sieve>
List-Post: <mailto:sieve@ietf.org>
List-Help: <mailto:sieve-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sieve>, <mailto:sieve-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jun 2012 17:26:23 -0000

I have reviewed the changes in -05, and recommend this document for publica=
tion.

Cheers,
Aaron

On Fri, Jun 15, 2012 at 7:22 PM, Aaron Stone <aaron@serendipity.cx> wrote:
> Thanks! No sweat on the comments not taken :)
>
> On Fri, Jun 15, 2012 at 6:50 PM, Barry Leiba <barryleiba@computer.org> wr=
ote:
>> Thanks, Aaron, for the review.
>>
>>> RFC 5464 says:
>>> =A0 All entries MUST have either "/shared" or "/private" as a prefix.
>>> =A0 Entry names are case-insensitive.
>>>
>>> I think that means our metadata key should be
>>> "/shared/imapsieve/script".
>>
>> Well, it doesn't mean that it couldn't be, say,
>> "/shared/IMAPSieve/Script". =A0It says it's insensitive, so I can put it
>> in any case I like. =A0But as long as I have to change it to add the
>> prefix (the text was written when there was no prefix and "value.xxx"
>> was used), I also changed it to be all lower case. =A0Why not?
>>
>>> Section 2.1: feels like there should be a MUST in here somewhere?
>>>
>>> OLD
>>> =A0 The corresponding Sieve implementation uses the Sieve capability
>>> =A0 string "imapsieve", and Sieve scripts that depend upon the IMAP
>>> =A0 events MUST include that string in their "required" lists.
>>> NEW
>>> =A0 The corresponding Sieve implementation MUST provide the "imapsieve"
>>> =A0 capability string (see [RFC5228] Section 6.1), and Sieve scripts th=
at depend
>>> =A0 upon IMAP events MUST include that string in their "required" lists=
.
>>
>> Absolutely not: that would make this the only Sieve extension to say
>> that. =A0All the extensions I've looked at (Vacation, Notify,
>> Editheader, Ihave, MIME-loop, Reject) do NOT use 2119 language when
>> they talk about the capability string.
>
> OK.
>
>>> Section 2.2: Add a MUST regarding individual script execution, because
>>> I missed this requirement the first two times I read through it:
>>> OLD
>>> =A0 If more than one message is affected at the same time, each message
>>> =A0 triggers the execution of a Sieve script separately. =A0The scripts=
 MAY
>>> =A0 be run in parallel.
>>> NEW
>>> =A0 If more than one message is affected at the same time, each message
>>> =A0 MUST trigger execution of the Sieve script separately. =A0The scrip=
ts MAY
>>> =A0 be run in parallel.
>>
>> No. =A0If you're only taking text to be normative if it has a 2119
>> keyword in it, you need to read documents differently. =A0"This is how
>> the protocol works" statements don't need to have "MUST" all over
>> them, and I see no need for a MUST here.
>
> OK.
>
>>> Section 2.3.1: Convert from prose to list, and rephrase to include a
>>> lot of MUSTs
>>> OLD
>>> =A0 When an applicable event occurs on an IMAP mailbox, if there is an
>>> =A0 IMAP metadata entry named "/IMAPSieve/Script" for the mailbox, that
>>> =A0 entry is used. =A0If there is not, but there is an IMAP metadata en=
try
>>> =A0 named "/IMAPSieve/Script" for the server, that entry is used
>>> =A0 (providing a way to define a global script for all mailboxes on a
>>> =A0 server). =A0If neither entry exists, then no script will be invoked=
.
>>> NEW
>>> =A0 When an applicable event occurs, the IMAP server MUST inspect
>>> =A0 the following metadata entries, in order, to determine which Sieve
>>> =A0 script to invoke:
>>> =A0 o "/IMAPSieve/Script" for the target mailbox,
>>> =A0 o "/IMAPSieve/Script" for the server.
>>> =A0 If neither entry exists, then no script will be invoked.
>>
>> Same as above. =A0The original text is fine. =A0I dislike the list forma=
t
>> here, and see no reason for a MUST.
>
> OK.
>
>>> MINOR: I just realized that there might be confusion over an "empty"
>>> script name. I propose that a global server script, and a mailbox
>>> script with no value, means "run this script for every mailbox, except
>>> this one". If that's OK with you, I propose this text immediately
>>> following the text above:
>>> NEW
>>> =A0 =A0If the script name is an empty string, the server MUST NOT
>>> =A0 =A0inspect any further metadata entries (this allows a user to spec=
ify
>>> =A0 =A0a global server script, but disable it for specific mailboxes).
>>
>> No reason to tell it not to inspect further, because we've already
>> said that if it finds a mailbox entry, it has what it needs. =A0But I
>> like the idea of saying that an empty entry value means that no script
>> is run, so I'll add that. =A0New paragraph 3:
>>
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0If a "/shared/imapsieve/script" metadata =
entry was selected
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0above, its value is used as the name of t=
he Sieve script
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0that will be invoked in response to the I=
MAP event.
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0If the value is empty, then no script is =
run.
>
> I dig your subtle style.
>
>> I'll post a new version after I send this.
>>
>> Barry
