Subject: Tentative minutes for Sieve WG meeting in Montreal

From: Alexey Melnikov <[email-masked]>
Date: Tue, 25 Jul 2006 17:39:52 +0100

Hi folks,
Here are the tentative minutes for the Montreal meeting. I've created 
them from Jabber logs.
Please send me any corrections withing one week.
Thanks!
Alexey
===============================
Thanks to Kurt Zeilenga for scribing in Jabber.
The WG meeting started with agenda bashing. No changes were requested 
from people in the room or in jabber. Chairs noted that editors for the 
Regex draft are not in the room and there were no update to the draft, 
so no need to spend 20 minutes on it.

Document status:
IMAP flags got approved in May, but got stuck in "Approved announcement 
to be sent" state, ADs need to investigate.
Subaddress bis just got approved.
Spamtest - another update recently, minor comments from Aaron to be 
addressed and will be sent to IESG.
Editheader - one more change is needed regarding interaction with reject.
Body - minor issues to address.

Base spec - very few issues remain, but still stuck waiting for 
comparators (draft-newman-i18n-comparator-XX.txt) to be done.
Remaining issues:
1). Need to clarify what redirect means in term of formatting the 
message. Need to check what RFC 2822 says.
2). Changes to IANA consideration section (removed Name, added 
Description): Philip talked to IANA, they said they need exact 
instructions on how to update the registry. Documents that are already 
approved will be updated during AUTH48 state, but chairs and authors 
need to remember to do that.
3). Allowing arbitrary octets in Sieve scripts (e.g. as in vacation 
:mime text, which can contain any character sets). Sieve doesn't have 
any escaping mechanisms.
Options:
- ignore the problem (its not an issue in practice).
- revert ABNF for Sieve scripts to allow for arbitrary 8bit data, not 
just UTF-8.
- create new syntax elements. This would mean updating the vacation 
extension, which is already approved for publication.

Ned: we can't require users to enter quoted printable text in vacation 
:mime.
Philip suggested to revert to the original syntax (currently only UTF-8 
is allowed), as in RFC 3028.
Kjetil (in jabber) commented that it is too bad that we can't trust 
Sieve scripts to be be in UTF-8. The intent of the document was quite 
clear: everything is in Unicode.
Philip: multiple character sets are bad for GUIs, also parsing is 
problematic (parser needs to know what action/test it is parsing, in 
order to interpret it correctly).
Ned (in jabber): I dislike both options, but reverting the ABNF seems 
like the least problematic one. I want to allow for non-UTF8 in quoted 
strings, so that one can match any binary data in RFC 2822 header fields.
Ned/Kjetil: it would be nice to have an escape mechanism in the base spec.
Jeff/Kjetil: how does the script writer now which Unicode characters to 
type in in order to produce a script that tests for specific octet values.
Jeff: If the user is restricted to UTF-8, she can't produce arbitrary 
octet values.
Barry: Need to separate the UI issue from the protocol issue.
Philip: will revert the ABNF.
Many: string escape mechanism seems like a good idea. Ned has 
volunteered to write one. Philip will help out. Jeff suggested to use 
\nnn or \xXX syntax.
4). Alexey reviewed draft-newman-i18n-comparator-12.txt regarding 
compatibility with Sieve. The comparator document seems to be Ok, 
request for others to independently verify this.

MIME loops: Cyrus presenting. Cyrus apologized for missing the 
submission deadline.
Current list of open issues:
1). Depth of nested for_every_part - proposed solution is make it an 
implementation defined value.
2). The draft is missing ability to test full content type (e.g. 
text/plain, as opposed to separately testing "text" and "plain" - could 
have been extracted from different parts). Also no way to test for 
parameters.
Suggestion to have: :type, :subtype, :contenttype, :param
3). Allow address and exists tests on included RFC822 parts.
Proposed syntax:
- header :mime
- address :mime
- exists :mime

Cyrus: WG consensus appears to allowing nesting but have a 
implementation defined depth.
Some discussion on whether it is possible to test MIME headers. Also 
some confusion on how exactly looping works and whether embedded 
message/rfc822 is another element of the message tree or not.
EAI WG might chose MIME encapsulation, in which case it might be useful 
to test headers of the encapsulated RFC822 message.
Lisa: wouldn't there be always de-encapsulation before Sieve is invoked?
Chris suggests to ignore EAI encapsulation at the moment, because it 
might not be the chosen solution. But Sieve WG should give feedback to EAI.
People agree that this might be the case, but there are other uses for 
nested RFC822 messages (like message forwarding).
Consensus seems to be in favor of allowing any headers to be access from 
Sieve. Needs to be verified on the mailing list.
Ted warns people that some message/* are not easy to handle, as they 
have specific parsing logic. E.g. you won't see message/sipfrag 
enclosing a message/cpim, with message/rfc822 in the middle very often. 
So no need to require access to them in Sieve.

Chris: The ability to test the headers in text/rfc822-header part of a 
DSN with header-only return would be interesting.
Cyrus: Yes, it would, but this is a body test.
Philip: it would be nice to do a header test on the body.
Cyrus: design team.

Regex:
Alexey: There was no progress on the document for some time, should we 
drop it from out charter?
Kjetil thinks that it is important.
Poll of implementations that do regex: CMU (and derivatives) + Ned has 
half completed implementation.
Alexey: the main issue was choosing a regex standard to use: POSIX? 
Perl? Unicode? ...
Ned will try to do an update next week, or will pass it to somebody else.
Consensus to push the milestone for Regex out, maybe it gets done later.

Reject/refuse draft: 3 remaining issues, 2 of them related:
1). Issue # 1: The current text says that "reject SHOULD be incompatible 
with other actions". Some people want to relax it to MAY (e.g. use 
reject + fileinto in order to save a copy for rejected message for later 
analysis), others think that this violates SMTP semantics: message is 
either delivered or bounced, never both.

Jeff: Why should two actions ever be artificially declared incompatible? 
Sure, reject/refuse should suppress the default keep. Reject shouldn't 
be incompatible with fileinto, and it shouldn't be incompatible with keep.
Kjetil: MUST be incompatible, as per RFC 2821, section 4.2.5
Barry generally dislikes SHOULD, we end up in a mess like this.

No clear consensus to change SHOULD to MUST or to MAY. Suggestion how to 
proceed:
a). Leave SHOULD in the document.
b). Add explanatory text detailing why SHOULD is here. This will help 
implementers to decide when to conform or violate the SHOULD.
c). List incompatible extensions explicitly, there is no reason why some 
actions like setflag/addflag/removeflag (IMAP flags) should be 
incompatible with reject. Besides, it is difficult (pointless?) to put 
such an open ended restriction on all future extensions.

Some fun side conversation about another reject-like action that is 
compatible with other action. Suggestions are "reject-more" and "punt".
Alexey will poll people on the mailing list regarding new action which 
is compatible with fileinto/redirect.
2). Issue # 2 (related to # 1): should reject just cancel all other 
actions, instead of causing runtime error (suggestion from Barry).
The issue was not discussed at the meeting.
3). Issue #3: Non-ascii text in reject string?
4 choices:
-Strip UTF-8 from string (or replace it with an ascii character, e.g. '?')
-Force sending of DSN
-Send an implementation defined ascii string
-Runtime error

Alexey: Suggestion not to use runtime error, people seem to agree that 
runtime errors are bad.
Many: DSNs are generally considered bad as well.
William: 5th choice: have an extra parameter with string only in ascii.
Kjetil doesn't think that having 2 strings, one in ascii is confusing
Chris Newman (in jabber): 6th choice: include URL with contains encoded 
UTF-8 :-)
?: Let's not have 2 strings, this is hard to represent meaningfully in UI.
?: Also, still need to check that the extra string is still in ascii 
(and this can be hard due to use of variables).
Consensus of the room not to consider choice # 5.
Barry: prefers #3 (send implementation defined string), maybe #1 (strip 
UTF-8)
Kurt: stripping is evil (use of a replacement character would be 
slightly better).
Kjetil: would like to reuse of RFC 2047 encoded-words, but that is an 
SMTP extension, so off-topic for the Sieve WG.
Chris: A clever implementation could stuff the reject text into a public 
http URL and include generic error with the http URL for details. I 
wouldn't want to forbid such an implementation, but neither is it 
reasonable to require that.
Consensus of the room to go with option # 3. Will be double checked on 
the mailing list.

Notifications:
New revision draft-ietf-sieve-notify-03 (Alexey&Barry).
Open issues/ToDo:

- Rename :priority to :importance. There was a consensus to change this 
during the last meeting, but Alexey missed it. Editors will update the 
document
- Change :options to be multiple ':option <name: string> string/number'?
The current syntax is too flexible and is also incorrect (e.g. no place 
for option name).
- What is the initial list of :options? IANA registry?
- Method registry? (Can include options).

Alexey: do we want to do an IANA registry now (there are no options so 
far) or later when the first one is needed?
Many: do the IANA registry now, don't be lazy.
Chris gives an example for options: :option "alarm" "audio".
Kjetil: generic options valid for all methods should be explicit :keywords.
Some options would be method specific, but some might be generic, so 
options registry should be separate from method registry. Consensus to 
create the two registries in the document.

XMPP notifications:
- Is it OK to have normative references to JEP (Jabber Extension Proposal)?

Some discussion between room and ADs about normative references to JEP 
documents followed. There is no document describing interaction with 
Jabber Software Foundation (owner of JEP series). The IETF requirement 
is that documents are stable and publicly accessible. Ted suggested not 
to worry about this and assume that normative references to JEPs are Ok.

Date/index extension: Ned has published a new draft, addressed all know 
issues.
Alexey: Ned, can you please LC the draft?

ManageSieve:

Alexey: There is no need to wait for the Lemonade WG to decide if they 
want to use ManageSieve or not. ManageSieve is generally useful.
Cyrus: The main issue with ManageSieve is interaction with Include (next 
topic).

Include:

Alexey asked the room: "who have read the draft"? A few hands raised.
Alexey: my only issue is relative order of import/export statements - 
should be arbitrary. Otherwise Ok with the document.
Kjetil: the base spec might define a "preamble" section which can only 
contain require, then include can specify that import/export only goes 
in that header.
Jeff: I asked why "import" should be _immediately_ after require, as 
opposed to merely after.
Cyrus: imports should be in one place.
Kjetil: "global" means you can see variables from parent, even though 
you may not want to.
Kjetil: "export" is only global to the current script, and children.
Kjetil: I'm not sure if we need the restriction that imported variables 
can't be re-exported.
More discussion about how to do variable import/export. No consensus, so 
need to discuss on the mailing list.

---

From: Kjetil Torgrim Homme <[email-masked]>
Date: Thu, 27 Jul 2006 14:44:18 +0200

> such an open ended restriction on all future extensions.

here's today's text for reference:

   Implementations MUST prohibit the execution of more than one reject
   in a SIEVE script. "Reject" is also incompatible with the
   "vacation" [VACATION] extensions. Implementations SHOULD prohibit
   reject when used with other actions, in particular "reject" SHOULD
   be incompatible with keep, fileinto, redirect and discard.
 
I suggest this is simplified to

   Implementations MUST prohibit the execution of more than one "reject"
   in a Sieve script.  Implementations MUST prohibit the use of "reject"
   with actions that cause mail delivery, such as "keep", "fileinto",
   "redirect" and "vacation" [VACATION].

-- 
Kjetil T.

---

From: Kjetil Torgrim Homme <[email-masked]>
Date: Thu, 27 Jul 2006 14:56:40 +0200

> Kjetil doesn't think that having 2 strings, one in ascii is confusing

just a small note:  I meant "one in English (and therefore ASCII)".
after all, most of us can not assume that all our correspondents
understand our mother tongue, so it would be useful to cater for a
lingua franca (or even more than one).

> The current syntax is too flexible and is also incorrect (e.g. no place 

we've just agreed multiple ":option" is illegal :-)

I really don't see why we need the ":option" indirection, what's wrong
with declaring/explaining all possible options as tagged arguments in
each specific notification method extension?

> - What is the initial list of :options? IANA registry?

"subaddresses" adds tagged arguments without declaring them in any IANA
registry.  I don't think we need one.

-- 
Kjetil T.

---

From: "Nigel Swinson" <[email-masked]>
Date: Thu, 27 Jul 2006 14:08:17 +0100

>    "redirect" and "vacation" [VACATION].

So we have gone from a SHOULD to a MUST, we'll I'm obvously not going to vote for that... I want to give my users the choice as I don't see a compelling argument that fileinto-reject should be militantly prohibited.

Nigel

---

From: Arnt Gulbrandsen <[email-masked]>
Date: Thu, 27 Jul 2006 15:26:11 +0200

Nigel Swinson writes:
> So we have gone from a SHOULD to a MUST, we'll I'm obvously not going 
> to vote for that... I want to give my users the choice as I don't see 
> a compelling argument that fileinto-reject should be militantly 
> prohibited.

I'll second that.

I can see many reasons avoid using fileinto-reject (or its friends). No 
compelling arguments to prohibit it.

Arnt

---

From: Kjetil Torgrim Homme <[email-masked]>
Date: Thu, 27 Jul 2006 15:25:15 +0200

> a compelling argument that fileinto-reject should be militantly

I suggest you get RFC 2821 fixed first, then.

seriously, a major design goal for Sieve is to make it a secure way of
handling e-mail.  adding features which makes it possible to cause mail
loops is very much opposing that ideal.
-- 
Kjetil T.

---

From: Alexey Melnikov <[email-masked]>
Date: Thu, 27 Jul 2006 14:30:50 +0100

>So we have gone from a SHOULD to a MUST, we'll I'm obvously not going to vote for that... I want to give my users the choice as I don't see a compelling argument that fileinto-reject should be milit…
We don't have consensus to change SHOULD to MUST. I will try to suggest 
some text later this week.

---

From: Alexey Melnikov <[email-masked]>
Date: Thu, 27 Jul 2006 15:01:25 +0100

>I suggest you get RFC 2821 fixed first, then.
We should set reasonable goals in this WG :-).

Kjetil, there is very much 50/50 split between people who want to change 
the SHOULD to MUST and people who want to keep it as SHOULD or even 
relax it.
RFC 3028 used SHOULD. Considering even split (and good technical 
arguments on both sides) I don't see any reason to change it to anything 
else.

---

From: Kjetil Torgrim Homme <[email-masked]>
Date: Thu, 27 Jul 2006 16:32:11 +0200

> arguments on both sides) I don't see any reason to change it to anything 

yes, it says that in general:

   Implementations SHOULD prohibit reject when used with other actions.

but it also calls the explicit combination we're talking about
"invalid":

   Implementations might even go so far as to ensure that scripts can
   never execute an invalid set of actions (e.g., reject + fileinto)
   before execution, although this could involve solving the Halting
   Problem.

I don't think changing it to a MUST is changing the spec, it's just
clarifying it.
-- 
Kjetil T.

---

From: Alexey Melnikov <[email-masked]>
Date: Thu, 27 Jul 2006 16:53:56 +0100

Kjetil Torgrim Homme wrote:

>   Implementations might
might is non normative here. I certainly wouldn't interpret it as "MUST".

> even go so far as to ensure that scripts can
I think part of the reason why we have this discussion now is because 
the text you quoted is sufficiently ambiguous.

---

From: Alexey Melnikov <[email-masked]>
Date: Mon, 31 Jul 2006 17:36:20 +0100

>   "redirect" and "vacation" [VACATION].
As I said before, there is no consensus to go from SHOULD to MUST in the 
last sentence. Also,
"vacation" doesn't cause mail delivery, so here is a replacement text:

   Implementations MUST prohibit the execution of more than one reject
   in a SIEVE script. "Reject" MUST be incompatible with the "vacation"
   [VACATION] action. Implementations SHOULD prohibit the use of "reject"
   with actions that cause mail delivery, such as "keep", "fileinto",
   "redirect".

I've just noticed that in your original proposal you dropped "discard".
"SHOULD reject be incompatible with discard"?

Alexey

---

From: "Nigel Swinson" <[email-masked]>
Date: Mon, 31 Jul 2006 18:10:03 +0100

>    with actions that cause mail delivery, such as "keep", "fileinto",

I'm happy with that.

> "SHOULD reject be incompatible with discard"?

Discard just cancels the implicit keep, as does any other action, so discard+?=?.  I don't see why discard+reject can't = reject.  I think the sentence is superflous, so agree it should be dropped.

Nigel

X-Spam-Score-spf_status:  
X-Spam-Score-Spamcatcher1:  c22da2c9737eb7dec15d19bba928e86b
X-Spam-Score-Summary:  2,0,0,2ed894beb8624736,0adfd6028cdbb650,[email-masked],,RULES_HIT:355:379:481:539:540:541:542:543:567:599:601:945:946:973:980:982:988:989:1155:1156:1261:1277:1311:1313:1314:1345:1437:1513:1515:1516:1518:1521:1534:1540:1587:1593:1594:1711:1730:1747:1766:1792:2073:2075:2078:2196:2198:2199:2200:2393:2559:2562:2737:2828:3027:3352:3865:3866:3867:3869:3870:3871:3872:3873:3874,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:
X-Spam-Score-rbl_summary:  none
X-Spam-Score-Phishing_status:  no
From: "Nigel Swinson" <[email-masked]>
To: "Alexey Melnikov" <[email-masked]>, "Kjetil Torgrim Homme" <[email-masked]>
Cc: "MTA filtering mailing list" <[email-masked]>
Subject: Re: reject incompatibility
Date: Mon, 31 Jul 2006 18:10:03 +0100
Sender: [email-masked]

>    with actions that cause mail delivery, such as "keep", "fileinto",

I'm happy with that.

> "SHOULD reject be incompatible with discard"?

Discard just cancels the implicit keep, as does any other action, so discard+?=?.  I don't see why discard+reject can't = reject.  I think the sentence is superflous, so agree it should be dropped.

Nigel

Date: Mon, 31 Jul 2006 17:36:20 +0100
From: Alexey Melnikov <[email-masked]>
To: Kjetil Torgrim Homme <[email-masked]>
CC: MTA filtering mailing list <[email-masked]>
Subject: Re: reject incompatibility
Sender: [email-masked]

Alexey

Date: Thu, 27 Jul 2006 22:35:38 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: Re: managesieve draft
Cc: Alexey Melnikov <[email-masked]>, Tim Martin <[email-masked]>
Sender: [email-masked]

As I mentioned on jabber, I'm happy with the changes you've made (and 
not made). I will review the document during last call, of course.

Arnt

Date: Thu, 27 Jul 2006 20:09:26 +0100
From: Alexey Melnikov <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>
CC: Tim Martin <[email-masked]>, [email-masked]
Subject: Re: managesieve draft
Sender: [email-masked]

Alexey Melnikov wrote:

> Arnt Gulbrandsen wrote:
>
>> The LISTSCRIPTS text implies that script names are sent one per line. 
>
[...]

>> I suggest changing the text: "If there exists an active script the 
>> atom ACTIVE is appended to the name of that script. The ACTIVE string 
>> MUST NOT appear for more than one script."
>
The new description now reads:

    This command lists the scripts the user has on the server. Upon
    success a list of CRLF separated script names (each represented
    as a quoted or literal string) is returned followed by an OK
    response. If there exists an active script the atom ACTIVE is
    appended to the corresponding script name. The atom ACTIVE
    MUST NOT appear on more than one response line.

Is it better?

Date: Thu, 27 Jul 2006 19:54:04 +0100
From: Alexey Melnikov <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>
CC: Tim Martin <[email-masked]>, [email-masked]
Subject: Re: managesieve draft
Sender: [email-masked]

Arnt Gulbrandsen wrote:

> The LISTSCRIPTS text implies that script names are sent one per line. 

> However, the syntax allows script names to contain linebreaks, e.g. 
> the following is legal according to the syntax:
>
>     C: Listscripts
>     S: "summer_script"
>     S: "vacation_script"
>     S: {12+}
>     S: main
>     S: script} ACTIVE

IMAP/ACAP would interpret the following as a single protocol "line":

    S: {12+}
    S: main
    S: script} ACTIVE

>     S: OK

I think the document should be changed to prohibit CRLFs in script names.

I've also updated the example to become:

    C: Listscripts
    S: "summer_script"
    S: "vacation_script"
    S: {13+}
    S: clever"script
    S: "main_script" ACTIVE
    S: OK

> I suggest changing the text: "If there exists an active script the 
> atom ACTIVE is appended to the name of that script. The ACTIVE string 
> MUST NOT appear for more than one script."

> Aaron told me in private mail that a well-known sieve UI couldn't 
> handle some perfectly legal syntax. Shame on whoever wrote that code. 
> Practically speaking, it might be advisable to use more varied syntax 
> in the managesieve specifition's examples, to make it more difficult 
> to overlook these things.

Date: Thu, 27 Jul 2006 18:27:38 +0100
From: Alexey Melnikov <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>
CC: Tim Martin <[email-masked]>, [email-masked]
Subject: Re: managesieve draft
Sender: [email-masked]

Arnt Gulbrandsen wrote:

> The getscript example is wrong - "48" should be about 54.

Correct, I will fix.

> Also, isn't the syntax wrong? It seems to me that the text describes 
> something like
>
>     response-getscript = ( string CRLF ok ) / no / bye

You don't like existing ABNF:

    response-getscript    = [string CRLF] response-oknobye

I.e. you don't like a script followed by NO :-). Or you don't like no 
script followed by OK?

> which implies that oknobye should be
>
>     oknobye = ok / no / bye
>
> Hm. I looked at the other literals, and the "{110+}" should be "{99+}" 
> by my count.

Correct as well.

Date: Thu, 27 Jul 2006 16:53:56 +0100
From: Alexey Melnikov <[email-masked]>
To: Kjetil Torgrim Homme <[email-masked]>
CC: MTA filtering mailing list <[email-masked]>
Subject: Re: reject incompatibility
Sender: [email-masked]

Subject: Re: reject incompatibility
From: Kjetil Torgrim Homme <[email-masked]>
To: Alexey Melnikov <[email-masked]>
Cc: MTA filtering mailing list <[email-masked]>
Date: Thu, 27 Jul 2006 16:32:11 +0200
Sender: [email-masked]

Date: Thu, 27 Jul 2006 15:01:25 +0100
From: Alexey Melnikov <[email-masked]>
To: Kjetil Torgrim Homme <[email-masked]>
CC: Nigel Swinson <[email-masked]>, MTA filtering mailing list <[email-masked]>
Subject: Re: reject incompatibility
Sender: [email-masked]

>loops is very much opposing that ideal.

Date: Thu, 27 Jul 2006 14:30:50 +0100
From: Alexey Melnikov <[email-masked]>
To: Nigel Swinson <[email-masked]>
CC: Kjetil Torgrim Homme <[email-masked]>, MTA filtering mailing list <[email-masked]>
Subject: Re: reject incompatibility
Sender: [email-masked]

Date: Thu, 27 Jul 2006 15:26:11 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: Re: reject incompatibility
Sender: [email-masked]

I'll second that.

Arnt

Subject: Re: reject incompatibility
From: Kjetil Torgrim Homme <[email-masked]>
To: Nigel Swinson <[email-masked]>
Cc: MTA filtering mailing list <[email-masked]>
Date: Thu, 27 Jul 2006 15:25:15 +0200
Sender: [email-masked]

X-Spam-Score-spf_status:  
X-Spam-Score-Spamcatcher1:  cb18e3e7683d56a29c85175ec58c1200
X-Spam-Score-Summary:  2,0,0,bf92f3c6cc513d56,0adfd6028cdbb650,[email-masked],,RULES_HIT:355:379:481:539:540:541:542:543:567:599:601:945:973:980:982:988:989:1155:1156:1261:1277:1311:1313:1314:1345:1437:1513:1515:1516:1518:1521:1534:1540:1587:1593:1594:1711:1730:1747:1766:1792:2073:2075:2078:2196:2199:2393:2559:2562:2737:2828:3027:3352:3865:3866:3867:3868:3869:3870:3871:3874,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:
X-Spam-Score-rbl_summary:  none
X-Spam-Score-Phishing_status:  no
From: "Nigel Swinson" <[email-masked]>
To: "Kjetil Torgrim Homme" <[email-masked]>
Cc: "MTA filtering mailing list" <[email-masked]>
Subject: Re: reject incompatibility
Date: Thu, 27 Jul 2006 14:08:17 +0100
Sender: [email-masked]

Nigel

Subject: Re: notification options
From: Kjetil Torgrim Homme <[email-masked]>
To: Alexey Melnikov <[email-masked]>
Cc: MTA filtering mailing list <[email-masked]>
Date: Thu, 27 Jul 2006 14:56:40 +0200
Sender: [email-masked]

-- 
Kjetil T.

Subject: reject incompatibility
From: Kjetil Torgrim Homme <[email-masked]>
To: Alexey Melnikov <[email-masked]>
Cc: MTA filtering mailing list <[email-masked]>
Date: Thu, 27 Jul 2006 14:44:18 +0200
Sender: [email-masked]

 

-- 
Kjetil T.

Date: Thu, 27 Jul 2006 14:38:43 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: Alexey Melnikov <[email-masked]>, Tim Martin <[email-masked]>
Subject: Re: managesieve draft
Cc: [email-masked]
Sender: [email-masked]

The LISTSCRIPTS text implies that script names are sent one per line. 
However, the syntax allows script names to contain linebreaks, e.g. the 
following is legal according to the syntax:

     C: Listscripts
     S: "summer_script"
     S: "vacation_script"
     S: {12+}
     S: main
     S: script} ACTIVE
     S: OK

I suggest changing the text: «If there exists an active script the atom 
ACTIVE is appended to the name of that script. The ACTIVE string MUST 
NOT appear for more than one script.»

Aaron told me in private mail that a well-known sieve UI couldn't handle 
some perfectly legal syntax. Shame on whoever wrote that code. 
Practically speaking, it might be advisable to use more varied syntax 
in the managesieve specifition's examples, to make it more difficult to 
overlook these things.

Arnt

Date: Wed, 26 Jul 2006 13:37:58 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: Alexey Melnikov <[email-masked]>, Tim Martin <[email-masked]>
Subject: managesieve draft
Cc: [email-masked]
Sender: [email-masked]

The getscript example is wrong - "48" should be about 54.

Also, isn't the syntax wrong? It seems to me that the text describes 
something like

     response-getscript = ( string CRLF ok ) / no / bye

which implies that oknobye should be

     oknobye = ok / no / bye

Hm. I looked at the other literals, and the "{110+}" should be "{99+}" 
by my count.

Arnt

Date: Wed, 26 Jul 2006 12:41:00 +0200
From: Michael Haardt <[email-masked]>
To: [email-masked]
Subject: Re: draft-ietf-sieve-3028bis-08.txt
Sender: [email-masked]

On Tue, Jul 25, 2006 at 06:17:42PM +0200, Kjetil Torgrim Homme wrote:
> speaking of CRLF, I'd like a clarification of multi-line strings in
> section 2.4.2 (some of its text duplicates the above, I'm not sure
> that's good).  something like:
> 
>    Any CRLF before the final period are considered part of the string.
> 
> to make it a little more clear that implementations should NOT change
> the CRLF into its local line delimiter sequence.

I second that.  Although obvious, once you think about it, it might
nevertheless save implementors some time.  CRLF line breaks in string
literals cause the string to contain CRLF, nothing else.

> I don't like this at all.  keep it simple, force the scripts to be
> encoded in UTF-8, it saves us a lot of grief and edge cases.  to be able
> to express arbitrary octets, add an extension for \x -- I think someone
> volunteered to write text?  if not, I'll be happy to.  note that the
> contents of a string during execution is potentially arbitrary octets
> (even NUL, as made clear in 2.7.2).

If a script contains arbitrary octets in string literals, UTF-8 aware text
processing tools will fail in decoding UTF-8.  Additionally, although
breaking a lot that way, Sieve still couldn't match NUL characters,
so we need an extension for matching truely arbitrary octets anyway.

I am not so sure something like \x is a good idea.  How should
a comparator working on UTF-8 characters (multibyte sequences) act
when it hits a string containing a code violation? How should "*" and
"?" work in that case? Right now, that can't happen.  Oops.  Actually,
it can, when "?"  matches a single octet of a multibyte sequence, using
an octet-comparator, and you build a new string from the matched part.

In past discussions, we spoke of a new match that could take a hex
string as argument, and agreed the first person needing it badly will
write the draft.  As well as matching raw headers, nobody did. :)

Michael

Date: Wed, 26 Jul 2006 12:22:13 +0200
From: Michael Haardt <[email-masked]>
To: [email-masked]
Subject: Re: Multiple tagged arguments with the same tag?
Sender: [email-masked]

On Tue, Jul 25, 2006 at 05:04:33PM +0200, Kjetil Torgrim Homme wrote:
> okay.  the current draft also says "These next tokens [after the tagged
> argument] may be numbers or strings but they are never blocks."  this
> seems to imply string lists are allowed, but it's not quite clear to me.
> 
> if we rule out
> 
>   someaction :recipient "one" :recipient "two"
> 
> it would be useful to allow extensions to do
> 
>   someaction :recipient ["one", "two"]

The vacation extension already uses

  [":addresses" string-list]

To me, 3028 meant to say that tagged arguments can not be blocks, only
data, and worded it in an unfortunate way.

Michael

Subject: Re: Multiple tagged arguments with the same tag?
From: Aaron Stone <[email-masked]>
To: Ned Freed <[email-masked]>
Cc: [email-masked]
Date: Wed, 26 Jul 2006 01:56:35 -0700
Sender: [email-masked]

On Tue, 2006-07-25 at 08:44 -0700, Ned Freed wrote:
> > On Sat, 2006-07-22 at 16:24 -0700, Ned Freed wrote:
[snip]
> I see no reason not to allow string lists as paramater arguments. My
> implementation certainly allows them.
> 
> > if we rule out
> 
> >   someaction :recipient "one" :recipient "two"
> 
> > it would be useful to allow extensions to do
> 
> >   someaction :recipient ["one", "two"]
> 
> Agreed.

Neat, I like this.

Aaron

To: [email-masked]
Cc: [email-masked]
From: [email-masked]
Subject: I-D ACTION:draft-ietf-sieve-3028bis-08.txt 
Date: Tue, 25 Jul 2006 15:50:01 -0400
Sender: [email-masked]

--NextPart

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Sieve Mail Filtering Language Working Group of the IETF.

	Title		: Sieve: An Email Filtering Language
	Author(s)	: T. Showalter, P. Guenther
	Filename	: draft-ietf-sieve-3028bis-08.txt
	Pages		: 39
	Date		: 2006-7-25
	
This document describes a language for filtering email messages at
time of final delivery.  It is designed to be implementable on either
a mail client or mail server.  It is meant to be extensible, simple,
and independent of access protocol, mail architecture, and operating
system.  It is suitable for running on a mail server where users may
not be allowed to execute arbitrary programs, such as on black box
Internet Message Access Protocol (IMAP) servers, as it has no
variables, loops, or ability to shell out to external programs.

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-sieve-3028bis-08.txt

To remove yourself from the I-D Announcement list, send a message to 
[email-masked] with the word unsubscribe in the body of the message.  
You can also visit https://www1.ietf.org/mailman/listinfo/I-D-announce 
to change your subscription settings.

Internet-Drafts are also available by anonymous FTP. Login with the username
"anonymous" and a password of your e-mail address. After logging in,
type "cd internet-drafts" and then
	"get draft-ietf-sieve-3028bis-08.txt".

A list of Internet-Drafts directories can be found in
http://www.ietf.org/shadow.html 
or ftp://ftp.ietf.org/ietf/1shadow-sites.txt

Internet-Drafts can also be obtained by e-mail.

Send a message to:
	[email-masked].
In the body type:
	"FILE /internet-drafts/draft-ietf-sieve-3028bis-08.txt".
	
NOTE:	The mail server at ietf.org can return the document in
	MIME-encoded form by using the "mpack" utility.  To use this
	feature, insert the command "ENCODING mime" before the "FILE"
	command.  To decode the response(s), you will need "munpack" or
	a MIME-compliant mail reader.  Different MIME-compliant mail readers
	exhibit different behavior, especially when dealing with
	"multipart" MIME messages (i.e. documents which have been split
	up into multiple messages), so check your local documentation on
	how to manipulate these messages.

Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.

--NextPart
Content-Type: Multipart/Alternative; Boundary="OtherAccess"

--OtherAccess
Content-Type: Message/External-body;
	access-type="mail-server";
	server="[email-masked]"

Content-Type: text/plain
Content-ID:	<[email-masked]>

ENCODING mime
FILE /internet-drafts/draft-ietf-sieve-3028bis-08.txt

--OtherAccess
Content-Type: Message/External-body;
	name="draft-ietf-sieve-3028bis-08.txt";
	site="ftp.ietf.org";
	access-type="anon-ftp";
	directory="internet-drafts"

Content-Type: text/plain
Content-ID:	<[email-masked]>

--OtherAccess--

--NextPart--

To: [email-masked]
Cc: [email-masked]
From: [email-masked]
Subject: I-D ACTION:draft-ietf-sieve-editheader-05.txt 
Date: Tue, 25 Jul 2006 15:50:01 -0400
Sender: [email-masked]

--NextPart

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Sieve Mail Filtering Language Working Group of the IETF.

	Title		: Sieve Email Filtering: Editheader Extension
	Author(s)	: P. Guenther, J. Degener
	Filename	: draft-ietf-sieve-editheader-05.txt
	Pages		: 9
	Date		: 2006-7-25
	
This document defines two new actions for the "Sieve" email
   filtering language that add and delete email header fields.

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-sieve-editheader-05.txt

To remove yourself from the I-D Announcement list, send a message to 
[email-masked] with the word unsubscribe in the body of the message.  
You can also visit https://www1.ietf.org/mailman/listinfo/I-D-announce 
to change your subscription settings.

Internet-Drafts are also available by anonymous FTP. Login with the username
"anonymous" and a password of your e-mail address. After logging in,
type "cd internet-drafts" and then
	"get draft-ietf-sieve-editheader-05.txt".

A list of Internet-Drafts directories can be found in
http://www.ietf.org/shadow.html 
or ftp://ftp.ietf.org/ietf/1shadow-sites.txt

Internet-Drafts can also be obtained by e-mail.

Send a message to:
	[email-masked].
In the body type:
	"FILE /internet-drafts/draft-ietf-sieve-editheader-05.txt".
	
NOTE:	The mail server at ietf.org can return the document in
	MIME-encoded form by using the "mpack" utility.  To use this
	feature, insert the command "ENCODING mime" before the "FILE"
	command.  To decode the response(s), you will need "munpack" or
	a MIME-compliant mail reader.  Different MIME-compliant mail readers
	exhibit different behavior, especially when dealing with
	"multipart" MIME messages (i.e. documents which have been split
	up into multiple messages), so check your local documentation on
	how to manipulate these messages.

Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.

--NextPart
Content-Type: Multipart/Alternative; Boundary="OtherAccess"

--OtherAccess
Content-Type: Message/External-body;
	access-type="mail-server";
	server="[email-masked]"

Content-Type: text/plain
Content-ID:	<[email-masked]>

ENCODING mime
FILE /internet-drafts/draft-ietf-sieve-editheader-05.txt

--OtherAccess
Content-Type: Message/External-body;
	name="draft-ietf-sieve-editheader-05.txt";
	site="ftp.ietf.org";
	access-type="anon-ftp";
	directory="internet-drafts"

Content-Type: text/plain
Content-ID:	<[email-masked]>

--OtherAccess--

--NextPart--

Date: Tue, 25 Jul 2006 17:39:52 +0100
From: Alexey Melnikov <[email-masked]>
To: MTA filtering mailing list <[email-masked]>
Subject: Tentative minutes for Sieve WG meeting in Montreal
Sender: [email-masked]

Hi folks,

Document status:

Regex:

Notifications:

XMPP notifications:

ManageSieve:

Include:

Date: Tue, 25 Jul 2006 17:32:24 +0100
From: Alexey Melnikov <[email-masked]>
To: Michael Haardt <[email-masked]>
CC: [email-masked]
Subject: Re: Multiple tagged arguments with the same tag?
Sender: [email-masked]

Ned Freed wrote:

>>A simple question: Are multiple tagged arguments with the same tag
>>allowed?
>>    
>>
>My implementation checks and disallows them.
>  
>
CMU implementation checks and disallows as well (at least this is true 
for comparators).

>>Just guessing, they are not, but 3028bis should specify that.  I suppose
>>nobody wants to use CommonLISP as normative reference. :)
>>    
>>
>Agreed on both counts, although the CL book is excellent.
>  
>

Subject: Re: draft-ietf-sieve-3028bis-08.txt
From: Kjetil Torgrim Homme <[email-masked]>
To: Philip Guenther <[email-masked]>
Cc: [email-masked]
Date: Tue, 25 Jul 2006 18:17:42 +0200
Sender: [email-masked]

On Tue, 2006-07-25 at 07:46 -0700, Philip Guenther wrote:
> 1) in section 2.1, replace
> ----
>    The language is represented in UTF-8, as specified in [UTF-8].
> 
>    Tokens in the US-ASCII range are considered case-insensitive.
> ----
>    with 
> ----
>    With the exceptions of strings and comments, the language is limited
>    to US-ASCII characters.  Strings and comments may contain octets
>    outside the US-ASCII range.  Specifically, they will normally be in
>    UTF-8, as specified in [UTF-8].  NUL (US-ASCII 0) is never permitted
>    in scripts, while CR and LF can only appear as the CRLF line ending.
> 
>    Tokens other than strings are considered case-insensitive.
> ----

"normally" isn't good if you can't know if your script is normal or not.
I suggest you rephrase it as "Strings and comments may sometimes have a
different encoding than UTF-8, so for consistent behaviour across
implementations, it is recommended to avoid non US-ASCII".  (yes, tongue
is firmly in cheek.)

speaking of CRLF, I'd like a clarification of multi-line strings in
section 2.4.2 (some of its text duplicates the above, I'm not sure
that's good).  something like:

   Any CRLF before the final period are considered part of the string.

to make it a little more clear that implementations should NOT change
the CRLF into its local line delimiter sequence.

> 2) in section 2.4.2 ("Strings"), add the following paragraph:
> ----
>    As messages header data is converted to [UTF-8] for comparison (see
>    section 2.7.2), most strings will use the UTF-8 encoding.  However,
>    implementations MUST accept all strings that match the grammar in
>    section 8.  The ability to use non-UTF-8 encoded strings matches
>    existing practice and has proven to be useful both in tests for
>    invalid data and in arguments containing raw MIME parts for extension
>    actions that generate outgoing messages.
> ----
>    That appears directly after the paragraph that starts "Non-printing
>    characters..."
> 
> Any comments on the above or the full text or do people feel this
> is ready to be submitted to the IESG?

I don't like this at all.  keep it simple, force the scripts to be
encoded in UTF-8, it saves us a lot of grief and edge cases.  to be able
to express arbitrary octets, add an extension for \x -- I think someone
volunteered to write text?  if not, I'll be happy to.  note that the
contents of a string during execution is potentially arbitrary octets
(even NUL, as made clear in 2.7.2).

I'm afraid I didn't save the Jabber log from IETF-66, did anyone else?
it would be useful to post it here.
-- 
Kjetil T.

Cc: Ned Freed <[email-masked]>, Michael Haardt <[email-masked]>, [email-masked]
To: Kjetil Torgrim Homme <[email-masked]>
Date: Tue, 25 Jul 2006 08:44:17 -0700 (PDT)
From: Ned Freed <[email-masked]>
Subject: Re: Multiple tagged arguments with the same tag?
Sender: [email-masked]

> On Sat, 2006-07-22 at 16:24 -0700, Ned Freed wrote:
> >
> > > A simple question: Are multiple tagged arguments with the same tag
> > > allowed?
> >
> > My implementation checks and disallows them.

> okay.  the current draft also says "These next tokens [after the tagged
> argument] may be numbers or strings but they are never blocks."  this
> seems to imply string lists are allowed, but it's not quite clear to me.

I see no reason not to allow string lists as paramater arguments. My
implementation certainly allows them.

> if we rule out

>   someaction :recipient "one" :recipient "two"

> it would be useful to allow extensions to do

>   someaction :recipient ["one", "two"]

Agreed.

				Ned

Subject: Re: Multiple tagged arguments with the same tag?
From: Kjetil Torgrim Homme <[email-masked]>
To: Ned Freed <[email-masked]>
Cc: Michael Haardt <[email-masked]>, [email-masked]
Date: Tue, 25 Jul 2006 17:04:33 +0200
Sender: [email-masked]

On Sat, 2006-07-22 at 16:24 -0700, Ned Freed wrote:
> 
> > A simple question: Are multiple tagged arguments with the same tag
> > allowed?
> 
> My implementation checks and disallows them.

okay.  the current draft also says "These next tokens [after the tagged
argument] may be numbers or strings but they are never blocks."  this
seems to imply string lists are allowed, but it's not quite clear to me.

if we rule out

  someaction :recipient "one" :recipient "two"

it would be useful to allow extensions to do

  someaction :recipient ["one", "two"]

-- 
Kjetil T.

To: [email-masked]
From: Philip Guenther <[email-masked]>
Subject: draft-ietf-sieve-3028bis-08.txt
Date: Tue, 25 Jul 2006 07:46:34 -0700
Sender: [email-masked]

I've submitted draft-ietf-sieve-3028bis-08, whose change log reads:

   Changes from draft-ietf-sieve-3028bis-07.txt
    1. Improve description in the extension registrations
    2. Give IANA directions on how to massage existing registrations
       into the new form
    3. Added "Changes from RFC 3028" section
    4. Updated pages numbers in table of contents
    5. Permit non-UTF-8 octet sequences in comments
    6. It's an error to use conflicting or repeated tagged and optional
       arguments
    7. Update description of script encoding

That last item consisted of two larger changes plus some minor
tweaks, the large changes being:

1) in section 2.1, replace
----
   The language is represented in UTF-8, as specified in [UTF-8].

   Tokens in the US-ASCII range are considered case-insensitive.
----
   with 
----
   With the exceptions of strings and comments, the language is limited
   to US-ASCII characters.  Strings and comments may contain octets
   outside the US-ASCII range.  Specifically, they will normally be in
   UTF-8, as specified in [UTF-8].  NUL (US-ASCII 0) is never permitted
   in scripts, while CR and LF can only appear as the CRLF line ending.

   Tokens other than strings are considered case-insensitive.
----

2) in section 2.4.2 ("Strings"), add the following paragraph:
----
   As messages header data is converted to [UTF-8] for comparison (see
   section 2.7.2), most strings will use the UTF-8 encoding.  However,
   implementations MUST accept all strings that match the grammar in
   section 8.  The ability to use non-UTF-8 encoded strings matches
   existing practice and has proven to be useful both in tests for
   invalid data and in arguments containing raw MIME parts for extension
   actions that generate outgoing messages.
----
   That appears directly after the paragraph that starts "Non-printing
   characters..."

   (And yes, I've already changed "As messages header" to "As message
   header" for the next rev.  It's amazing how many times you can
   look right through a typo.)

Any comments on the above or the full text or do people feel this
is ready to be submitted to the IESG?

Philip Guenther

To: [email-masked]
Cc: [email-masked]
From: [email-masked]
Subject: I-D ACTION:draft-ietf-sieve-notify-xmpp-02.txt 
Date: Mon, 24 Jul 2006 15:50:01 -0400
Sender: [email-masked]

--NextPart

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Sieve Mail Filtering Language Working Group of the IETF.

	Title		: Sieve Notification Mechanism: xmpp
	Author(s)	: P. Saint-Andre, A. Melnikov
	Filename	: draft-ietf-sieve-notify-xmpp-02.txt
	Pages		: 9
	Date		: 2006-7-24
	
This document describes a profile of the Sieve extension for
   notifications, to allow notifications to be sent over the Extensible
   Messaging and Presence Protocol (XMPP), also known as Jabber.

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-sieve-notify-xmpp-02.txt

To remove yourself from the I-D Announcement list, send a message to 
[email-masked] with the word unsubscribe in the body of the message.  
You can also visit https://www1.ietf.org/mailman/listinfo/I-D-announce 
to change your subscription settings.

Internet-Drafts are also available by anonymous FTP. Login with the username
"anonymous" and a password of your e-mail address. After logging in,
type "cd internet-drafts" and then
	"get draft-ietf-sieve-notify-xmpp-02.txt".

A list of Internet-Drafts directories can be found in
http://www.ietf.org/shadow.html 
or ftp://ftp.ietf.org/ietf/1shadow-sites.txt

Internet-Drafts can also be obtained by e-mail.

Send a message to:
	[email-masked].
In the body type:
	"FILE /internet-drafts/draft-ietf-sieve-notify-xmpp-02.txt".
	
NOTE:	The mail server at ietf.org can return the document in
	MIME-encoded form by using the "mpack" utility.  To use this
	feature, insert the command "ENCODING mime" before the "FILE"
	command.  To decode the response(s), you will need "munpack" or
	a MIME-compliant mail reader.  Different MIME-compliant mail readers
	exhibit different behavior, especially when dealing with
	"multipart" MIME messages (i.e. documents which have been split
	up into multiple messages), so check your local documentation on
	how to manipulate these messages.

Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.

--NextPart
Content-Type: Multipart/Alternative; Boundary="OtherAccess"

--OtherAccess
Content-Type: Message/External-body;
	access-type="mail-server";
	server="[email-masked]"

Content-Type: text/plain
Content-ID:	<[email-masked]>

ENCODING mime
FILE /internet-drafts/draft-ietf-sieve-notify-xmpp-02.txt

--OtherAccess
Content-Type: Message/External-body;
	name="draft-ietf-sieve-notify-xmpp-02.txt";
	site="ftp.ietf.org";
	access-type="anon-ftp";
	directory="internet-drafts"

Content-Type: text/plain
Content-ID:	<[email-masked]>

--OtherAccess--

--NextPart--

To: IETF-Announce <[email-masked]>
From: The IESG <[email-masked]>
Subject: Last Call: 'SIEVE Email Filtering: Spamtest and Virustest Extensions'  to Proposed Standard (draft-ietf-sieve-spamtestbis) 
Reply-to: [email-masked]
CC: <[email-masked]>
Date: Mon, 24 Jul 2006 14:56:25 -0400
Sender: [email-masked]

The IESG has received a request from the Sieve Mail Filtering Language WG to 
consider the following document:

- 'SIEVE Email Filtering: Spamtest and Virustest Extensions '
   <draft-ietf-sieve-spamtestbis-05.txt> as a Proposed Standard
   to obsolete RFC 3685.

The IESG plans to make a decision in the next few weeks, and solicits
final comments on this action.  Please send any comments to the
[email-masked] or [email-masked] mailing lists by 2006-08-07.

The file can be obtained via
http://www.ietf.org/internet-drafts/draft-ietf-sieve-spamtestbis-05.txt

Cc: [email-masked]
To: Michael Haardt <[email-masked]>
Date: Sat, 22 Jul 2006 16:24:47 -0700 (PDT)
From: Ned Freed <[email-masked]>
Subject: Re: Multiple tagged arguments with the same tag?
Sender: [email-masked]

> A simple question: Are multiple tagged arguments with the same tag
> allowed?

My implementation checks and disallows them.

> Just guessing, they are not, but 3028bis should specify that.  I suppose
> nobody wants to use CommonLISP as normative reference. :)

Agreed on both counts, although the CL book is excellent.

				Ned

From: The IESG <[email-masked]>
To: IETF-Announce <[email-masked]>
Cc: Internet Architecture Board <[email-masked]>, RFC Editor <[email-masked]>, sieve mailing list <[email-masked]>, sieve chair <[email-masked]>, sieve chair <[email-masked]>
Subject: Protocol Action: 'SIEVE Email Filtering: IMAP flag Extension'  to Proposed Standard 
Date: Fri, 21 Jul 2006 13:29:36 -0400
Sender: [email-masked]

The IESG has approved the following document:

- 'SIEVE Email Filtering: IMAP flag Extension '
   <draft-ietf-sieve-imapflags-05.txt> as a Proposed Standard

This document is the product of the Sieve Mail Filtering Language Working 
Group. 

The IESG contact persons are Lisa Dusseault and Ted Hardie.

A URL of this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-sieve-imapflags-05.txt

Technical Summary

  The SIEVE imap4flags extension provides the ability for a 
  SIEVE script to set flags on messages as they are delivered 
  into an IMAP message store.

  The extension defines a number of new actions, and modifies 
  two existing actions to allow the setting of flags. It can 
  be used in the presence of the variables extension, or without 
  it.

   The draft has a description of how interactions with other 
  SIEVE extensions/actions are handled.

  There is a security considerations section.

  This draft is being submitted for Proposed Standard.

Working Group Summary

  The imap4flags extension was originally submitted as an 
  individual contribution several years ago. It has had minor 
  changes since then, mostly in relation to its interaction with 
  the variable extension. There are now several deployed 
  implementations of this specification. Working group last call 
  was issued in September 2005 and a number of minor 
  clarifications and errors were fixed based on comments, and 
  subsequent post-last-call comments.

Protocol Quality

  Many implementations of this extension have already been 
  developed and deployed. Most participants are eager to see 
  this spec published as an RFC.

  There were at least 6 individuals (not including WG chairs) 
  who posted comments during or post WG last call, and who 
  indicated approval of the spec, with the WGLC changes 
  included.

  The SIEVE WG has reviewed the draft and discussed it at 
  several meetings.  Last-call (and post last-call) reviews 
  included:
   - Philip Guenther
   - David Cridland
   - Aaron Stone
   - Ken Murchison
   - Ned Freed

  Lisa Dusseault reviewed this spec for the IESG.

Note to RFC Editor
 
  On publication, please remove Section 0 (zero)
 
IANA Note

 Yoshiko Chong reviewed this for IANA.  There is an IANA action to register a
new SIEVE extension.

Date: Fri, 21 Jul 2006 16:21:51 +0200
From: Michael Haardt <[email-masked]>
To: [email-masked]
Subject: Multiple tagged arguments with the same tag?
Sender: [email-masked]

A simple question: Are multiple tagged arguments with the same tag
allowed?

Just guessing, they are not, but 3028bis should specify that.  I suppose
nobody wants to use CommonLISP as normative reference. :)

Michael

From: The IESG <[email-masked]>
To: IETF-Announce <[email-masked]>
Date: Thu, 20 Jul 2006 17:26:06 -0400
Cc: sieve mailing list <[email-masked]>, sieve chair <[email-masked]>, Internet Architecture Board <[email-masked]>, sieve chair <[email-masked]>, RFC Editor <[email-masked]>
Subject: Protocol Action: 'Sieve Email Filtering -- Subaddress  Extension' to Proposed Standard 
Sender: [email-masked]

The IESG has approved the following document:

- 'Sieve Email Filtering -- Subaddress Extension '
   <draft-ietf-sieve-rfc3598bis-05.txt> as a Proposed Standard

This document is the product of the Sieve Mail Filtering Language Working 
Group. 

This is a revision of RFC 3598. The "subaddress" SIEVE mail filtering language
extension adds two tagged arguments to the address tests to allow for
independent testing of "user" and "detail" parts of a local part of an email
address that originates from a email system that supports "subaddressing" or
"detailed addressing" (e.g., "[email-masked]"). This extension helps
with Sieve script portability and eliminate the need for script writers to know
exact subaddressing syntax, which can vary from one email system to another.

Process and goals history of this draft.

This document is a revision of RFC 3598 and thus contains editorial
clarifications, fixes to examples, updated boilerplate and references. Based on
feedback from WG members the original wording in RFC 3598 was extended to allow
for more flexible subaddressing syntaxes, for example one implementation can
use"<user>+<details>" and another can use "<details>--<user>". RFC 3598 only
allowed for the "<user>+<details>" form.

There are already multiple implementations of RFC 3598.

The IESG contact persons are Lisa Dusseault and Ted Hardie.

A URL of this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-sieve-rfc3598bis-05.txt

Technical Summary

This is a revision of RFC 3598. The "subaddress" SIEVE mail filtering language
extension adds two tagged arguments to the address tests to allow for
independent testing of "user" and "detail" parts of a local part of an email
address that originates from a email system that supports "subaddressing" or
"detailed addressing" (e.g., "[email-masked]"). This extension helps
with Sieve script portability and eliminate the need for script writers to know
exact subaddressing syntax, which can vary from one email system to another.
 
Working Group Summary
 
No significant dissent. Good working group consensus.
 
Protocol Quality

The SIEVE WG has reviewed the draft and discussed it at a several meetings.
Last-call (and post last-call) reviews included:
- Michael Haardt
- Kjetil Torgrim Homme
- Ned Freed
- Mark E. Mallett

Additional reviews were done by:
- Arnt Gulbrandsen
- Dave Cridland

Note to RFC Editor
 
  As a clarification, add a para. at the end of the Introduction:

  "Note that parsing the addressee of an incoming message
  into 'user' and 'detail' parts is a local matter not specified
  in this document."

  Also please review during editing whether the use of ' and "
  is optimal for clarity.

_______________________________________________
IETF-Announce mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/ietf-announce

From: The IESG <[email-masked]>
To: IETF-Announce <[email-masked]>
Cc: Internet Architecture Board <[email-masked]>, RFC Editor <[email-masked]>, sieve mailing list <[email-masked]>, sieve chair <[email-masked]>, sieve chair <[email-masked]>
Subject: Protocol Action: 'Sieve Email Filtering -- Subaddress  Extension' to Proposed Standard 
Date: Thu, 20 Jul 2006 17:26:06 -0400
Sender: [email-masked]

The IESG has approved the following document:

- 'Sieve Email Filtering -- Subaddress Extension '
   <draft-ietf-sieve-rfc3598bis-05.txt> as a Proposed Standard

This document is the product of the Sieve Mail Filtering Language Working 
Group. 

This is a revision of RFC 3598. The "subaddress" SIEVE mail filtering language
extension adds two tagged arguments to the address tests to allow for
independent testing of "user" and "detail" parts of a local part of an email
address that originates from a email system that supports "subaddressing" or
"detailed addressing" (e.g., "[email-masked]"). This extension helps
with Sieve script portability and eliminate the need for script writers to know
exact subaddressing syntax, which can vary from one email system to another.

Process and goals history of this draft.

This document is a revision of RFC 3598 and thus contains editorial
clarifications, fixes to examples, updated boilerplate and references. Based on
feedback from WG members the original wording in RFC 3598 was extended to allow
for more flexible subaddressing syntaxes, for example one implementation can
use"<user>+<details>" and another can use "<details>--<user>". RFC 3598 only
allowed for the "<user>+<details>" form.

There are already multiple implementations of RFC 3598.

The IESG contact persons are Lisa Dusseault and Ted Hardie.

A URL of this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-sieve-rfc3598bis-05.txt

Technical Summary

This is a revision of RFC 3598. The "subaddress" SIEVE mail filtering language
extension adds two tagged arguments to the address tests to allow for
independent testing of "user" and "detail" parts of a local part of an email
address that originates from a email system that supports "subaddressing" or
"detailed addressing" (e.g., "[email-masked]"). This extension helps
with Sieve script portability and eliminate the need for script writers to know
exact subaddressing syntax, which can vary from one email system to another.
 
Working Group Summary
 
No significant dissent. Good working group consensus.
 
Protocol Quality

The SIEVE WG has reviewed the draft and discussed it at a several meetings.
Last-call (and post last-call) reviews included:
- Michael Haardt
- Kjetil Torgrim Homme
- Ned Freed
- Mark E. Mallett

Additional reviews were done by:
- Arnt Gulbrandsen
- Dave Cridland

Note to RFC Editor
 
  As a clarification, add a para. at the end of the Introduction:

  "Note that parsing the addressee of an incoming message
  into 'user' and 'detail' parts is a local matter not specified
  in this document."

  Also please review during editing whether the use of ' and "
  is optimal for clarity.

Date: Wed, 19 Jul 2006 13:47:55 +0100
From: Alexey Melnikov <[email-masked]>
To: Kristin Hubner <[email-masked]>
CC: [email-masked]
Subject: Re: List of open issues with Sieve reject draft  (draft-ietf-sieve-refuse-reject-02.txt)
Sender: [email-masked]

Kristin Hubner wrote:

> On Jul 18, 2006, at 9:23 AM, Alexey Melnikov wrote:
>
>> Aaron Stone wrote:
>>
>>> On Sat, 2006-07-15 at 15:16 +0100, Alexey Melnikov wrote:
>>>
>>>>>> 2). Non ASCII text in rejection string - should it cause creation 
>>>>>> of DSN/MDN, runtime error or stripping of non-ASCII content?
>>>>>> Should we add a tagged argument to control this?
>>>>>> Or maybe we need another capability to enable UTF-8 clean rejection?
>>>>>
>>>>> That capability needs to be added to SMTP, right?
>>>>
>>>> Yes, that would be an SMTP extension for allowing of UTF-8 human 
>>>> readable response text.
>>>
>>> I'd rather like to see such a UTF-8 extension, instead of the
>>> workarounds being proposed to shoehorn messages into US-ASCII.
>>
>> Well, I will be working on one, but it is not clear when the document 
>> will be done and how long it would
>
>   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> I would recommend working on that with the IETF EAI Working Group, if
> you aren't already doing so.

Yes, Chris Newman has suggested to submit the draft to EAI WG.

Date: Wed, 19 Jul 2006 10:32:01 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: Re: List of open issues with Sieve reject draft(draft-ietf-sieve-refuse-reject-02.txt)
Cc: Nigel Swinson <[email-masked]>, Aaron Stone <[email-masked]>, Kjetil Torgrim Homme <[email-masked]>
Sender: [email-masked]

Aaron Stone writes:
> Would it be worth someone's getting a legal review of this issue? A 
> few folks on this list are with companies that have general counsels,

I'd expect most are, or retain the services of an external lawyer for 
the same purpose. (In the case of my employer, an external lawyer. Nice 
chap.)

> and it might be worth asking the question, "What if we get sued for 
> not being aware of something that came in an email that got protocol 
> rejected?"

But who will turn around and repeat the answer to the general public? Not I.

Arnt

Cc: Aaron Stone <[email-masked]>, [email-masked]
From: Kristin Hubner <[email-masked]>
Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
Date: Tue, 18 Jul 2006 13:41:52 -0700
To: Alexey Melnikov <[email-masked]>
Sender: [email-masked]

On Jul 18, 2006, at 9:23 AM, Alexey Melnikov wrote:

>
> Aaron Stone wrote:
>
>> On Sat, 2006-07-15 at 15:16 +0100, Alexey Melnikov wrote:
>>
>>>>> 2). Non ASCII text in rejection string - should it cause creation 
>>>>> of DSN/MDN, runtime error or stripping of non-ASCII content?
>>>>> Should we add a tagged argument to control this?
>>>>> Or maybe we need another capability to enable UTF-8 clean 
>>>>> rejection?
>>>>>
>>>> That capability needs to be added to SMTP, right?
>>>>
>>> Yes, that would be an SMTP extension for allowing of UTF-8 human 
>>> readable response text.
>>>
>>
>> I'd rather like to see such a UTF-8 extension, instead of the
>> workarounds being proposed to shoehorn messages into US-ASCII.
>>
> Well, I will be working on one, but it is not clear when the document 
> will be done and how long it would
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I would recommend working on that with the IETF EAI Working Group, if
you aren't already doing so.

Regards,

Kristin

> take to deploy it.
> We would need some advice in the Sieve reject draft to address short 
> term problems.
>

Cc: Alexey Melnikov <[email-masked]>, [email-masked]
From: Kristin Hubner <[email-masked]>
Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
Date: Tue, 18 Jul 2006 13:36:40 -0700
To: Aaron Stone <[email-masked]>
Sender: [email-masked]

On Jul 17, 2006, at 6:21 AM, Aaron Stone wrote:

>
> On Sat, 2006-07-15 at 15:16 +0100, Alexey Melnikov wrote:
>>>> 2). Non ASCII text in rejection string - should it cause creation of
>>>> DSN/MDN, runtime error or stripping of non-ASCII content?
>>>> Should we add a tagged argument to control this?
>>>> Or maybe we need another capability to enable UTF-8 clean rejection?
>>>>
>>>>
>>> That capability needs to be added to SMTP, right?
>>>
>>>
>> Yes, that would be an SMTP extension for allowing of UTF-8 human
>> readable response text.
>
> I'd rather like to see such a UTF-8 extension, instead of the
> workarounds being proposed to shoehorn messages into US-ASCII.

Of course it would be nice to be able to issue other sorts of text
in SMTP responses.  But such proposals have been going nowhere for
years.  However, the IETF EAI (Email Address Internationalization)
Working Group work may finally kick this into happening.  (After
all, currently SMTP responses often include a domain name such as on
the banner line, or an e-mail address such as in a response to a
RCPT TO: or EXPN: command.  So internationalizing email addresses
leads right into at least some internationalization of SMTP sessions.)
Note that although that although the EAI focus is on
internationalization of email addresses, their charter is a more
general examination of internationalization of the email environment,
as internationalized email addresses rapidly bring up other issues.

Quoting from Section 1.2, Problem Statement, of

            Overview and Framework for Internationalized Email

http://www.ietf.org/internet-drafts/draft-ietf-eai-framework-01.txt

    Internationalization of email addresses is not merely a matter of
    changing the SMTP envelope, or of modifying the From, To, and Cc
    headers, or of permitting upgraded mail user agents (MUAs) to decode
    a special coding and display local characters.  To be perceived as
    usable by end users, the addresses must be internationalized, and
    handled consistently, in all of the contexts in which they occur.
    That requirement has far-reaching implications: collections of
    patches and workarounds are not adequate.  Even if they were
    adequate, that approach risks an assortment of implementations with
    different sets of patches and workarounds having been applied with
    consequent user confusion about what is actually be run and
    supported.  Instead, we need to build a fully internationalized email
    environment, focusing on permitting efficient communication among
    those who share a language or other community (see [I18Nemail-
    constraints] for an extended discussion of this optimization).

And take a look at the mentioned I18Nemail-constraints:

  Internationalization in Internet Applications: Issues, Tradeoffs, and
                             Email Addresses

http://www.ietf.org/internet-drafts/draft-klensin-ima-constraints-00.txt

especially

3.3.  Communication across languages and cultures

    All of this implies that those who communicate across language and
    cultural groups will be required to learn, if they do not understand
    already, to be quite self-aware about the use of internationalized
    identifiers, as well as other examples of characters or languages,
    across those boundaries.  There will be a lower level of demands on
    those who communicate only in a single language and within a single
    culture.  This is, of course, not an issue that originated with the
    introduction of the Internet: it has been this way since languages
    and scripts started to differentiate from each other and since
    different cultures came into contact.  As we internationalize the
    network, a user of a given language that cannot be fully expressed in
    ASCII will always be faced with a choice between insisting on the
    purism of an email address local part and domain name in the script
    associated with the local language and maximizing the number of
    people who can communicate with her conveniently.  In some cases, the
    right answer will be "local language", in others, it will be "ASCII",
    and in still others it will be "maintain two addresses".  We are not
    required, and should not try, to make that choice for users: the
    users should make the best choices for their own needs, preferably
    after understanding the consequences of the choices.  As a community,
    we will need to be very clever about user interfaces.  As an example
    much more general than email, if someone with no ability to read
    Chinese characters sees a domain name written in those characters and
    decides she wants to copy and paste it somewhere, the copy mechanism
    is probably going to need to provide for both "copy the Chinese" and
    "convert quietly to punycode and copy that".  Either choice, by
    itself, will be wrong sometimes.  Users who both want to use Chinese-
    script domain names and communicate outside that language or script
    or culture are going to either learn to understand the difference and
    relationship, or develop some good rituals that work, or the network
    will keep slapping them in the head with failed lookups or bounced
    mail until they do learn.  Of course, substantially any language or
    script could be substituted for "Chinese" in that example.

Substitute in the words "error response text" where the above discussion
talks about email addresses, and I think it still applies pretty well.

But in any case, take a look at the EAI planned timeline, which is at
this point merely for _experimental_ RFCs (to start testing out ideas
and implementations), and then keep in mind that even supposing an RFC
comes out with an SMTP extension for non-US-ASCII text in SMTP dialogue
(in particular, non-US-ASCII text in SMTP responses), there will be a
long (long!) time before one can forget about the old software that 
doesn't
support such.  So as far as SMTP responses are concerned, either 
sticking
to US-ASCII, or being able to downgrade from non-US-ASCII to US-ASCII 
when
dealing with pre-extension SMTP software is going to be necessary for a
long, long time.

So as far as what we can do _now_ for rejection text: sticking with 
US-ASCII
rejection text has an efficiency advantage (allows SMTP protocol level
rejection) for those who are willing to accept the restriction of 
US-ASCII
text, but some users and user communities will prefer (demand!) to use 
their
"own language", as they can with the "old" (original) reject behavior, 
even
though that means the cost of generating a notification message (DSN or 
MDN)
instead of being able to do SMTP protocol level rejection.  And I would
consider that completely appropriate for them to do in non-spam 
rejections,
though I might hope/encourage them to stick with US-ASCII and hence make
SMTP protocol level rejection possible for believed-to-be-spam message
rejections.

I would take a quote from above regarding email addresses (local 
language
vs. US-ASCII vs. providing both forms of email address) and apply it to
rejection text:

    We are not
    required, and should not try, to make that choice for users: the
    users should make the best choices for their own needs, preferably
    after understanding the consequences of the choices.

That is, I believe that we need to allow users -- when they wish -- to
choose which behavior they want.  And I do not believe that it is 
possible
to avoid at least some user education/training, at least in the form of
a "smart" user interface, especially for users who normally operate in
languages not written using US-ASCII.  While Western European language
users may be able to remain happily oblivious of the difference between
SMTP protocol rejection and rejection in the form of a notification 
message,
oblivious of any (desired) difference in rejecting spam vs. other 
rejections,
users of languages that use/need a different charset _will_ need to 
have at
least some awareness (or the interface that generates Sieve filters on 
their
behalf will need some awareness) that it is much preferable to reject
believed-to-be-spam messages with the "stick to US-ASCII-only" option,
whereas more "personal" rejections for other reasons can, if the user 
wishes,
be rejected using more personalized text in their own language.

Regards,

Kristin

> Aaron

Date: Tue, 18 Jul 2006 17:23:00 +0100
From: Alexey Melnikov <[email-masked]>
To: Aaron Stone <[email-masked]>
CC: [email-masked]
Subject: Re: List of open issues with Sieve reject draft 	 (draft-ietf-sieve-refuse-reject-02.txt)
Sender: [email-masked]

Aaron Stone wrote:

>On Sat, 2006-07-15 at 15:16 +0100, Alexey Melnikov wrote:
>  
>
>>>>2). Non ASCII text in rejection string - should it cause creation of 
>>>>DSN/MDN, runtime error or stripping of non-ASCII content?
>>>>Should we add a tagged argument to control this?
>>>>Or maybe we need another capability to enable UTF-8 clean rejection?
>>>>        
>>>>
>>>That capability needs to be added to SMTP, right?
>>>      
>>>
>>Yes, that would be an SMTP extension for allowing of UTF-8 human 
>>readable response text.
>>    
>>
>
>I'd rather like to see such a UTF-8 extension, instead of the
>workarounds being proposed to shoehorn messages into US-ASCII.
>  
>
Well, I will be working on one, but it is not clear when the document 
will be done and how long it would take to deploy it.
We would need some advice in the Sieve reject draft to address short 
term problems.

Subject: Re: List of open issues with Sieve reject draft  (draft-ietf-sieve-refuse-reject-02.txt)
From: Aaron Stone <[email-masked]>
To: Alexey Melnikov <[email-masked]>
Cc: [email-masked]
Date: Mon, 17 Jul 2006 06:21:27 -0700
Sender: [email-masked]

On Sat, 2006-07-15 at 15:16 +0100, Alexey Melnikov wrote:
> >>2). Non ASCII text in rejection string - should it cause creation of 
> >>DSN/MDN, runtime error or stripping of non-ASCII content?
> >>Should we add a tagged argument to control this?
> >>Or maybe we need another capability to enable UTF-8 clean rejection?
> >>    
> >>
> >That capability needs to be added to SMTP, right?
> >  
> >
> Yes, that would be an SMTP extension for allowing of UTF-8 human 
> readable response text.

I'd rather like to see such a UTF-8 extension, instead of the
workarounds being proposed to shoehorn messages into US-ASCII.

Aaron

Subject: Re: List of open issues with Sieve reject  draft(draft-ietf-sieve-refuse-reject-02.txt)
From: Aaron Stone <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>
Cc: [email-masked], Nigel Swinson <[email-masked]>, Kjetil Torgrim Homme <[email-masked]>
Date: Mon, 17 Jul 2006 06:04:31 -0700
Sender: [email-masked]

On Fri, 2006-07-14 at 11:21 +0200, Arnt Gulbrandsen wrote:

> If you only reject (ie. you don't secretly store), reject sometimes also 
> lets you out of storage rules. For example, here in Germany HGB§257 may 
> (AFAIK there have been no test cases) require businesses to store 
> certain categories of email for a number of years. The safe ways to 
> deal with that are a) to store all mail for that long, even the spam, 
> b) have some human pick out the false positives from the spam and 
> determine what must be stored, and c) reject the presumed spam at SMTP 
> time, so it's not received in the first place.

Would it be worth someone's getting a legal review of this issue? A few
folks on this list are with companies that have general counsels, and it
might be worth asking the question, "What if we get sued for not being
aware of something that came in an email that got protocol rejected?"

My *guess* is that there is probably some existing case law about what
happens when a letter is lost by the post office, or misdirected, or
otherwise not delivered as usual. Some of this case law may even be
hundreds of years old in countries with common-law systems.

Aaron

Subject: Re: List of open issues with Sieve reject draft(draft-ietf-sieve-refuse-reject-02.txt)
From: Aaron Stone <[email-masked]>
To: Kjetil Torgrim Homme <[email-masked]>
Cc: Nigel Swinson <[email-masked]>, [email-masked]
Date: Mon, 17 Jul 2006 05:51:25 -0700
Sender: [email-masked]

On Thu, 2006-07-13 at 22:52 +0200, Kjetil Torgrim Homme wrote:

> but you don't answer my question, what is gained by doing reject?

If, as you claim, spammers don't wash their lists based on SMTP
rejections (really!?) then perhaps what's needed, for those looking at
this as a portion of an overall anti-spam policy, is a hook to some
lower-level defense measures, such as OpenBSD's spamd proxy, which
monkeys with protocol timings to muck up the spammer's outbound system. 

But this is a reaction to a truly hostile Internet, not the happy go
lucky friendly Internet that email was first designed for :-\

> > I would never make mail logs available to an end
> > user -- they are there for the system administrator to monitor the
> > health of the system, for compliance with company policy (e.g. the
> > company prohibits excessive personal use of its email system) and laws
> > (e.g. US federal requirements that banks log all email).
> 
> in many (most?) European countries, the user is entitled to seeing _any_
> logs and database entries pertaining to him/her.
[snip]

I am not aware of such laws in the US. (hmm. grumble.)

> > If it can't be used to deter spammers, such is life.
> 
> so the reject is useless?

I thought that quite a few good reasons for reject were already given.
Is this even a topic that's still at-issue?

> > > RFC 2821, section 4.2.5:
> > > 
> > >    When an SMTP server returns a permanent error status (5yz) code after
> > >    the DATA command is completed with <CRLF>.<CRLF>, it MUST NOT make
> > >    any subsequent attempt to deliver that message. 
> > > 
> > > I don't think that's open to interpretation.
> > 
> > The spec was written for a less hostile environment. In the case of the
> > US federal law above, even spam would probably have to be logged.
> 
> according to Norwegian law, official contact addresses in the public
> service can NOT be filtered automatically, every inquiry must be judged
> on its own merits by a human.  however, our mail system doesn't lie and
> say that it was rejected.  it would be a bizarre if the applicant got a
> rejection message and his missive still ended up in the archive for
> posterity.  such archival without his knowledge could very well be in
> breach of the transparancy laws.

Interesting.

> > I
> > could easily see an issue coming to course and requiring some evidence
> > that an email was not received because it was caught by a spam filter.
> > So even an email rejected with a 5yz code would still need to be logged.
> > Is that a form of delivery?
> 
> it's a delivery if the message itself is stored.

Fair enough; there'd be an SMTP log that a message of some kind was
rejected, though not the text of the message itself. So it covers half
of the base that I'm positing -- maybe well enough not to worry.

> > It is different if the system does it vs.
> > the user doing it? Does this script undermine email in some evil way:
> > 
> >     fileinto "Rejected Mail";
> >     reject "I think not.";
> 
> it might.  did you never see a fetchmail going bananas?  this is just
> the sort of thing which can confuse such software -- and it's entitled
> to.

I dunno. But have you ever seen/heard ESR himself going bananas? ;-)

Aaron

Date: Tue, 18 Jul 2006 14:20:45 +0100
From: Alexey Melnikov <[email-masked]>
To: Aaron Stone <[email-masked]>
CC: "Mark E. Mallett" <[email-masked]>, [email-masked]
Subject: Re: List of open issues with Sieve reject draft	 (draft-ietf-sieve-refuse-reject-02.txt)
Sender: [email-masked]

Aaron Stone wrote:

>On Tue, 2006-07-11 at 12:38 -0400, Mark E. Mallett wrote:
>  
>
>>But really, a problem is that support for RCPT-TO (and other) scripting
>>probably needs more fleshing out anyway, since RCPT-TO wants to see more
>>states and more information returned from a script than simply "accept"
>>or "reject."  To me, this suggests having a separate scripts, or at
>>least script fragments, for each mode.
>>    
>>
>There is a significant portion of the LEMONADE work involving Sieve
>scripts that are activated by various IMAP actions. Could this be
>extended to SMTP actions as well?
>  
>
If there is enough interest to do this, I would encourage people to make 
this a separate document:
1). It is not clear if Lemonade WG end up using Sieve and it is not 
clear when this work will complete;
2). Profiling Sieve for different SMTP environments seems to be an 
independent (and hopefully easier) task, even though it might intersect 
with IMAP Sieve work (e.g. "environment extension").

Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
From: Aaron Stone <[email-masked]>
To: "Mark E. Mallett" <[email-masked]>
Cc: [email-masked]
Date: Fri, 14 Jul 2006 03:09:34 -0700
Sender: [email-masked]

On Tue, 2006-07-11 at 12:38 -0400, Mark E. Mallett wrote:

> But really, a problem is that support for RCPT-TO (and other) scripting
> probably needs more fleshing out anyway, since RCPT-TO wants to see more
> states and more information returned from a script than simply "accept"
> or "reject."  To me, this suggests having a separate scripts, or at
> least script fragments, for each mode.

There is a significant portion of the LEMONADE work involving Sieve
scripts that are activated by various IMAP actions. Could this be
extended to SMTP actions as well?

Aaron

Date: Sat, 15 Jul 2006 15:16:57 +0100
From: Alexey Melnikov <[email-masked]>
To: Kjetil Torgrim Homme <[email-masked]>
CC: [email-masked]
Subject: Re: List of open issues with Sieve reject draft 	 (draft-ietf-sieve-refuse-reject-02.txt)
Sender: [email-masked]

Kjetil Torgrim Homme wrote:

>>
>>2). Non ASCII text in rejection string - should it cause creation of 
>>DSN/MDN, runtime error or stripping of non-ASCII content?
>>Should we add a tagged argument to control this?
>>Or maybe we need another capability to enable UTF-8 clean rejection?
>>    
>>
>That capability needs to be added to SMTP, right?
>  
>
Yes, that would be an SMTP extension for allowing of UTF-8 human 
readable response text.

Date: Sat, 15 Jul 2006 15:07:17 +0100
From: Alexey Melnikov <[email-masked]>
To: MTA filtering mailing list <[email-masked]>
CC: Kristin Hubner <[email-masked]>
Subject: Re: Sieve reject draft open issue: non-ascii text in reject string
Sender: [email-masked]

Alexey Melnikov wrote:

> So here is the updated proposal:
>
> 1). Make 3) the default when no tagged parameter to the reject action 
> is specified.
> 2). Add :exacttext that will make the implementation return DSN 
> instead of protocol level refusal. This will be controlled by another 
> Sieve capability.
> An administrator can choose to disable support for this capability 
> [The last sentence is an operational issue, so maybe it doesn't belong 
> to the document.]

This proposal assumes that a reject* *without :exacttext will always 
replace non-ascii text with an implementation defined ascii string, so 
it would never be a noop.

An alternative would be to change the bare reject to become "reject with 
non-ascii over protocol if you can, but do nothing if you can't" and add 
:stop as discussed in Kjetil/Mark's proposal.

Date: Sat, 15 Jul 2006 15:00:56 +0100
From: Alexey Melnikov <[email-masked]>
To: MTA filtering mailing list <[email-masked]>
Subject: Sieve reject draft open issue: compatibility with other actions
Sender: [email-masked]

This issue was discussed during the Montreal meeting. I've also read the 
discussion on the mailing list, so I will try to provide summary below. 
(Please let me know if you disagree.)

The current text says that "implementations SHOULD prohibit reject when 
used with other actions, in particular "reject" SHOULD be incompatible 
with keep, fileinto, redirect and discard".
This means that reject + <foo> would cause a runtime error if the SHOULD 
is followed (and would result in implicit keep). After reading the 
mailing list I see that there are people who advocate reject 
compatibility with fileinto and those who don't. I don't think we have a 
consensus to change reject one way or another. Having said that I would 
propose:

1). Drop "implementations SHOULD prohibit" and just say that "reject 
SHOULD be incompatible with ...".
The current text is too generic and is placing a non-enforceable 
requirement on future specs.
I also think that reject should be made compatible with 
setflags/addflags/removeflags, so removal of the text will address that.

2). Add explanatory text as to why there is incompatibility (i.e. it is 
bad to lie to the sender about delivery status of the message)

3). If there is any interest, work on creating a new action (or adding a 
new tagged argument to reject) that would be compatible with 
keep/fileinto/redirect.

Date: Sat, 15 Jul 2006 02:46:15 +0100
From: Alexey Melnikov <[email-masked]>
To: Kristin Hubner <[email-masked]>
CC: MTA filtering mailing list <[email-masked]>
Subject: Re: Sieve reject draft open issue: non-ascii text in reject string
Sender: [email-masked]

Kristin Hubner wrote:

> On Jul 13, 2006, at 12:55 PM, Alexey Melnikov wrote:
>
>> Hi,
>> During the Sieve WG meeting in Montreal the group discussed handling 
>> of the non-ascii characters in the reject reason string, when Sieve 
>> engine can return reject errors over SMTP/LMTP. Several choices were 
>> suggested:
>>
>> 1). Strip (replace with '?' or any other ascii character) UTF-8 from 
>> string
>>  reason: can preserve ascii, for some multilingual strings.
>> 2). Send DSN instead
>> 3). Replace the reject string with an implementation defined string 
>> in ascii.
>> 4). Runtime error
>> 5). Use 2 strings, one in ASCII and one possible containing non-ascii.
>>
>> Discussions on the choices lead to the following conclusions:
>> 1). Use of 2 and 4 is highly undesirable.
>
>       ^^^^^^^^       ^^^^^^^^^^^^^^^^^^^^^
> I cannot agree with this.  Sometimes (at least for some of our 
> customers and
> their priorities, and for some of their rejection cases) sending a DSN 
> _in
> their own language_ will be more important than the efficiency of 
> issuing the
> rejection at the SMTP protocol level.
>
> Also, it seems to me that the Introduction, attempting to justify that 
> SMTP
> level rejection is _always_ better than later rejection, is assuming that
> the only use of "reject" is to reject spam.  In the case of spam, indeed
> SMTP protocol level rejection is indeed greatly preferable to sending
> back a DSN or MDN.  But there are other reasons for using "reject".  For
> instance "your message is too big for me to accept right now; please 
> send me
> a URL to somewhere I can look at it instead", or "I don't want to hear 
> any
> more from this sender on this topic" (translated into some other language
> and charset, since in English as shown, one could send it as an SMTP
> rejection).

Right. The text in the Introduction section need to be updated.

>> 2). Use of 2 strings (choice 5) is confusing to users. Besides 
>> implementations would need to check both strings for non-ascii text 
>> (and the check would have to be delayed till runtime if Sieve 
>> Variables are also used), which would result in one of the other 
>> ch\oices. So the consensus was not to have 2 separate string.
>> [I would note that this choice was discussed at least once before]
>> 3). The group spent some time discussing choices 1 and 3, which 
>> resulted in rough consensus to use # 3.
>>
>> Does anybody have any objections to recommending # 3 in the draft?
>
> Yes, I object.
>
> Note that I would not have any objection to making # 3 the _default_ 
> behavior,
> as long as there is also some way in the "reject" action syntax to 
> "opt out" of
> the SMTP level rejection -- to say "reject with this non-ASCII text, 
> even when it
> means that a rejection that could otherwise have been done at the SMTP 
> protocol
> level instead results in a DSN or MDN".  For instance, adding 
> something like an
> optional :exacttext argument to "reject".

I am personally fine with this.

So here is the updated proposal:

1). Make 3) the default when no tagged parameter to the reject action is 
specified.
2). Add :exacttext that will make the implementation return DSN instead 
of protocol level refusal. This will be controlled by another Sieve 
capability.
An administrator can choose to disable support for this capability [The 
last sentence is an operational issue, so maybe it doesn't belong to the 
document.]

Comments?

Alexey

Subject: Re: List of open issues with Sieve reject draft(draft-ietf-sieve-refuse-reject-02.txt)
From: Kjetil Torgrim Homme <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>
Cc: [email-masked]
Date: Fri, 14 Jul 2006 12:08:02 +0200
Sender: [email-masked]

On Fri, 2006-07-14 at 11:21 +0200, Arnt Gulbrandsen wrote:
> Kjetil Torgrim Homme writes:
> > but you don't answer my question, what is gained by doing reject?
> 
> SMTP rejection is the good way to let unlucky senders know about false 
> positives.
> 
> If you only reject (ie. you don't secretly store), reject sometimes also 
> lets you out of storage rules. For example, here in Germany HGB§257 may 
> (AFAIK there have been no test cases) require businesses to store 
> certain categories of email for a number of years. The safe ways to 
> deal with that are a) to store all mail for that long, even the spam, 
> b) have some human pick out the false positives from the spam and 
> determine what must be stored, and c) reject the presumed spam at SMTP 
> time, so it's not received in the first place.

in case it wasn't clear, I fully agree with this.  we really want to do
reject as much as possible, it's the secret store I object to.

-- 
Kjetil T.

Date: Fri, 14 Jul 2006 11:21:30 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: Re: List of open issues with Sieve reject draft(draft-ietf-sieve-refuse-reject-02.txt)
Cc: Nigel Swinson <[email-masked]>, Aaron Stone <[email-masked]>, Kjetil Torgrim Homme <[email-masked]>
Sender: [email-masked]

Kjetil Torgrim Homme writes:
> but you don't answer my question, what is gained by doing reject?

SMTP rejection is the good way to let unlucky senders know about false 
positives.

If you only reject (ie. you don't secretly store), reject sometimes also 
lets you out of storage rules. For example, here in Germany HGB§257 may 
(AFAIK there have been no test cases) require businesses to store 
certain categories of email for a number of years. The safe ways to 
deal with that are a) to store all mail for that long, even the spam, 
b) have some human pick out the false positives from the spam and 
determine what must be stored, and c) reject the presumed spam at SMTP 
time, so it's not received in the first place.

Arnt

Cc: MTA filtering mailing list <[email-masked]>
From: Kristin Hubner <[email-masked]>
Subject: Re: Sieve reject draft open issue: non-ascii text in reject string
Date: Thu, 13 Jul 2006 14:12:16 -0700
To: Alexey Melnikov <[email-masked]>
Sender: [email-masked]

On Jul 13, 2006, at 12:55 PM, Alexey Melnikov wrote:

>
> Hi,
> During the Sieve WG meeting in Montreal the group discussed handling 
> of the non-ascii characters in the reject reason string, when Sieve 
> engine can return reject errors over SMTP/LMTP. Several choices were 
> suggested:
>
> 1). Strip (replace with '?' or any other ascii character) UTF-8 from 
> string
>  reason: can preserve ascii, for some multilingual strings.
> 2). Send DSN instead
> 3). Replace the reject string with an implementation defined string in 
> ascii.
> 4). Runtime error
> 5). Use 2 strings, one in ASCII and one possible containing non-ascii.
>
> Discussions on the choices lead to the following conclusions:
> 1). Use of 2 and 4 is highly undesirable.
       ^^^^^^^^       ^^^^^^^^^^^^^^^^^^^^^
I cannot agree with this.  Sometimes (at least for some of our 
customers and
their priorities, and for some of their rejection cases) sending a DSN 
_in
their own language_ will be more important than the efficiency of 
issuing the
rejection at the SMTP protocol level.

Also, it seems to me that the Introduction, attempting to justify that 
SMTP
level rejection is _always_ better than later rejection, is assuming 
that
the only use of "reject" is to reject spam.  In the case of spam, indeed
SMTP protocol level rejection is indeed greatly preferable to sending
back a DSN or MDN.  But there are other reasons for using "reject".  For
instance "your message is too big for me to accept right now; please 
send me
a URL to somewhere I can look at it instead", or "I don't want to hear 
any
more from this sender on this topic" (translated into some other 
language
and charset, since in English as shown, one could send it as an SMTP
rejection).

> 2). Use of 2 strings (choice 5) is confusing to users. Besides 
> implementations would need to check both strings for non-ascii text 
> (and the check would have to be delayed till runtime if Sieve 
> Variables are also used), which would result in one of the other 
> ch\oices. So the consensus was not to have 2 separate string.
> [I would note that this choice was discussed at least once before]
> 3). The group spent some time discussing choices 1 and 3, which 
> resulted in rough consensus to use # 3.
>
> Does anybody have any objections to recommending # 3 in the draft?

Yes, I object.

Note that I would not have any objection to making # 3 the _default_ 
behavior,
as long as there is also some way in the "reject" action syntax to "opt 
out" of
the SMTP level rejection -- to say "reject with this non-ASCII text, 
even when it
means that a rejection that could otherwise have been done at the SMTP 
protocol
level instead results in a DSN or MDN".  For instance, adding something 
like an
optional :exacttext argument to "reject".

Note that on the user interface side of things (what does the user need 
to enter
to make a Sieve?), my suggestion of an "opt out of protocol level 
rejection"
argument gets one right back to the issue of users needing to care 
about whether
or not their rejection text has non-US-ASCII in it.  But it does allow 
the behavior
you're proposing to be the default, with only those who really care 
about their
exact text needing to bother with doing anything more.

Regards,

Kristin

>
> Alexey, who would be really happy to close this issue.
>
> **
>

Subject: Re: List of open issues with Sieve reject draft(draft-ietf-sieve-refuse-reject-02.txt)
From: Kjetil Torgrim Homme <[email-masked]>
To: Aaron Stone <[email-masked]>
Cc: Nigel Swinson <[email-masked]>, [email-masked]
Date: Thu, 13 Jul 2006 22:52:12 +0200
Sender: [email-masked]

On Wed, 2006-07-12 at 14:54 -0700, Aaron Stone wrote:
> On Tue, 2006-07-11 at 15:59 +0200, Kjetil Torgrim Homme wrote:
> > On Tue, 2006-07-11 at 13:59 +0100, Nigel Swinson wrote:
> > > Well our implementation doesn't provide any end user accesible
> > > operational logs, so using fileinto seems like an excellent low cost
> > > implementation.
> > 
> > what do you gain by doing reject?  no spammer ever washes their lists
> > based on response codes, anyway.  (*perhaps* after negative response to
> > RCPT TO, for DATA, no way.)
> 
> I'm with Nigel on this.

but you don't answer my question, what is gained by doing reject?

> I would never make mail logs available to an end
> user -- they are there for the system administrator to monitor the
> health of the system, for compliance with company policy (e.g. the
> company prohibits excessive personal use of its email system) and laws
> (e.g. US federal requirements that banks log all email).

in many (most?) European countries, the user is entitled to seeing _any_
logs and database entries pertaining to him/her.  in practice, when a
user makes such a request, a lot of manual work must be done to collect
all the log excerpts, but this is mostly due to such requests being rare
(we get perhaps one or two per year here at the University of Oslo), so
it's not worth the effort to automate it.

but all this is very much beside the point.

> If it can't be used to deter spammers, such is life.

so the reject is useless?

> > RFC 2821, section 4.2.5:
> > 
> >    When an SMTP server returns a permanent error status (5yz) code after
> >    the DATA command is completed with <CRLF>.<CRLF>, it MUST NOT make
> >    any subsequent attempt to deliver that message. 
> > 
> > I don't think that's open to interpretation.
> 
> The spec was written for a less hostile environment. In the case of the
> US federal law above, even spam would probably have to be logged.

according to Norwegian law, official contact addresses in the public
service can NOT be filtered automatically, every inquiry must be judged
on its own merits by a human.  however, our mail system doesn't lie and
say that it was rejected.  it would be a bizarre if the applicant got a
rejection message and his missive still ended up in the archive for
posterity.  such archival without his knowledge could very well be in
breach of the transparancy laws.

> I
> could easily see an issue coming to course and requiring some evidence
> that an email was not received because it was caught by a spam filter.
> So even an email rejected with a 5yz code would still need to be logged.
> Is that a form of delivery?

it's a delivery if the message itself is stored.

> It is different if the system does it vs.
> the user doing it? Does this script undermine email in some evil way:
> 
>     fileinto "Rejected Mail";
>     reject "I think not.";

it might.  did you never see a fetchmail going bananas?  this is just
the sort of thing which can confuse such software -- and it's entitled
to.
-- 
Kjetil T.

Date: Thu, 13 Jul 2006 20:55:30 +0100
From: Alexey Melnikov <[email-masked]>
To: MTA filtering mailing list <[email-masked]>
Subject: Sieve reject draft open issue: non-ascii text in reject string
Sender: [email-masked]

Hi,
During the Sieve WG meeting in Montreal the group discussed handling of 
the non-ascii characters in the reject reason string, when Sieve engine 
can return reject errors over SMTP/LMTP. Several choices were suggested:

1). Strip (replace with '?' or any other ascii character) UTF-8 from string
  reason: can preserve ascii, for some multilingual strings.
2). Send DSN instead
3). Replace the reject string with an implementation defined string in 
ascii.
4). Runtime error
5). Use 2 strings, one in ASCII and one possible containing non-ascii.

Discussions on the choices lead to the following conclusions:
1). Use of 2 and 4 is highly undesirable.
2). Use of 2 strings (choice 5) is confusing to users. Besides 
implementations would need to check both strings for non-ascii text (and 
the check would have to be delayed till runtime if Sieve Variables are 
also used), which would result in one of the other choices. So the 
consensus was not to have 2 separate string.
[I would note that this choice was discussed at least once before]
3). The group spent some time discussing choices 1 and 3, which resulted 
in rough consensus to use # 3.

Does anybody have any objections to recommending # 3 in the draft?

Alexey, who would be really happy to close this issue.

**

To: [email-masked]
Cc: [email-masked]
From: [email-masked]
Subject: I-D ACTION:draft-ietf-sieve-spamtestbis-05.txt 
Date: Thu, 13 Jul 2006 15:50:02 -0400
Sender: [email-masked]

--NextPart

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Sieve Mail Filtering Language Working Group of the IETF.

	Title		: SIEVE Email Filtering: Spamtest and Virustest Extensions
	Author(s)	: C. Daboo
	Filename	: draft-ietf-sieve-spamtestbis-05.txt
	Pages		: 16
	Date		: 2006-7-13
	
The SIEVE email filtering language "spamtest", "spamtestplus" and
   "virustest" extensions permit users to use simple, portable commands
   for spam and virus tests on email messages.  Each extension provides
   a new test using matches against numeric "scores".  It is the
   responsibility of the underlying SIEVE implementation to do the
   actual checks that result in proper input to the tests.

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-sieve-spamtestbis-05.txt

To remove yourself from the I-D Announcement list, send a message to 
[email-masked] with the word unsubscribe in the body of the message.  
You can also visit https://www1.ietf.org/mailman/listinfo/I-D-announce 
to change your subscription settings.

Internet-Drafts are also available by anonymous FTP. Login with the username
"anonymous" and a password of your e-mail address. After logging in,
type "cd internet-drafts" and then
	"get draft-ietf-sieve-spamtestbis-05.txt".

A list of Internet-Drafts directories can be found in
http://www.ietf.org/shadow.html 
or ftp://ftp.ietf.org/ietf/1shadow-sites.txt

Internet-Drafts can also be obtained by e-mail.

Send a message to:
	[email-masked].
In the body type:
	"FILE /internet-drafts/draft-ietf-sieve-spamtestbis-05.txt".
	
NOTE:	The mail server at ietf.org can return the document in
	MIME-encoded form by using the "mpack" utility.  To use this
	feature, insert the command "ENCODING mime" before the "FILE"
	command.  To decode the response(s), you will need "munpack" or
	a MIME-compliant mail reader.  Different MIME-compliant mail readers
	exhibit different behavior, especially when dealing with
	"multipart" MIME messages (i.e. documents which have been split
	up into multiple messages), so check your local documentation on
	how to manipulate these messages.

Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.

--NextPart
Content-Type: Multipart/Alternative; Boundary="OtherAccess"

--OtherAccess
Content-Type: Message/External-body;
	access-type="mail-server";
	server="[email-masked]"

Content-Type: text/plain
Content-ID:	<[email-masked]>

ENCODING mime
FILE /internet-drafts/draft-ietf-sieve-spamtestbis-05.txt

--OtherAccess
Content-Type: Message/External-body;
	name="draft-ietf-sieve-spamtestbis-05.txt";
	site="ftp.ietf.org";
	access-type="anon-ftp";
	directory="internet-drafts"

Content-Type: text/plain
Content-ID:	<[email-masked]>

--OtherAccess--

--NextPart--

Subject: Re: I-D ACTION:draft-daboo-sieve-include-04.txt  (fwd)
From: Aaron Stone <[email-masked]>
To: Kjetil Torgrim Homme <[email-masked]>
Cc: [email-masked]
Date: Thu, 13 Jul 2006 07:32:34 -0700
Sender: [email-masked]

On Wed, 2006-07-12 at 00:02 +0200, Kjetil Torgrim Homme wrote:
> On Mon, 2006-06-26 at 19:37 -0400, Mark E. Mallett wrote:

> > The best I can make out is that import and export coordinate through
> > some sort of import/export namespace (as contrasted with global
> > namespace, which it really isn't):

This is my understanding as well.

> one option here is to get rid of export, and instead do it as an option
> to the "include" action.
> 
>    include :export ["foo", "bar"] "myscript";
> 
> (the specified variable names should be constant strings, ie. without
> variable expansions, to reduce the number of exploding head incidents.)

Yes, constant strings are better here.

> > And that in turn makes me wonder, why not just use
> > a reserved namespace (like "include.")  and use "set" to do those
> > manipulations?  (Which is similar to what you said re 'global' only more
> > in line with what I read into what import/export is trying to do.)

You'd have to start calculating namespaces in the variable names... I'm
not a great fan of the namespace idea.

Kjetil's idea is an interesting, funky subroutine system. Would the
included script still need to explicitly import the exported variables,
or would we simply drop the import keyword entirely?

The proposal seems workable; I could go for this, too. Toss a coin?

Aaron

Subject: Re: List of open issues with Sieve reject draft(draft-ietf-sieve-refuse-reject-02.txt)
From: Aaron Stone <[email-masked]>
To: Kjetil Torgrim Homme <[email-masked]>
Cc: Nigel Swinson <[email-masked]>, [email-masked]
Date: Wed, 12 Jul 2006 14:54:18 -0700
Sender: [email-masked]

On Tue, 2006-07-11 at 15:59 +0200, Kjetil Torgrim Homme wrote:
> On Tue, 2006-07-11 at 13:59 +0100, Nigel Swinson wrote:
> > > there are no logging actions in Sieve, but most implementations can
> > > provide such logs without it being triggered by explicit script actions.
> > 
> > Well our implementation doesn't provide any end user accesible
> > operational logs, so using fileinto seems like an excellent low cost
> > implementation.
> 
> what do you gain by doing reject?  no spammer ever washes their lists
> based on response codes, anyway.  (*perhaps* after negative response to
> RCPT TO, for DATA, no way.)

I'm with Nigel on this. I would never make mail logs available to an end
user -- they are there for the system administrator to monitor the
health of the system, for compliance with company policy (e.g. the
company prohibits excessive personal use of its email system) and laws
(e.g. US federal requirements that banks log all email).

If it can't be used to deter spammers, such is life.

> > > I don't think this is sufficient reason to allow an e-mail system to
> > > misrepresent the delivery status.
> > 
> > I'm quite happy to interpret reject as "I never want to see any mail
> > like that ever again".  If the server carries on delivering/processing
> > that message then I think that's up to the mail server.
> 
> RFC 2821, section 4.2.5:
> 
>    When an SMTP server returns a permanent error status (5yz) code after
>    the DATA command is completed with <CRLF>.<CRLF>, it MUST NOT make
>    any subsequent attempt to deliver that message. 
> 
> I don't think that's open to interpretation.

The spec was written for a less hostile environment. In the case of the
US federal law above, even spam would probably have to be logged. I
could easily see an issue coming to course and requiring some evidence
that an email was not received because it was caught by a spam filter.
So even an email rejected with a 5yz code would still need to be logged.
Is that a form of delivery? It is different if the system does it vs.
the user doing it? Does this script undermine email in some evil way:

    fileinto "Rejected Mail";
    reject "I think not.";

Aaron

Date: Thu, 13 Jul 2006 12:38:28 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
Cc: "Mark E. Mallett" <[email-masked]>, Dave Cridland <[email-masked]>, Kjetil Torgrim Homme <[email-masked]>
Sender: [email-masked]

Arnt Gulbrandsen writes:
> IMO, the important bit is that a script which checks the envelope and 
> then does other checks works gracefully: Fail at RCPT TO if the 
> implementation can do that, at CRLF.CRLF if ditto and all recipients 
> agree, and sends a DSN/MDN/whatever if all else fails.

Ick. Forget it. Thinko. A script doing this would of course use an 
explicit stop after the reject, and then the issue is moot.

Arnt

Date: Thu, 13 Jul 2006 11:04:56 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
Cc: "Mark E. Mallett" <[email-masked]>, Dave Cridland <[email-masked]>, Kjetil Torgrim Homme <[email-masked]>
Sender: [email-masked]

Kjetil Torgrim Homme writes:
> On Tue, 2006-07-11 at 18:58 +0200, Arnt Gulbrandsen wrote:
>>  I want my code to send fewer bounces, as we all do, right? So I want 
>>  to reject using SMTP, not by sending a DSN/MDN.
>
> I think we all want this to be possible.
>
>>  It occured to me that if I provide a postffix content filter 
>>  interface to the sieve interpreter, then postfix can do SMTP 
>>  rejections. The sieve interpreter must run the user's regular 
>>  active script, skip any clauses that can't be evaluated (and don't 
>>  contain stop), and see whether a reject is executed. (In my code, 
>>  this happens to be fairly simple.) Done.
>
> thanks for the explanation. so your implementation will actually stop 
> at the first occurence of stop, even if it is inside a test block? 
> consider this script:
>
>         require "fileinto";
>         if header "Subject" "foo" {
>            fileinto "INBOX.foo";
>            stop;
>         }
>         reject "go away";
>
> if I read your explanation correctly, this will never reject SMTP 
> time, correct?

Never at RCPT TO time. (DATA ... CRLF.CRLF time is another question; I 
haven't looked at whether I could do that yet, but another 
implementation might be able to.)

> this may give more expressibility than my suggestion, but I haven't 
> found an example yet, unless you allow reject after a fileinto to be 
> a no-op, as you say. how do you figure the following script should be 
> handled?
>
>         require "fileinto";
>         if header "Subject" "foo" {
>            fileinto "INBOX.foo";
>         } else {
>            keep;
>         }
>         reject "go away";

My code (such as it is) would not be able to make a decision before 
DATA. I'll withhold opinion about whether it should be possible at all 
in this case.

IMO, the important bit is that a script which checks the envelope and 
then does other checks works gracefully: Fail at RCPT TO if the 
implementation can do that, at CRLF.CRLF if ditto and all recipients 
agree, and sends a DSN/MDN/whatever if all else fails.

Arnt

Subject: Re: 3028bis status
From: Kjetil Torgrim Homme <[email-masked]>
To: Ned Freed <[email-masked]>
Cc: Philip Guenther <[email-masked]>, [email-masked]
Date: Wed, 12 Jul 2006 03:10:51 +0200
Sender: [email-masked]

> > sorry, I want to add a small open item, a change in section 6,
> > Extensibility:
> 
> >    Extensions MUST state how they interact with constraints defined in
> >    section 2.10, e.g., whether they cancel the implicit keep, and which
> >    actions they are compatible and incompatible with.
> >  + An extension MUST NOT change the behavior of the "require" control
> >  + command.
> 
> I think this is OK, but do note that require "variables" changes
> the semantics of subsequent strings.

yes, except for the arguments to "require", see the last sentence in the
introduction:

1.  Introduction

   This is an extension to the Sieve language defined by [SIEVE].  It
   adds support for storing and referencing named data.  The mechanisms
   detailed in this document will only apply to Sieve scripts that
   include a require clause for the "variables" extension.  The require
   clauses themselves are not affected by this extension.

> I don't want to have text that
> forbids this or comparable extensions that modify semantics in some way.

sorry -- do you want to allow an extension which changes "require"
semantics or not?

-- 
Kjetil T.

Cc: Philip Guenther <[email-masked]>, [email-masked]
To: Kjetil Torgrim Homme <[email-masked]>
Date: Tue, 11 Jul 2006 17:34:23 -0700 (PDT)
From: Ned Freed <[email-masked]>
Subject: Re: 3028bis status
Sender: [email-masked]

> On Mon, 2006-07-10 at 05:10 -0700, Philip Guenther wrote:
> > The last open items are:

> sorry, I want to add a small open item, a change in section 6,
> Extensibility:

>    Extensions MUST state how they interact with constraints defined in
>    section 2.10, e.g., whether they cancel the implicit keep, and which
>    actions they are compatible and incompatible with.
>  + An extension MUST NOT change the behavior of the "require" control
>  + command.

> (CAN NOT would sound better, but that's not in [KEYWORDS] :-)

> reference to original suggestion:
> http://thread.gmane.org/gmane.ietf.mta-filters/2030/focus=2037

I think this is OK, but do note that require "variables" changes
the semantics of subsequent strings. I don't want to have text that
forbids this or comparable extensions that modify semantics in some way.

				Ned

Subject: the part argument to "date"
From: Kjetil Torgrim Homme <[email-masked]>
To: [email-masked]
Date: Wed, 12 Jul 2006 01:28:07 +0200
Sender: [email-masked]

I don't quite like the part argument to "date", since the possible
values are listed explicitly.  making each of them a tagged argument is
easier to express in the grammar, and it avoids the problem of
"${format}" which can fail during run-time.  outline of suggested
change:

4.  Date Test

   Usage:   date [":zone" <time-zone: string>] [COMPARATOR]
                 [MATCH-TYPE] [PART] <header-name: string>
                 <key-list: string-list>
[...]

4.2.  Part argument

   The "PART" syntax element is defined as follows:

   Syntax:   ":year" / ":month" / ":day" [...]

   The optional part argument specifies a particular part of the
   resulting date/time value to match against the key-list.  If no part
   argument is given, ":iso8601" is used.  The available parts are:

   [description of each part suitably edited]

Ned, I can write a more specific patch if you like, if you send me your
source.

(BTW, I changed "parameter" to "argument" since that's what the base
spec calls them.)
-- 
Kjetil T.

Subject: Re: 3028bis status
From: Kjetil Torgrim Homme <[email-masked]>
To: Philip Guenther <[email-masked]>
Cc: [email-masked]
Date: Wed, 12 Jul 2006 00:49:41 +0200
Sender: [email-masked]

On Mon, 2006-07-10 at 05:10 -0700, Philip Guenther wrote:
> The last open items are:

sorry, I want to add a small open item, a change in section 6,
Extensibility:

   Extensions MUST state how they interact with constraints defined in
   section 2.10, e.g., whether they cancel the implicit keep, and which
   actions they are compatible and incompatible with.
 + An extension MUST NOT change the behavior of the "require" control
 + command.

(CAN NOT would sound better, but that's not in [KEYWORDS] :-)

reference to original suggestion:
http://thread.gmane.org/gmane.ietf.mta-filters/2030/focus=2037

-- 
Kjetil T.

Subject: Re: Default match types and for_every_part
From: Kjetil Torgrim Homme <[email-masked]>
To: Nigel Swinson <[email-masked]>
Cc: [email-masked]
Date: Wed, 12 Jul 2006 00:34:37 +0200
Sender: [email-masked]

On Fri, 2006-04-21 at 12:21 +0100, Nigel Swinson wrote:

> I think it should be foreverypart, not for_every_part.  We already
> have addheader, deleteheader, fileinto.  We don't have add_header,
> delete_header, file_into.

I think so, too.

actually, I think I prefer "foreachpart", since "each" is more commonly
used in iteration context in other programming languages.
-- 
Kjetil T.

Subject: Re: I-D ACTION:draft-daboo-sieve-include-04.txt  (fwd)
From: Kjetil Torgrim Homme <[email-masked]>
To: "Mark E. Mallett" <[email-masked]>
Cc: Nigel Swinson <[email-masked]>, Cyrus Daboo <[email-masked]>, [email-masked]
Date: Wed, 12 Jul 2006 00:02:02 +0200
Sender: [email-masked]

On Mon, 2006-06-26 at 19:37 -0400, Mark E. Mallett wrote:
> In preparing some comments (so far left on the floor), I had come up
> with some twisted examples to illustrate questions about how import and
> export interact, specifically contrasted with simple global variables.
> The best I can make out is that import and export coordinate through
> some sort of import/export namespace (as contrasted with global
> namespace, which it really isn't):
> 
>    - import pre-initializes a variable's value from the same-named
>      variable in the import/export namespace, requiring that at some
>      other point in script execution, some code has set up that variable
>      in the import/export namespace;
> and
>    - export says that whenever a script context changes (i.e. it
>      'return's to its includer, or it 'include's another script), the
>      exported variable's value is published into that of the same-named
>      variable in the import/export pool.
> 
> If this is correct, then it just makes me wonder:  wouldn't it be just
> as useful to make "import" and "export" be action commands, allowing a
> script to push and pull variables out of the import/export namespace
> without being subject to unintended side-effects (i.e. of not being able
> to predict what, exactly, included scripts export into your nicely
> imported variables)?

one option here is to get rid of export, and instead do it as an option
to the "include" action.

   include :export ["foo", "bar"] "myscript";

(the specified variable names should be constant strings, ie. without
variable expansions, to reduce the number of exploding head incidents.)

> And that in turn makes me wonder, why not just use
> a reserved namespace (like "include.")  and use "set" to do those
> manipulations?  (Which is similar to what you said re 'global' only more
> in line with what I read into what import/export is trying to do.)

do you get any control over access then?

it's probably better to think of import/export as the parameter list
supplied to the sub-script, rather than as a scoping thing.  a variable
which is exported, will only be available to the directly included
script.  in fact, the sub-script is prohibited from re-exporting the
variable to its sub-sub-scripts, it has to make a copy with a different
name if it needs to do such a thing (aside, I don't think we need that
restriction, I can't see what we gain from it).

so when you call (actually include) a procedure (actually sub-script),
your exported variables are the named parameters for that procedure, and
the procedure may return values to the caller by modifying these
exported variables.

switching to an :export keyword may make this more intuitive.
-- 
Kjetil T.

From: "Mark E. Mallett" <[email-masked]>
Date: Tue, 11 Jul 2006 14:01:53 -0400
To: Arnt Gulbrandsen <[email-masked]>
Cc: [email-masked], "Mark E. Mallett" <[email-masked]>, Dave Cridland <[email-masked]>, Kjetil Torgrim Homme <[email-masked]>
Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
Sender: [email-masked]

On Tue, Jul 11, 2006 at 06:58:08PM +0200, Arnt Gulbrandsen wrote:
> It occured to me that if I provide a postffix content filter interface 
> to the sieve interpreter, then postfix can do SMTP rejections. The 
> sieve interpreter must run the user's regular active script, skip any 
> clauses that can't be evaluated (and don't contain stop), and see 
> whether a reject is executed. (In my code, this happens to be fairly 
> simple.) Done.
> 
> The only problem is that I cannot with good conscience execute a 
> possibly invalid action, can I?

No you can't :-)

But I consider this just part of the general problem of what to do with
execution errors.  You have to deal with them, whether or not you can
identify right now the specific things that can go wrong in execution.
What do you do with:

    if <some test that succeeds> {
        reject "you aren't mem";
    }
    if <some other test that succeeds> {
        keep;
    }

(substitute something other than "keep" if that isn't problematic enough.)

Perhaps in the context of a rcpt-to milter you can be a little fast and
loose and stop execution whenever some explicit action is taken.  But
that has problems of its own, not the least of which is that you won't
discover incorrect scripts very easily.

Maybe I'm missing the point though.  

mm

From: "Mark E. Mallett" <[email-masked]>
Date: Tue, 11 Jul 2006 13:37:01 -0400
To: Kjetil Torgrim Homme <[email-masked]>
Cc: "Mark E. Mallett" <[email-masked]>, Dave Cridland <[email-masked]>, [email-masked], Arnt Gulbrandsen <[email-masked]>
Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
Sender: [email-masked]

On Tue, Jul 11, 2006 at 07:01:10PM +0200, Kjetil Torgrim Homme wrote:
> On Tue, 2006-07-11 at 12:38 -0400, Mark E. Mallett wrote:
> > Or.. a test that will see if the message is available for examination.
> > (e.g. via some read-only variable.)
> 
> this is just a slight variation of your #1, isn't it?

Yes, but perhaps easier to get drafted, since it's one thing to
introduce a general mode variable with open-ended meanings,
and another to propose a boolean variable with only one
narrow purpose.  It's
   if 'mode == "rcpt_to"'
vs
   if '! have_message'

> > But really, a problem is that support for RCPT-TO (and other) scripting
> > probably needs more fleshing out anyway, since RCPT-TO wants to see more
> > states and more information returned from a script than simply "accept"
> > or "reject."  To me, this suggests having a separate scripts, or at
> > least script fragments, for each mode.
> 
> what more information?  you want scripts to be able to return 4xx as
> well as 2xx and 5xx?

That sort of thing, yep.  Plus extended result codes, which I suppose
could be encoded into the reject/refuse text.

But I was also thinking this:  I've found that I have need for results
that are "maybe"s.  For example, one return might be "I reject this, but
other logic in the implementation can override my decision" vs "I reject
this, and I really mean it."  Or contrarywise, "I'm OK with this, but
the implementation can override me" and other extrapoloations.  There are
other shades in there somewhere too.  There are also things like "I
reject this, but give a 250 now and defer rejecting until DATA time."

A lot of these things could simply be handled by returning more than one
piece of information, but that's one of those things that, as I say,
need fleshing out.  Other people will likely have had other experiences
and other needs as well.  I certainly have more things that I've thought
of but haven't actually needed or implemented yet.

Some (all?) of these may be things that ordinary users aren't going to
want, but scripts aren't always end-user things.

mm

Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
From: Kjetil Torgrim Homme <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>
Cc: [email-masked], "Mark E. Mallett" <[email-masked]>, Dave Cridland <[email-masked]>
Date: Tue, 11 Jul 2006 19:14:25 +0200
Sender: [email-masked]

On Tue, 2006-07-11 at 18:58 +0200, Arnt Gulbrandsen wrote:
> I want my code to send fewer bounces, as we all do, right? So I want to 
> reject using SMTP, not by sending a DSN/MDN.

I think we all want this to be possible.

> It occured to me that if I provide a postffix content filter interface 
> to the sieve interpreter, then postfix can do SMTP rejections. The 
> sieve interpreter must run the user's regular active script, skip any 
> clauses that can't be evaluated (and don't contain stop), and see 
> whether a reject is executed. (In my code, this happens to be fairly 
> simple.) Done.

thanks for the explanation.  so your implementation will actually stop
at the first occurence of stop, even if it is inside a test block?
consider this script:

        require "fileinto";
        if header "Subject" "foo" {
           fileinto "INBOX.foo";
           stop;
        }
        reject "go away";

if I read your explanation correctly, this will never reject SMTP time,
correct?

this may give more expressibility than my suggestion, but I haven't
found an example yet, unless you allow reject after a fileinto to be a
no-op, as you say.  how do you figure the following script should be
handled?

        require "fileinto";
        if header "Subject" "foo" {
           fileinto "INBOX.foo";
        } else {
           keep;
        }
        reject "go away";

-- 
Kjetil T.

Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
From: Kjetil Torgrim Homme <[email-masked]>
To: "Mark E. Mallett" <[email-masked]>
Cc: Dave Cridland <[email-masked]>, [email-masked], Arnt Gulbrandsen <[email-masked]>
Date: Tue, 11 Jul 2006 19:01:10 +0200
Sender: [email-masked]

On Tue, 2006-07-11 at 12:38 -0400, Mark E. Mallett wrote:
> On Tue, Jul 11, 2006 at 06:08:47PM +0200, Kjetil Torgrim Homme wrote:
> > one other option is to make it explicit with different scripts for the
> > two situations.
> 
> Or..  a good use for that "mode" variable, so the script can tell the
> circumstance under which it is being executed.

I think this is less likely to be made usable in UI editors than my
suggestion (which just requires special ordering of statements, and as
such doesn't _require_ UI support at all).

> Or.. a draft specifying how 'header' et al (anything requiring the
> message to be present) should behave if the message isn't yet there.

yes, I think this needs to made explicit somewhere.

> Or.. a test that will see if the message is available for examination.
> (e.g. via some read-only variable.)

this is just a slight variation of your #1, isn't it?

> But really, a problem is that support for RCPT-TO (and other) scripting
> probably needs more fleshing out anyway, since RCPT-TO wants to see more
> states and more information returned from a script than simply "accept"
> or "reject."  To me, this suggests having a separate scripts, or at
> least script fragments, for each mode.

what more information?  you want scripts to be able to return 4xx as
well as 2xx and 5xx?

-- 
Kjetil T.

Date: Tue, 11 Jul 2006 18:58:08 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
Cc: "Mark E. Mallett" <[email-masked]>, Dave Cridland <[email-masked]>, Kjetil Torgrim Homme <[email-masked]>
Sender: [email-masked]

Mark E. Mallett writes:
> But really, a problem is that support for RCPT-TO (and other) 
> scripting probably needs more fleshing out anyway, since RCPT-TO 
> wants to see more states and more information returned from a script 
> than simply "accept" or "reject." To me, this suggests having a 
> separate scripts, or at least script fragments, for each mode.

Perhaps I'd better describe the specific idea that led me to this.

I want my code to send fewer bounces, as we all do, right? So I want to 
reject using SMTP, not by sending a DSN/MDN.

It occured to me that if I provide a postffix content filter interface 
to the sieve interpreter, then postfix can do SMTP rejections. The 
sieve interpreter must run the user's regular active script, skip any 
clauses that can't be evaluated (and don't contain stop), and see 
whether a reject is executed. (In my code, this happens to be fairly 
simple.) Done.

The only problem is that I cannot with good conscience execute a 
possibly invalid action, can I?

Arnt

From: "Mark E. Mallett" <[email-masked]>
Date: Tue, 11 Jul 2006 12:38:44 -0400
To: Kjetil Torgrim Homme <[email-masked]>
Cc: Dave Cridland <[email-masked]>, [email-masked], Arnt Gulbrandsen <[email-masked]>
Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
Sender: [email-masked]

On Tue, Jul 11, 2006 at 06:08:47PM +0200, Kjetil Torgrim Homme wrote:
> 
> possibly not, but how do you suggest the server should handle it?
> flatly ignore all tests which require unavailable information?  if so,
> if a user writes a script with lots of explicit tests and an
> unconditional "reject" at the end, you get disaster.
> 
> one other option is to make it explicit with different scripts for the
> two situations.

Or..  a good use for that "mode" variable, so the script can tell the
circumstance under which it is being executed.

Or.. a draft specifying how 'header' et al (anything requiring the
message to be present) should behave if the message isn't yet there.

Or.. a test that will see if the message is available for examination.
(e.g. via some read-only variable.)

But really, a problem is that support for RCPT-TO (and other) scripting
probably needs more fleshing out anyway, since RCPT-TO wants to see more
states and more information returned from a script than simply "accept"
or "reject."  To me, this suggests having a separate scripts, or at
least script fragments, for each mode.

mm

Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
From: Kjetil Torgrim Homme <[email-masked]>
To: Dave Cridland <[email-masked]>
Cc: [email-masked], Arnt Gulbrandsen <[email-masked]>
Date: Tue, 11 Jul 2006 18:08:47 +0200
Sender: [email-masked]

On Tue, 2006-07-11 at 16:28 +0100, Dave Cridland wrote:
> But I think this is really needed.
> 
> Otherwise, you're telling users to write their Sieve filters in a 
> manner which is beneficial for optimization on the server. This ain't 
> gonna happen, as they say.

possibly not, but how do you suggest the server should handle it?
flatly ignore all tests which require unavailable information?  if so,
if a user writes a script with lots of explicit tests and an
unconditional "reject" at the end, you get disaster.

one other option is to make it explicit with different scripts for the
two situations.

> Your suggestion means that for best performance, a very careful 
> choice of Sieve generator and server implementation is required. Bear 
> in mind that one of the more common Sieve generators is the user - I 
> know plenty of sysadmins who'd argue for more choice in their users, 
> but I can't see this happening.

I just checked the numbers at our site, and of our 62804 users, 3156
have installed Sieve filters.  31 of these are handwritten, the rest are
generated by avelsieve (Squirrelmail plugin).  I convinced it's possible
to write a good UI which promotes putting envelope tests at the top.

> Whilst your proposal is certainly 
> bending the rules less, I don't think it's providing any benefit 
> aside from purism.

I don't see it as purism as much as correctness and determinism :-)

> To put it another way, I'm perfectly happy for some actions to have 
> an implicit stop as a side-effect. In fact, until I skimmed this 
> thread, I sort of assumed that reject *did* have an implicit stop - 
> maybe it just sounds like a final decision.

I don't disagree with this, a quite common error for our users is to
omit the "stop" after the "fileinto", so they get several copies of some
messages.  it's much too late to change fileinto/keep/etc now, though.
-- 
Kjetil T.

Date: Tue, 11 Jul 2006 16:28:27 +0100
Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
From: Dave Cridland <[email-masked]>
To: Kjetil Torgrim Homme <[email-masked]>
Cc: <[email-masked]>, Arnt Gulbrandsen <[email-masked]>
Sender: [email-masked]

On Tue Jul 11 12:27:08 2006, Kjetil Torgrim Homme wrote:
> 
> On Mon, 2006-07-10 at 00:02 +0200, Arnt Gulbrandsen wrote:
> > Alexey Melnikov writes:
> > > 3). Arnt has requested to allow for reject+redirect to be 
> treated as > > just reject. I am not sure I like that. Opinions?
> > > My reason:
> > > If an implementation takes some trouble (e.g. using the postfix 
> content > filter interface), it can evaluate some clauses of a 
> sieve script based > only on the information in MAIL FROM and/or 
> RCPT TO. After RCPT TO, > such an implementation may know that one 
> clause in the script directs > the interpreter to reject the 
> message, but it does not know whether > other actions are to be 
> run, because other tests cannot yet be > evaluated.
> >
> > As I read the current draft, such an interpreter is not allowed 
> to > reject the RCPT TO command, because it does not yet know 
> whether the > script is valid: The script may also try to execute 
> some action which > is incompatible with reject.
> 
> I don't think this is needed.

You may recall that I do not, and have never, implemented Sieve. I'm 
just an ex-sysadmin with a ManageSieve client implementation and a 
handful of Sieve scripts I use a lot, so you can feel a little 
justified in disagreeing with me, given that I merely keep half an 
eye on the discussion, and I admit to not reading the drafts much.

But I think this is really needed.

Otherwise, you're telling users to write their Sieve filters in a 
manner which is beneficial for optimization on the server. This ain't 
gonna happen, as they say.

Basically, if a sysadmin wants to reject the maximal amount of 
messages before accepting the DATA - this being a sensible and 
desirable thing to do - Arnt's suggestion allows the sysadmin to 
select an implementation and/or suitable options which allows this to 
happen, in the case where the user or sieve generator has chosen to 
reject the message. All the tweaks required to change the server 
behaviour are purely on the server-side. And you argue in another 
message that rejection at RCPT stage is more likely to stop spammers, 
too, so I'm sure you agree that this is the desirable state.

Your suggestion means that for best performance, a very careful 
choice of Sieve generator and server implementation is required. Bear 
in mind that one of the more common Sieve generators is the user - I 
know plenty of sysadmins who'd argue for more choice in their users, 
but I can't see this happening. Whilst your proposal is certainly 
bending the rules less, I don't think it's providing any benefit 
aside from purism.

To put it another way, I'm perfectly happy for some actions to have 
an implicit stop as a side-effect. In fact, until I skimmed this 
thread, I sort of assumed that reject *did* have an implicit stop - 
maybe it just sounds like a final decision.

Dave.
-- 
Dave Cridland - mailto:[email-masked] - xmpp:[email-masked]
  - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
  - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade

From: "Mark E. Mallett" <[email-masked]>
Date: Tue, 11 Jul 2006 11:25:41 -0400
To: Arnt Gulbrandsen <[email-masked]>
Cc: [email-masked], Alexey Melnikov <[email-masked]>
Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
Sender: [email-masked]

On Mon, Jul 10, 2006 at 12:02:25AM +0200, Arnt Gulbrandsen wrote:
> 
> As I read the current draft, such an interpreter is not allowed to 
> reject the RCPT TO command, because it does not yet know whether the 
> script is valid: The script may also try to execute some action which 
> is incompatible with reject.

This looks like that old question: does the prohibition on
"reject+redirect" (or any other combination of actions defined as
incompatible) produce an invalid script, or an invalid action?
Per RFC3028 this is an implementation choice.  With the latter
choice, a script:

    reject "go away";    	# is executed
    redirect "mem@somewhere";   # gives an execution error

and if they are reversed, the redirect is executed but not the reject.
If an implementation chooses the former (wait until the end to execute
actions, doing none of them if there are conflicts) then you might have
to address the question you raise, but I don't think that should be in
the spec.

As for reject + fileinto: the one thing I could see it useful for has
already been mentioned, and that is administrative logging in order to
be able to debug script design decisions.  It's tempting to just say
"solve that problem another way, outside of sieve" but I can certainly
see how using fileinto is convenient for this.  I suppose an
implementation could have an vendor-specific capability to enable this,
not condoned by the spec.

Yours,
mm

Date: Tue, 11 Jul 2006 10:34:32 -0400
From: Cyrus Daboo <[email-masked]>
To: SIEVE <[email-masked]>
Subject: Slides for the meeting
Sender: [email-masked]

Hi folks,
Slides for today's meeting are available here:

<http://www3.ietf.org/proceedings/06jul/slides/sieve-0.pdf>

Jabber room is <xmpp:[email-masked]>

Audio details here <http://videolab.uoregon.edu/events/ietf/>

-- 
Cyrus Daboo

Subject: Re: List of open issues with Sieve reject draft(draft-ietf-sieve-refuse-reject-02.txt)
From: Kjetil Torgrim Homme <[email-masked]>
To: Nigel Swinson <[email-masked]>
Cc: [email-masked]
Date: Tue, 11 Jul 2006 15:59:51 +0200
Sender: [email-masked]

On Tue, 2006-07-11 at 13:59 +0100, Nigel Swinson wrote:
> > there are no logging actions in Sieve, but most implementations can
> > provide such logs without it being triggered by explicit script actions.
> 
> Well our implementation doesn't provide any end user accesible
> operational logs, so using fileinto seems like an excellent low cost
> implementation.

what do you gain by doing reject?  no spammer ever washes their lists
based on response codes, anyway.  (*perhaps* after negative response to
RCPT TO, for DATA, no way.)

> > I don't think this is sufficient reason to allow an e-mail system to
> > misrepresent the delivery status.
> 
> I'm quite happy to interpret reject as "I never want to see any mail
> like that ever again".  If the server carries on delivering/processing
> that message then I think that's up to the mail server.

RFC 2821, section 4.2.5:

   When an SMTP server returns a permanent error status (5yz) code after
   the DATA command is completed with <CRLF>.<CRLF>, it MUST NOT make
   any subsequent attempt to deliver that message. 

I don't think that's open to interpretation.
-- 
Kjetil T.

Date: Tue, 11 Jul 2006 09:37:48 -0400
From: Cyrus Daboo <[email-masked]>
To: SIEVE <[email-masked]>
Subject: Slides for the meeting
Sender: [email-masked]

Hi folks,
Slides for today's meeting are available here:

<http://www3.ietf.org/proceedings/06jul/slides/sieve-0.pdf>

Jabber room is <xmpp:[email-masked]>

Audio details here <http://videolab.uoregon.edu/events/ietf/>

-- 
Cyrus Daboo

X-Spam-Score-spf_status:  
X-Spam-Score-Spamcatcher1:  6bd4c06d5359ae30d2547b2e9118f46b
X-Spam-Score-Summary:  2,0,0,0a2c0e2737d3a68f,15a9b11a782043ed,[email-masked],,RULES_HIT:355:379:481:539:540:541:542:543:567:599:601:945:973:980:982:988:989:1155:1156:1261:1277:1311:1313:1314:1345:1437:1513:1515:1516:1518:1521:1534:1540:1587:1593:1594:1711:1730:1747:1766:1792:2073:2075:2078:2196:2199:2393:2559:2562:2693:2737:2740:2743:2828:2901:3027:3352,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:
X-Spam-Score-rbl_summary:  none
X-Spam-Score-Phishing_status:  no
From: "Nigel Swinson" <[email-masked]>
To: "Kjetil Torgrim Homme" <[email-masked]>
Cc: <[email-masked]>
Subject: Re: List of open issues with Sieve reject draft(draft-ietf-sieve-refuse-reject-02.txt)
Date: Tue, 11 Jul 2006 13:59:29 +0100
Sender: [email-masked]

> there are no logging actions in Sieve, but most implementations can
> provide such logs without it being triggered by explicit script actions.

Well our implementation doesn't provide any end user accesible operational logs, so using fileinto seems like an excellent low cost implementation.

Besides, what is an end user going to want to see in those logs?  They will want access to the message data, and a list of what was rejected, which is exactly what you get with fileinto+reject.  Our product has run that way for years and the only complaints I've ever had about it is from you guys ;o)

> I don't think this is sufficient reason to allow an e-mail system to
> misrepresent the delivery status.

I'm quite happy to interpret reject as "I never want to see any mail like that ever again".  If the server carries on delivering/processing that message then I think that's up to the mail server.

Nigel

Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
From: Kjetil Torgrim Homme <[email-masked]>
To: Nigel Swinson <[email-masked]>
Cc: [email-masked]
Date: Tue, 11 Jul 2006 14:33:07 +0200
Sender: [email-masked]

On Tue, 2006-07-11 at 13:07 +0100, Nigel Swinson wrote:
> > On Sun, 2006-07-09 at 17:56 +0100, Alexey Melnikov wrote:
> > > 1). ´SHOULD be incompatible with other actions¡ is too strong, for 
> > > example there are good reasons to do reject+fileinto.
> > 
> > please state such reasons.  I do not think it is a good idea to allow
> > the recipient system to outright lie about the success of the delivery.
> 
> To create a record of what has been rejected so that the accuracy of
> the test in the script can be verified,

there are no logging actions in Sieve, but most implementations can
provide such logs without it being triggered by explicit script actions.

(a hypothetical logging action should not be incompatible with any other
actions, IMO.)

> or to store for forward to an abuse@ mailbox maintained by the sys
> admin.

I don't think this is sufficient reason to allow an e-mail system to
misrepresent the delivery status.
-- 
Kjetil T.

X-Spam-Score-spf_status:  
X-Spam-Score-Spamcatcher1:  792694cd36537ac2e94676b33ee0b5cf
X-Spam-Score-Summary:  2,0,0,cf620eeef602f1ca,166c4853ab17a0a6,[email-masked],,RULES_HIT:355:379:481:539:540:541:542:543:567:599:601:973:980:982:988:989:1155:1156:1261:1277:1311:1313:1314:1345:1437:1487:1513:1515:1516:1518:1521:1534:1538:1587:1593:1594:1711:1714:1730:1747:1766:1792:2073:2075:2078:2196:2199:2393:2559:2562:2737:2828:3027:3351,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:
X-Spam-Score-rbl_summary:  none
X-Spam-Score-Phishing_status:  no
From: "Nigel Swinson" <[email-masked]>
To: "Kjetil Torgrim Homme" <[email-masked]>
Cc: <[email-masked]>, "Alexey Melnikov" <[email-masked]>
Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
Date: Tue, 11 Jul 2006 13:07:53 +0100
Sender: [email-masked]

> On Sun, 2006-07-09 at 17:56 +0100, Alexey Melnikov wrote:
> > 1). ´SHOULD be incompatible with other actions¡ is too strong, for 
> > example there are good reasons to do reject+fileinto.
> 
> please state such reasons.  I do not think it is a good idea to allow
> the recipient system to outright lie about the success of the delivery.

To create a record of what has been rejected so that the accuracy of the test in the script can be verified, or to store for forward to an abuse@ mailbox maintained by the sys admin.

Nigel

Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
From: Kjetil Torgrim Homme <[email-masked]>
To: Arnt Gulbrandsen <[email-masked]>
Cc: [email-masked]
Date: Tue, 11 Jul 2006 13:27:08 +0200
Sender: [email-masked]

On Mon, 2006-07-10 at 00:02 +0200, Arnt Gulbrandsen wrote:
> Alexey Melnikov writes:
> > 3). Arnt has requested to allow for reject+redirect to be treated as 
> > just reject. I am not sure I like that. Opinions?
> 
> My reason:
> 
> If an implementation takes some trouble (e.g. using the postfix content 
> filter interface), it can evaluate some clauses of a sieve script based 
> only on the information in MAIL FROM and/or RCPT TO. After RCPT TO, 
> such an implementation may know that one clause in the script directs 
> the interpreter to reject the message, but it does not know whether 
> other actions are to be run, because other tests cannot yet be 
> evaluated.
>
> As I read the current draft, such an interpreter is not allowed to 
> reject the RCPT TO command, because it does not yet know whether the 
> script is valid: The script may also try to execute some action which 
> is incompatible with reject.

I don't think this is needed.

my take on it: a script which is run after RCPT TO needs to give a
unambiguous answer based on the information available.  if the script
only does envelope tests, takes an action and then stops, that action is
valid.  if a test which accesses headers or other unavailable
information is encountered before the explicit "stop", the result of the
script is "don't know", and the implementation must accept the RCPT TO.
after DATA, the script can be rerun with all tests.

to illustrate with an example:

  MAIL FROM:<>
  RCPT TO:<[email-masked]>

if my script is:

  require ["envelope", "subaddress"];
  if envelope :detail "To" "ietf" {
    fileinto "INBOX.ietf"; stop;
  } elsif not envelope :localpart "To" "kjetilho" {
    reject "Unknown subaddress"; stop;
  }
  if header :contains "Subject" "[birdwatch]" {
    fileinto "INBOX.lists.birdwatch"; stop;
  }
  ...

the first test yields true, the execution stops, and the fileinto means
accept the RCPT TO.  for RCPT TO:<[email-masked]>, reject
is taken and RCPT TO is denied.  for any other RCPT TO, execution goes
on to the header test, which can't be performed until after DATA.
therefore the result is "don't know" and the RCPT TO must be accepted.

-- 
Kjetil T.

Date: Mon, 10 Jul 2006 00:02:25 +0200
From: Arnt Gulbrandsen <[email-masked]>
To: [email-masked]
Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
Cc: Alexey Melnikov <[email-masked]>
Sender: [email-masked]

Alexey Melnikov writes:
> 3). Arnt has requested to allow for reject+redirect to be treated as 
> just reject. I am not sure I like that. Opinions?

My reason:

If an implementation takes some trouble (e.g. using the postfix content 
filter interface), it can evaluate some clauses of a sieve script based 
only on the information in MAIL FROM and/or RCPT TO. After RCPT TO, 
such an implementation may know that one clause in the script directs 
the interpreter to reject the message, but it does not know whether 
other actions are to be run, because other tests cannot yet be 
evaluated.

As I read the current draft, such an interpreter is not allowed to 
reject the RCPT TO command, because it does not yet know whether the 
script is valid: The script may also try to execute some action which 
is incompatible with reject.

Arnt

Cc: Alexey Melnikov <[email-masked]>, [email-masked]
To: Kjetil Torgrim Homme <[email-masked]>
Date: Mon, 10 Jul 2006 06:43:06 -0700 (PDT)
From: Ned Freed <[email-masked]>
Subject: Re: List of open issues with Sieve reject draft (draft-ietf-sieve-refuse-reject-02.txt)
Sender: [email-masked]

> On Sun, 2006-07-09 at 17:56 +0100, Alexey Melnikov wrote:
> > 1). ´SHOULD be incompatible with other actions¡ is too strong, for
> > example there are good reasons to do reject+fileinto.

> please state such reasons.  I do not think it is a good idea to allow
> the recipient system to outright lie about the success of the delivery.

I have to agree with Kjetil here. Of course a user could forge a failure
DSN, but that's no reason to make it easy to lie about the status of email.
Joe-jobs have caused enough damage to the way DSNs work already; we really
should do more.

> > I tend to agree that reject should be made compatible with other actions
> > (except for vacation), so I would like to at least downgrade SHOULD to MAY.

> > 2). Non ASCII text in rejection string - should it cause creation of
> > DSN/MDN, runtime error or stripping of non-ASCII content?
> > Should we add a tagged argument to control this?
> > Or maybe we need another capability to enable UTF-8 clean rejection?

> that capability needs to be added to SMTP, right?

I would assume UTF-8 error responses in SMTP are somewhere in the EAI
to-do list, but we shouldn't have a dependency on such work here..

> > I am leaning toward having an extra capability to enable UTF-8 rejection
> > text over SMTP/LMTP protocol.

> fine with me.  I don't think Sieve needs to address this point
> normatively.  the implementation can do its best within the limits of
> the current standards.

Agreed.

> > 3). Arnt has requested to allow for reject+redirect to be treated as
> > just reject. I am not sure I like that. Opinions?

> I don't like it either.  silently ignoring actions is bad.

Agreed as well.

				Ned

Subject: Re: 3028bis status
From: Kjetil Torgrim Homme <[email-masked]>
To: Philip Guenther <[email-masked]>
Cc: [email-masked]
Date: Mon, 10 Jul 2006 15:28:59 +0200
Sender: [email-masked]

On Mon, 2006-07-10 at 05:10 -0700, Philip Guenther wrote:
> I finally got rev -07 posted in late June.  Changes from rev -06:
>   5. Permit non-UTF-8 octet sequences in strings

in strings yes, but not in scripts.  agreed?  non-UTF-8 must be encoded
in whatever manner is available.

> (b) is the continuation of change #5 above.  That was in response to Ned's 
> observation that you need to be able to put text in other character sets 
> into strings for things like vacation's :mime option.  E.g., usability may 
> demand a site returning vacation responses in some ISO-8859-* charset.

sure, but the script doesn't need to contain ISO 8859-* octet values.
-- 
Kjetil T.

Subject: Re: List of open issues with Sieve reject draft  (draft-ietf-sieve-refuse-reject-02.txt)
From: Kjetil Torgrim Homme <[email-masked]>
To: Alexey Melnikov <[email-masked]>
Cc: [email-masked]
Date: Mon, 10 Jul 2006 14:25:52 +0200
Sender: [email-masked]

On Sun, 2006-07-09 at 17:56 +0100, Alexey Melnikov wrote:
> 1). ´SHOULD be incompatible with other actions¡ is too strong, for 
> example there are good reasons to do reject+fileinto.

please state such reasons.  I do not think it is a good idea to allow
the recipient system to outright lie about the success of the delivery.

> I tend to agree that reject should be made compatible with other actions 
> (except for vacation), so I would like to at least downgrade SHOULD to MAY.
> 
> 2). Non ASCII text in rejection string - should it cause creation of 
> DSN/MDN, runtime error or stripping of non-ASCII content?
> Should we add a tagged argument to control this?
> Or maybe we need another capability to enable UTF-8 clean rejection?

that capability needs to be added to SMTP, right?

> I am leaning toward having an extra capability to enable UTF-8 rejection 
> text over SMTP/LMTP protocol.

fine with me.  I don't think Sieve needs to address this point
normatively.  the implementation can do its best within the limits of
the current standards.

> 3). Arnt has requested to allow for reject+redirect to be treated as 
> just reject. I am not sure I like that. Opinions?

I don't like it either.  silently ignoring actions is bad.
-- 
Kjetil T.

Date: Mon, 10 Jul 2006 05:10:28 -0700
From: Philip Guenther <[email-masked]>
To: [email-masked]
Subject: 3028bis status
Sender: [email-masked]

I finally got rev -07 posted in late June.  Changes from rev -06:
  1. Tweak wording of how :matches uses character definition
     of comparator
  2. Add security consideration regarding "redirect" as a notification
     method
  3. fileinto SHOULD reencode; mention IMAP's mUTF-7
  4. en;ascii-casemap is gone; switch back to i;ascii-casemap
  5. Permit non-UTF-8 octet sequences in strings
  6. Sort grammar non-terminals
  7. Syntactically invalid addresses don't match :localpart or :domain
  8. The null return-path has empty address parts
  9. Treat comparator result of "undefined" the same as "no-match"
  10. Envelope sender on redirects is implementation defined
  11. Change IANA registration template

The last open items are:
  a) figuring out exactly what to put in for IANA so they can update all
     the registry entries
  b) what's up with that UTF-8 thing anyway?

For (a), I just dropped by the IANA table and ran the question by them and 
the response was to simply state in the IANA considerations section the 
procedure that they should use to bring the old registrations in line with 
the new registration requirements.  For the new "Description" field, the 
fields will be left empty and we should just poke registrants to submit a 
description via email.  I'll roll in text for that to the next revision.

(b) is the continuation of change #5 above.  That was in response to Ned's 
observation that you need to be able to put text in other character sets 
into strings for things like vacation's :mime option.  E.g., usability may 
demand a site returning vacation responses in some ISO-8859-* charset.

The change I made, based on the mumbling in I heard in the audio recording 
of the meeting, effectively requires sieve implementations to handle such 
scripts by making it part of the grammar of legal scripts.  Scripts are 
still required to use valid UTF-8 in comments, but strings are fair game. 
The description of sieve as respresented in UTF-8 (section 2.1 and 
elsewhere) needs to be dropped or amended.  Other programs that parse 
sieve scripts (<cough> GUIs <cough>) are affected by this of course, but 
they really had to face it before.

Philip Guenther

X-Spam-Score-spf_status:  
X-Spam-Score-Spamcatcher1:  c59c94e253812e8ee7f119fceb10603c
X-Spam-Score-Summary:  40,2.5,0,a2cad9ab982d78ca,00af4c7c0df4fab8,[email-masked],,RULES_HIT:355:379:481:539:540:541:542:543:559:567:599:601:945:973:988:989:1155:1156:1261:1277:1311:1313:1314:1345:1437:1487:1513:1515:1516:1518:1521:1534:1538:1587:1593:1594:1683:1711:1730:1747:1766:1792:2073:2075:2078:2393:2553:2559:2562:3027:3352,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:
X-Spam-Score-rbl_summary:  none
X-Spam-Score-Phishing_status:  no
From: "Nigel Swinson" <[email-masked]>
To: "Alexey Melnikov" <[email-masked]>
Cc: <[email-masked]>
Subject: Re: List of open issues with Sieve reject draft          (draft-ietf-sieve-refuse-reject-02.txt)
Date: Mon, 10 Jul 2006 12:04:59 +0100
Sender: [email-masked]

> 1). “SHOULD be incompatible with other actions” is too strong, for 
> example there are good reasons to do reject+fileinto.
> 
> I tend to agree that reject should be made compatible with other actions 
> (except for vacation), so I would like to at least downgrade SHOULD to MAY.

I agree, I deliberately ignored the SHOULD anyway

> 3). Arnt has requested to allow for reject+redirect to be treated as 
> just reject. I am not sure I like that. Opinions?
> 
> Comments?

I don't like that either, I can't see any reason why we'd want that.

Nigel

Date: Sun, 09 Jul 2006 18:16:24 +0100
From: Alexey Melnikov <[email-masked]>
To: Michael Haardt <[email-masked]>
CC: [email-masked]
Subject: Re: I-D ACTION:draft-ietf-sieve-notify-03.txt
Sender: [email-masked]

Michael Haardt wrote:

>Hello,
>
>I am just changing my code to implement -03 and have a few issues:
>
>Section 3.1:
>
>  [":options" 1*(string-list / number)]
>
>Honestly, I think that's overkill.
>
In this revision I've just restored the original parameter. I tend to 
agree that it is an overkill, but I think we need to have a discussion 
on list of possible options first.

>  An arbitrary amount of string lists
>and numbers, but it must not be empty? I expected a single string list
>and I am surprised to see it was considered not to be enough.
>
>This has the implication that the ":method" tag is going to stay forever,
>whereas I expected -03 to remove it, making the method string the last
>argument.  Correct?
>
I haven't thought about that, but yes, you are right.

One thing that would be awkward, if :method becomes a positional 
argument, is that message content can be a multiline response, followed 
by the method URI. Nothing really wrong with that (string can be either 
quoted or multiline), but this is the first extension where this feature 
can be used for real.

>
>Section 3.2:
>
>   An implementation MAY enforce other
>   semantic restrictions on URIs -- for example an SMS URI can only
>   contain phone numbers in a particular geographical region.  Violation
>   of such semantic restrictions MUST be treated as an error.
>   [[Barry 1: "MUST" seems silly here, since the whole sentence is a
>   "MAY".]]
>
>How about wording it differently?
>
>   An implementation MAY enforce other
>   semantic restrictions on URIs -- for example an SMS URI can only
>   contain phone numbers in a particular geographical region.
>   A violation of such semantic restrictions MUST be treated as an error
>   and not cause notifications to be ignored.
>
>If that is not what was meant,
>
Yes. But I think "not cause notifications to be ignored" just follows 
from "MUST be treated as an error". Do you agree?

>then I guess we should word it differently
>for sure. :)
>
>Section 3.5:
>
>   [[Alexey 1: Should we keep using "high", "normal" and "low" instead?
>   Numbers are easier to compare with comparators.]]
>
>Since we talk about an input parameter to "notify", how about allowing
>words as well as numbers? Expressions using variables might generate
>numbers, whereas users probably prefer words.
>
I think that is overkill. We should stick with one way.
Words are friendlier to humans, but I also like numbers in case we need 
to make relational comparisons on them.

>
>   [[Barry 3.5: Why do we call this "priority", and then explain it as
>   "importance"?  Shouldn't we just call it "importance"?]]
>
>YES. In fact I thought it was decided to change that in -03.
>
My memory is vague on this and the notes didn't record this. Any 
objections from the WG?

>
>Section 3.6:
>
>   If the message parameter is absent, a default message
>   containing the value of the From header field [[Alexey 3: Align with
>   usage of :from]] and the value of the Subject header field will be
>   used.  Note that the notification method (the ":method" tag) may
>   affect how this information is formatted.
>
>Is that a suggestion, a MAY, SHOULD or MUST?
>
SHOULD or MAY.

>Sites should be free to
>send other default messages and I vote for:
>
>   If the message parameter is absent, a site-specific default message
>   will be used.  It is suggested that it contains the value of the
>   "From" header field and the value of the "Subject" header field.
>  
>
That is fine with me.

Date: Sun, 09 Jul 2006 17:56:28 +0100
From: Alexey Melnikov <[email-masked]>
To: [email-masked]
Subject: List of open issues with Sieve reject draft  (draft-ietf-sieve-refuse-reject-02.txt)
Sender: [email-masked]

1). “SHOULD be incompatible with other actions” is too strong, for 
example there are good reasons to do reject+fileinto.

I tend to agree that reject should be made compatible with other actions 
(except for vacation), so I would like to at least downgrade SHOULD to MAY.

2). Non ASCII text in rejection string - should it cause creation of 
DSN/MDN, runtime error or stripping of non-ASCII content?
Should we add a tagged argument to control this?
Or maybe we need another capability to enable UTF-8 clean rejection?

I am leaning toward having an extra capability to enable UTF-8 rejection 
text over SMTP/LMTP protocol.

3). Arnt has requested to allow for reject+redirect to be treated as 
just reject. I am not sure I like that. Opinions?

Comments?

Alexey

Date: Thu, 6 Jul 2006 03:12:32 -0700
From: Philip Guenther <[email-masked]>
To: Alexey Melnikov <[email-masked]>
cc: MTA filtering mailing list <[email-masked]>
Subject: Re: Document status, presentations for Sieve WG meeting in Montreal
Sender: [email-masked]

On Tue, 4 Jul 2006, Alexey Melnikov wrote:
> For people who want to participate remotely using Jabber: Sieve WG meeting is 
> scheduled for Tuesday, July 11, from 15:20 till 17:20 (Montreal time, which I 
> think is GMT - 5)

The zonefiles I see put Montreal in EST/EDT, which is currently GMT-4

Philip Guenther

Date: Tue, 04 Jul 2006 17:46:30 +0100
From: Alexey Melnikov <[email-masked]>
To: MTA filtering mailing list <[email-masked]>
Subject: Re: Document status, presentations for Sieve WG meeting in Montreal
Sender: [email-masked]

Alexey Melnikov wrote:

> Hi folks,
> I would like to ask editors to let me or Cyrus know if they are coming 
> to the Montreal IETF.

For people who want to participate remotely using Jabber: Sieve WG 
meeting is scheduled for Tuesday, July 11, from 15:20 till 17:20 
(Montreal time, which I think is GMT - 5)

Date: Tue, 04 Jul 2006 10:45:10 +0100
From: Alexey Melnikov <[email-masked]>
To: MTA filtering mailing list <[email-masked]>
Subject: Document status, presentations for Sieve WG meeting in Montreal
Sender: [email-masked]

Hi folks,
I would like to ask editors to let me or Cyrus know if they are coming 
to the Montreal IETF.
WG chairs would also like to see list of open issues/slides by the end 
of this week.

Thanks,
Alexey