draft-ietf-sieve-external-lists-09.txt   draft-ietf-sieve-external-lists-10.txt 
Sieve Working Group A. Melnikov Sieve Working Group A. Melnikov
Internet-Draft Isode Limited Internet-Draft Isode Limited
Intended status: Standards Track B. Leiba Intended status: Standards Track B. Leiba
Expires: November 19, 2011 Huawei Technologies Expires: December 11, 2011 Huawei Technologies
May 18, 2011 June 9, 2011
Sieve Extension: Externally Stored Lists Sieve Extension: Externally Stored Lists
draft-ietf-sieve-external-lists-09 draft-ietf-sieve-external-lists-10
Abstract Abstract
The Sieve scripting language can be used to implement whitelisting, The Sieve email filtering language can be used to implement email
blacklisting, personal distribution lists, and other sorts of list whitelisting, blacklisting, personal distribution lists, and other
matching. Currently, this requires that all members of such lists be sorts of list matching. Currently, this requires that all members of
hardcoded in the script itself. Whenever a member of a list is added such lists be hardcoded in the script itself. Whenever a member of a
or deleted, the script needs to be updated and possibly uploaded to a list is added or deleted, the script needs to be updated and possibly
mail server. uploaded to a mail server.
This document defines a Sieve extension for accessing externally This document defines a Sieve extension for accessing externally
stored lists -- lists whose members are stored externally to the stored lists -- lists whose members are stored externally to the
script, such as using LDAP (RFC 4510), ACAP (RFC 2244), CardDAV (work script, such as using LDAP (RFC 4510), ACAP (RFC 2244), CardDAV (work
in progress), or relational databases. in progress), or relational databases.
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
skipping to change at page 1, line 41 skipping to change at page 1, line 41
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 19, 2011. This Internet-Draft will expire on December 11, 2011.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 39 skipping to change at page 2, line 39
2.9.3. Example 3 . . . . . . . . . . . . . . . . . . . . . . . . 10 2.9.3. Example 3 . . . . . . . . . . . . . . . . . . . . . . . . 10
2.9.4. Example 4 . . . . . . . . . . . . . . . . . . . . . . . . 11 2.9.4. Example 4 . . . . . . . . . . . . . . . . . . . . . . . . 11
2.9.5. Example 5 . . . . . . . . . . . . . . . . . . . . . . . . 11 2.9.5. Example 5 . . . . . . . . . . . . . . . . . . . . . . . . 11
3. Security Considerations . . . . . . . . . . . . . . . . . 12 3. Security Considerations . . . . . . . . . . . . . . . . . 12
4. IANA Considerations . . . . . . . . . . . . . . . . . . . 14 4. IANA Considerations . . . . . . . . . . . . . . . . . . . 14
4.1. Registration of Sieve Extension . . . . . . . . . . . . . 14 4.1. Registration of Sieve Extension . . . . . . . . . . . . . 14
4.2. Registration of ManageSieve Capability . . . . . . . . . . 14 4.2. Registration of ManageSieve Capability . . . . . . . . . . 14
4.3. Creation of Sieve URN Parameters registry . . . . . . . . 15 4.3. Creation of Sieve URN Parameters registry . . . . . . . . 15
4.4. Registration of the "addrbook" URN parameter . . . . . . . 15 4.4. Registration of the "addrbook" URN parameter . . . . . . . 16
4.5. Registration of "sieve" URN sub-namespace . . . . . . . . 16 4.5. Registration of "sieve" URN sub-namespace . . . . . . . . 16
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 16 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 16
6. References . . . . . . . . . . . . . . . . . . . . . . . . 16 6. References . . . . . . . . . . . . . . . . . . . . . . . . 16
6.1. Normative References . . . . . . . . . . . . . . . . . . . 16 6.1. Normative References . . . . . . . . . . . . . . . . . . . 16
6.2. Informative References . . . . . . . . . . . . . . . . . . 17 6.2. Informative References . . . . . . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . 18 Authors' Addresses . . . . . . . . . . . . . . . . . . . . 18
skipping to change at page 3, line 20 skipping to change at page 3, line 20
list whose members are stored externally to the Sieve script, such as list whose members are stored externally to the Sieve script, such as
using LDAP [RFC4510], ACAP [RFC2244], CardDAV using LDAP [RFC4510], ACAP [RFC2244], CardDAV
[I-D.ietf-vcarddav-carddav], or relational databases. [I-D.ietf-vcarddav-carddav], or relational databases.
This extension adds a new match type to apply to supported tests, and This extension adds a new match type to apply to supported tests, and
a new tagged argument to the "redirect" action. a new tagged argument to the "redirect" action.
1.1. Conventions Used In This Document 1.1. Conventions Used In This Document
Conventions for notations are as in [RFC5228] section 1.1, including Conventions for notations are as in [RFC5228] section 1.1, including
the use of [RFC5234]. the use of ABNF [RFC5234].
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
2. Extlists Extension 2. Extlists Extension
2.1. Capability Identifier 2.1. Capability Identifier
The capability string associated with the extension defined in this The capability string associated with the extension defined in this
skipping to change at page 4, line 12 skipping to change at page 4, line 12
Queries done through list-specific mechanisms might have the effect Queries done through list-specific mechanisms might have the effect
of built-in comparators; for example, queries to certain lists might of built-in comparators; for example, queries to certain lists might
be case-sensitive, while queries to other lists might be done without be case-sensitive, while queries to other lists might be done without
regard to case. regard to case.
Implementations MUST support the use of ":list" in "address", Implementations MUST support the use of ":list" in "address",
"envelope" and "header" tests. Implementations that include the "envelope" and "header" tests. Implementations that include the
Variables extension [RFC5229] MUST also support its use in "string" Variables extension [RFC5229] MUST also support its use in "string"
tests. tests.
Implementations MAY support other tests but MUST raise an error Implementations MAY support other tests than the ones in this
(which SHOULD be a compile-time error, but MAY be a runtime error) document. Implementations MUST report an error when a script uses
when a script uses ":list" with a test for which it is not supported. ":list" with a test that does not support ":list". This error SHOULD
To maintain interoperability, other tests that can be used with be reported at compile-time, but MAY be reported at run-time. To
":list" SHOULD be documented in a specification that defines a maintain interoperability, other tests that can be used with ":list"
capability string that can be tested (in a "require" statement, or SHOULD be documented in a specification that defines a capability
using ihave [RFC5463]). string that can be tested (in a "require" statement or using ihave
[RFC5463]).
For example, testing 'header ["to", "cc"]' against a list would cause For example, testing 'header ["to", "cc"]' against a list would cause
each "to" and "cc" value, ignoring leading and trailing whitespace, each "to" and "cc" value, ignoring leading and trailing whitespace,
to be queried. If any value is found to belong to the list, the test to be queried. If any value is found to belong to the list, the test
returns "true". If no value belongs to the list, the test returns returns "true". If no value belongs to the list, the test returns
"false". Once a value is found in the list, there is no need for the "false". Once a value is found in the list, there is no need for the
query mechanism to look further. query mechanism to look further.
For some lists, the Sieve engine might directly retrieve the list and For some lists, the Sieve engine might directly retrieve the list and
make its own comparison. Other lists might not work that way -- they make its own comparison. Other lists might not work that way -- they
skipping to change at page 15, line 16 skipping to change at page 15, line 16
Author/Change controller: IESG Author/Change controller: IESG
4.3. Creation of Sieve URN Parameters registry 4.3. Creation of Sieve URN Parameters registry
The following requests IANA to create a new registry under "Sieve The following requests IANA to create a new registry under "Sieve
Extensions" for Sieve URN Parameters. Registration into this Extensions" for Sieve URN Parameters. Registration into this
registry is according to the "Specification Required" policy registry is according to the "Specification Required" policy
[RFC5226]. [RFC5226].
The registry will contain the following two items:
URN parameter name: The name of the URN parameter. If the name is URN parameter name: The name of the URN parameter. If the name is
"paramname", the resulting top-level URN will be "paramname", the resulting top-level URN will be
"urn:ietf:params:sieve:paramname". "urn:ietf:params:sieve:paramname".
Reference: The document and section where the definition of the Reference: The document and section where the definition of the
parameter can be found. The documentation MUST include the parameter can be found. Be sure to include the section number as
following information (see Section 2.6 for an example): well as the document reference, so the documentation is easy to
find.
URN parameter name: The name of the URN parameter. The documentation -- which will be in the referenced document and
section, and will not be included in the registry -- MUST include the
following information (see Section 2.6 for an example):
URN parameter syntax: The syntax of the parameter and any sub- URN parameter name: The name of the URN parameter.
parameters, which SHOULD be specified using ABNF [RFC5234].
Intended usage: A detailed description of how the parameter and URN parameter syntax: The syntax of the parameter and any sub-
any sub-parameters are expected to be used. This is the parameters, which SHOULD be specified using ABNF [RFC5234].
place to define static sub-parameters, registries for sub-
parameters, options, registries for options, and so on.
Interoperability considerations: Any notes specific to Intended usage: A detailed description of how the parameter and
interoperability issues. This is where to put mandatory-to- any sub-parameters are expected to be used. This is the place
implement sub-parameters and the like. to define static sub-parameters, registries for sub-
parameters, options, registries for options, and so on.
Security considerations: Any notes specific to security and Interoperability considerations: Any notes specific to
privacy issues. interoperability issues. This is where to put mandatory-to-
implement sub-parameters and the like.
Contact: Contact information, in case there are questions. Security considerations: Any notes specific to security and
privacy issues.
Contact: Contact information, in case there are questions.
4.4. Registration of the "addrbook" URN parameter 4.4. Registration of the "addrbook" URN parameter
The following requests IANA to register a new Sieve URN parameter in The following requests IANA to register a new Sieve URN parameter in
the registry defined in Section 4.3. the registry defined in Section 4.3.
URN parameter name: addrbook URN parameter name: addrbook
Reference: [[this RFC]], Section 2.6 Reference: [[this RFC]], Section 2.6
 End of changes. 15 change blocks. 
34 lines changed or deleted 42 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/