draft-ietf-sieve-managesieve-02.txt   draft-ietf-sieve-managesieve-03.txt 
Sieve Working Group A. Melnikov, Ed. Sieve Working Group A. Melnikov, Ed.
Internet-Draft Isode Limited Internet-Draft Isode Limited
Intended status: Standards Track T. Martin Intended status: Standards Track T. Martin
Expires: June 3, 2009 BeThereBeSquare Inc. Expires: June 4, 2009 BeThereBeSquare Inc.
November 30, 2008 December 1, 2008
A Protocol for Remotely Managing Sieve Scripts A Protocol for Remotely Managing Sieve Scripts
draft-ietf-sieve-managesieve-02 draft-ietf-sieve-managesieve-03
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 35 skipping to change at page 1, line 35
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."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on June 3, 2009. This Internet-Draft will expire on June 4, 2009.
Abstract Abstract
Sieve scripts allow users to filter incoming email. Message stores Sieve scripts allow users to filter incoming email. Message stores
are commonly sealed servers so users cannot log into them, yet users are commonly sealed servers so users cannot log into them, yet users
must be able to update their scripts on them. This document must be able to update their scripts on them. This document
describes a protocol "ManageSieve" for securely managing Sieve describes a protocol "ManageSieve" for securely managing Sieve
scripts on a remote server. This protocol allows a user to have scripts on a remote server. This protocol allows a user to have
multiple scripts, and also alerts a user to syntactically flawed multiple scripts, and also alerts a user to syntactically flawed
scripts. scripts.
skipping to change at page 2, line 39 skipping to change at page 2, line 39
2.9. GETSCRIPT Command . . . . . . . . . . . . . . . . . . . . 24 2.9. GETSCRIPT Command . . . . . . . . . . . . . . . . . . . . 24
2.10. DELETESCRIPT Command . . . . . . . . . . . . . . . . . . . 24 2.10. DELETESCRIPT Command . . . . . . . . . . . . . . . . . . . 24
2.11. RENAMESCRIPT Command . . . . . . . . . . . . . . . . . . . 25 2.11. RENAMESCRIPT Command . . . . . . . . . . . . . . . . . . . 25
2.12. CHECKSCRIPT Command . . . . . . . . . . . . . . . . . . . 26 2.12. CHECKSCRIPT Command . . . . . . . . . . . . . . . . . . . 26
2.13. NOOP Command . . . . . . . . . . . . . . . . . . . . . . . 27 2.13. NOOP Command . . . . . . . . . . . . . . . . . . . . . . . 27
2.14. Recommended extensions . . . . . . . . . . . . . . . . . . 27 2.14. Recommended extensions . . . . . . . . . . . . . . . . . . 27
2.14.1. UNAUTHENTICATE Command . . . . . . . . . . . . . . . . . . 27 2.14.1. UNAUTHENTICATE Command . . . . . . . . . . . . . . . . . . 27
3. Sieve URL Scheme . . . . . . . . . . . . . . . . . . . . . 28 3. Sieve URL Scheme . . . . . . . . . . . . . . . . . . . . . 28
4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 30 4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 31
5. Security Considerations . . . . . . . . . . . . . . . . . 36 5. Security Considerations . . . . . . . . . . . . . . . . . 37
6. IANA Considerations . . . . . . . . . . . . . . . . . . . 36 6. IANA Considerations . . . . . . . . . . . . . . . . . . . 37
6.1. ManageSieve Capability Registration Template . . . . . . . 37 6.1. ManageSieve Capability Registration Template . . . . . . . 38
6.2. Registration of Initial ManageSieve capabilities . . . . . 37 6.2. Registration of Initial ManageSieve capabilities . . . . . 38
6.3. ManageSieve Response Code Registration Template . . . . . 39 6.3. ManageSieve Response Code Registration Template . . . . . 40
6.4. Registration of Initial ManageSieve Response Codes . . . . 39 6.4. Registration of Initial ManageSieve Response Codes . . . . 40
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 44 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 46
8. References . . . . . . . . . . . . . . . . . . . . . . . . 45 8. References . . . . . . . . . . . . . . . . . . . . . . . . 46
8.1. Normative References . . . . . . . . . . . . . . . . . . . 45 8.1. Normative References . . . . . . . . . . . . . . . . . . . 46
8.2. Informative References . . . . . . . . . . . . . . . . . . 47 8.2. Informative References . . . . . . . . . . . . . . . . . . 48
Authors' Addresses . . . . . . . . . . . . . . . . . . . . 47 Authors' Addresses . . . . . . . . . . . . . . . . . . . . 48
Intellectual Property and Copyright Statements . . . . . . 49 Intellectual Property and Copyright Statements . . . . . . 50
1. Introduction 1. Introduction
1.1. Conventions used in this document 1.1. Conventions used in this document
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 [KEYWORDS]. document are to be interpreted as described in [KEYWORDS].
In examples, "C:" and "S:" indicate lines sent by the client and In examples, "C:" and "S:" indicate lines sent by the client and
server respectively. Line breaks that do not start a new "C:" or server respectively. Line breaks that do not start a new "C:" or
"S:" exist for editorial reasons. "S:" exist for editorial reasons.
1.2. Syntax 1.2. Syntax
This a line oriented protocol much like [IMAP4rev1] or [ACAP]. There This a line oriented protocol much like [IMAP] or [ACAP]. There are
are three data types: atoms, numbers and strings. Strings may be three data types: atoms, numbers and strings. Strings may be quoted
quoted or literal. See [ACAP] for detailed descriptions of these or literal. See [ACAP] for detailed descriptions of these types.
types.
Each command consists of an atom (the command name) followed by zero Each command consists of an atom (the command name) followed by zero
or more strings and numbers terminated by CRLF. or more strings and numbers terminated by CRLF.
All client queries are replied to with either an OK, NO, or BYE All client queries are replied to with either an OK, NO, or BYE
response. Each response may be followed by a response code (see response. Each response may be followed by a response code (see
Section 1.3) and by a string consisting of human readable text in the Section 1.3) and by a string consisting of human readable text in the
local language, encoded in [UTF-8]. The contents of the string local language, encoded in [UTF-8]. The contents of the string
SHOULD be shown to the user and implementations MUST NOT attempt to SHOULD be shown to the user and implementations MUST NOT attempt to
parse the message for meaning. parse the message for meaning.
skipping to change at page 8, line 4 skipping to change at page 7, line 50
(Section 2 of [NET-UNICODE]), with the additional restriction of (Section 2 of [NET-UNICODE]), with the additional restriction of
prohibiting the following Unicode characters: prohibiting the following Unicode characters:
o 0000-001F; [CONTROL CHARACTERS] o 0000-001F; [CONTROL CHARACTERS]
o 007F; DELETE o 007F; DELETE
o 0080-009F; [CONTROL CHARACTERS] o 0080-009F; [CONTROL CHARACTERS]
o 2028; LINE SEPARATOR o 2028; LINE SEPARATOR
o 2029; PARAGRAPH SEPARATOR
o 2029; PARAGRAPH SEPARATOR
Sieve script names MUST be at least one octet (and hense Unicode Sieve script names MUST be at least one octet (and hense Unicode
character) long. Zero octets script name has a special meaning (see character) long. Zero octets script name has a special meaning (see
Section 2.8). Servers MUST allow names of up to 128 Unicode Section 2.8). Servers MUST allow names of up to 128 Unicode
characters in length (which can take up to 512 bytes when encoded in characters in length (which can take up to 512 bytes when encoded in
UTF-8, not counting the terminating NUL), and MAY allow longer names. UTF-8, not counting the terminating NUL), and MAY allow longer names.
A server that receives a script name longer than its internal limit A server that receives a script name longer than its internal limit
MUST rejects the corresponding operation, in particular it MUST NOT MUST rejects the corresponding operation, in particular it MUST NOT
truncate the script name. truncate the script name.
1.7. Capabilities 1.7. Capabilities
skipping to change at page 28, line 13 skipping to change at page 29, line 5
BYE) BYE)
3. Sieve URL Scheme 3. Sieve URL Scheme
URI scheme name: sieve URI scheme name: sieve
Status: permanent Status: permanent
URI scheme syntax: URI scheme syntax:
Described using ABNF [ABNF] and ABNF entities from [URI-GEN]. Described using ABNF [ABNF]. Some ABNF productions not defined
below are from [URI-GEN].
sieveurl = sieveurl-server / sieveurl-list-scripts / sieveurl = sieveurl-server / sieveurl-list-scripts /
sieveurl-script sieveurl-script
sieveurl-server = "sieve://" authority sieveurl-server = "sieve://" authority
sieveurl-list-scripts = "sieve://" authority ["/"] sieveurl-list-scripts = "sieve://" authority ["/"]
sieveurl-script = "sieve://" authority "/" sieveurl-script = "sieve://" authority "/"
[owner "/"] scriptname [owner "/"] scriptname
sub-delims-sh = "!" / "$" / "'" / "(" / ")" / authority = <defined in [URI-GEN]>
"*" / "+" / ","
;; Same as [URI-GEN] sub-delims,
;; but without ";", "&" and "=".
uchar = unreserved / pct-encoded / sub-delims-sh
;; Same as [URI-GEN]
;; 'unreserved / pct-encoded / sub-delims',
;; but without ";", "&" and "=".
ochar = uchar / ":" / "@"
;; Same as [URI-GEN] 'pchar'
;; but without ";", "&" and "=".
owner = *ochar owner = *ochar
;; %-encoded version of [IMAP4] authorization ;; %-encoded version of [SASL] authorization
;; identity (owner) or "userid". ;; identity (script owner) or "userid".
;; ;;
;; Empty owner is used to reference ;; Empty owner is used to reference
;; global scripts. ;; global scripts.
;; ;;
;; Note that ASCII characters such as " ", ";", ;; Note that ASCII characters such as " ", ";",
;; "&", "=", "/" and "?" MUST be %-encoded. ;; "&", "=", "/" and "?" must be %-encoded
;; as per rule specified in [URI-GEN].
scriptname = 1*ochar scriptname = 1*ochar
;; %-encoded version of UTF-8 representation ;; %-encoded version of UTF-8 representation
;; of the script name. ;; of the script name.
;; Note that ASCII characters such as " ", ";", ;; Note that ASCII characters such as " ", ";",
;; "&", "=", "/" and "?" MUST be %-encoded. ;; "&", "=", "/" and "?" must be %-encoded
;; as per rule specified in [URI-GEN].
ochar = unreserved / pct-encoded / sub-delims-sh /
":" / "@"
;; Same as [URI-GEN] 'pchar'
;; but without ";", "&" and "=".
unreserved = <defined in [URI-GEN]>
pct-encoded = <defined in [URI-GEN]>
sub-delims-sh = "!" / "$" / "'" / "(" / ")" /
"*" / "+" / ","
;; Same as [URI-GEN] sub-delims,
;; but without ";", "&" and "=".
URI scheme semantics: URI scheme semantics:
A Sieve URL identifies a Sieve server or a Sieve script on a Sieve A Sieve URL identifies a Sieve server or a Sieve script on a Sieve
server. The latter form is associated with the application/sieve server. The latter form is associated with the application/sieve
MIME type defined in [SIEVE]. There is no MIME type associated MIME type defined in [SIEVE]. There is no MIME type associated
with the former form of Sieve URI. with the former form of Sieve URI.
The server form is used in the REFERRAL response code in order to The server form is used in the REFERRAL response code (see
designate another server where the client should perform its Section 1.3 in order to designate another server where the client
operations. should perform its operations.
The script form allows to retrieve (GETSCRIPT), update The script form allows to retrieve (GETSCRIPT), update
(PUTSCRIPT), delete (DELETESCRIPT) or activate (SETACTIVE) the (PUTSCRIPT), delete (DELETESCRIPT) or activate (SETACTIVE) the
named script, however the most typical action would be to retrieve named script, however the most typical action would be to retrieve
the script. If the script name is empty (omitted), the URI the script. If the script name is empty (omitted), the URI
requests that the client lists available scripts using the requests that the client lists available scripts using the
LISTSCRIPTS command. LISTSCRIPTS command.
Encoding considerations: The script name or the owner, if present, is Encoding considerations:
in UTF-8. Non-US-ASCII UTF-8 octets MUST be percent-encoded as
described in [URI-GEN]. US-ASCII characters such as " " (space), The script name and/or the owner, if present, is in UTF-8. Non-
";", "&", "=", "/" and "?" MUST be %-encoded as described in US-ASCII UTF-8 octets MUST be percent-encoded as described in
[URI-GEN]. [URI-GEN]. US-ASCII characters such as " " (space), ";", "&",
"=", "/" and "?" MUST be %-encoded as described in [URI-GEN].
Note that "&" and "?" are in this list in order to allow for
future extensions.
Note that the empty owner (e.g. sieve://example.com//script) is
different from the missing owner (e.g. sieve://example.com/script)
and is reserved for referencing global scripts.
The user name (in the "authority" part), if present, is in UTF-8. The user name (in the "authority" part), if present, is in UTF-8.
Non-US-ASCII UTF-8 octets MUST be percent-encoded as described in Non-US-ASCII UTF-8 octets MUST be percent-encoded as described in
[URI-GEN]. [URI-GEN].
Applications/protocols that use this URI scheme name: Applications/protocols that use this URI scheme name:
ManageSieve [RFC XXXX] clients and servers. Clients that can store ManageSieve [RFC XXXX] clients and servers. Clients that can store
user preferences in protocols such as [LDAP] or [ACAP]. user preferences in protocols such as [LDAP] or [ACAP].
Interoperability considerations: None. Interoperability considerations: None.
skipping to change at page 45, line 4 skipping to change at page 46, line 15
Melnikov <alexey.melnikov@isode.com> Melnikov <alexey.melnikov@isode.com>
Author/Change controller: IESG. Author/Change controller: IESG.
7. Acknowledgements 7. Acknowledgements
Thanks to Simon Josefsson, Larry Greenfield, Allen Johnson, Chris Thanks to Simon Josefsson, Larry Greenfield, Allen Johnson, Chris
Newman, Lyndon Nerenberg, Tim Showalter, Sarah Robeson, Walter Wong, Newman, Lyndon Nerenberg, Tim Showalter, Sarah Robeson, Walter Wong,
Barry Leiba, Arnt Gulbrandsen, Stephan Bosch, Ken Murchison, Phil Barry Leiba, Arnt Gulbrandsen, Stephan Bosch, Ken Murchison, Phil
Pennock, Ned Freed, Jeffrey Hutzelman, Mark E. Mallett, Dilyan Pennock, Ned Freed, Jeffrey Hutzelman, Mark E. Mallett, Dilyan
Palauzov, Dave Cridland, Aaron Stone, Robert Burrell Donkin and Palauzov, Dave Cridland, Aaron Stone, Robert Burrell Donkin, Patrick
Patrick Ben Koetter for help with this document. Special thank you Ben Koetter, Bjoern Hoehrmann and Martin Duerst for help with this
to Phil Pennock for providing text for the NOOP command, as well as document. Special thank you to Phil Pennock for providing text for
finding various bugs in the document. the NOOP command, as well as finding various bugs in the document.
8. References 8. References
8.1. Normative References 8.1. Normative References
[ABNF] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax [ABNF] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 5234, January 2008. Specifications: ABNF", RFC 5234, January 2008.
[ACAP] Newman, C. and J. Myers, "ACAP -- Application [ACAP] Newman, C. and J. Myers, "ACAP -- Application
Configuration Access Protocol", RFC 2244, November 1997. Configuration Access Protocol", RFC 2244, November 1997.
skipping to change at page 47, line 22 skipping to change at page 48, line 34
[I-HAVE] Freed, N., "Sieve Email Filtering: Ihave Extension", [I-HAVE] Freed, N., "Sieve Email Filtering: Ihave Extension",
draft-freed-sieve-ihave-03.txt (work in progress), draft-freed-sieve-ihave-03.txt (work in progress),
October 2008. October 2008.
[IANA-GUIDELINES] [IANA-GUIDELINES]
Narten, T. and H. Alvestrand, "Guidelines for Writing an Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226, IANA Considerations Section in RFCs", BCP 26, RFC 5226,
May 2008. May 2008.
[IMAP4rev1] [IMAP] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
4rev1", RFC 3501, March 2003. 4rev1", RFC 3501, March 2003.
[LDAP] Zeilenga, K., "Lightweight Directory Access Protocol [LDAP] Zeilenga, K., "Lightweight Directory Access Protocol
(LDAP): Technical Specification Road Map", RFC 4510, (LDAP): Technical Specification Road Map", RFC 4510,
June 2006. June 2006.
[PLAIN] Zeilenga, K., "The PLAIN Simple Authentication and [PLAIN] Zeilenga, K., "The PLAIN Simple Authentication and
Security Layer (SASL) Mechanism", RFC 4616, August 2006. Security Layer (SASL) Mechanism", RFC 4616, August 2006.
Authors' Addresses Authors' Addresses
 End of changes. 20 change blocks. 
54 lines changed or deleted 64 lines changed or added

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