draft-ietf-sieve-managesieve-08.txt   draft-ietf-sieve-managesieve-09.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: July 19, 2009 BeThereBeSquare Inc. Expires: July 21, 2009 BeThereBeSquare Inc.
January 15, 2009 January 17, 2009
A Protocol for Remotely Managing Sieve Scripts A Protocol for Remotely Managing Sieve Scripts
draft-ietf-sieve-managesieve-08 draft-ietf-sieve-managesieve-09
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and 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
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 33 skipping to change at page 1, line 33
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 July 19, 2009. This Internet-Draft will expire on July 21, 2009.
Copyright Notice Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the Copyright (c) 2009 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 3, line 28 skipping to change at page 3, line 28
2. Commands . . . . . . . . . . . . . . . . . . . . . . . . . 12 2. Commands . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1. AUTHENTICATE Command . . . . . . . . . . . . . . . . . . . 12 2.1. AUTHENTICATE Command . . . . . . . . . . . . . . . . . . . 12
2.1.1. Use of SASL PLAIN mechanism over TLS . . . . . . . . . . . 17 2.1.1. Use of SASL PLAIN mechanism over TLS . . . . . . . . . . . 17
2.2. STARTTLS Command . . . . . . . . . . . . . . . . . . . . . 17 2.2. STARTTLS Command . . . . . . . . . . . . . . . . . . . . . 17
2.2.1. Server Identity Check . . . . . . . . . . . . . . . . . . 18 2.2.1. Server Identity Check . . . . . . . . . . . . . . . . . . 18
2.3. LOGOUT Command . . . . . . . . . . . . . . . . . . . . . . 21 2.3. LOGOUT Command . . . . . . . . . . . . . . . . . . . . . . 21
2.4. CAPABILITY Command . . . . . . . . . . . . . . . . . . . . 21 2.4. CAPABILITY Command . . . . . . . . . . . . . . . . . . . . 21
2.5. HAVESPACE Command . . . . . . . . . . . . . . . . . . . . 21 2.5. HAVESPACE Command . . . . . . . . . . . . . . . . . . . . 21
2.6. PUTSCRIPT Command . . . . . . . . . . . . . . . . . . . . 22 2.6. PUTSCRIPT Command . . . . . . . . . . . . . . . . . . . . 22
2.7. LISTSCRIPTS Command . . . . . . . . . . . . . . . . . . . 24 2.7. LISTSCRIPTS Command . . . . . . . . . . . . . . . . . . . 24
2.8. SETACTIVE Command . . . . . . . . . . . . . . . . . . . . 24 2.8. SETACTIVE Command . . . . . . . . . . . . . . . . . . . . 25
2.9. GETSCRIPT Command . . . . . . . . . . . . . . . . . . . . 25 2.9. GETSCRIPT Command . . . . . . . . . . . . . . . . . . . . 25
2.10. DELETESCRIPT Command . . . . . . . . . . . . . . . . . . . 25 2.10. DELETESCRIPT Command . . . . . . . . . . . . . . . . . . . 26
2.11. RENAMESCRIPT Command . . . . . . . . . . . . . . . . . . . 26 2.11. RENAMESCRIPT Command . . . . . . . . . . . . . . . . . . . 26
2.12. CHECKSCRIPT Command . . . . . . . . . . . . . . . . . . . 27 2.12. CHECKSCRIPT Command . . . . . . . . . . . . . . . . . . . 27
2.13. NOOP Command . . . . . . . . . . . . . . . . . . . . . . . 28 2.13. NOOP Command . . . . . . . . . . . . . . . . . . . . . . . 28
2.14. Recommended extensions . . . . . . . . . . . . . . . . . . 28 2.14. Recommended extensions . . . . . . . . . . . . . . . . . . 29
2.14.1. UNAUTHENTICATE Command . . . . . . . . . . . . . . . . . . 28 2.14.1. UNAUTHENTICATE Command . . . . . . . . . . . . . . . . . . 29
3. Sieve URL Scheme . . . . . . . . . . . . . . . . . . . . . 29 3. Sieve URL Scheme . . . . . . . . . . . . . . . . . . . . . 29
4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 32 4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 32
5. Security Considerations . . . . . . . . . . . . . . . . . 38 5. Security Considerations . . . . . . . . . . . . . . . . . 38
6. IANA Considerations . . . . . . . . . . . . . . . . . . . 39 6. IANA Considerations . . . . . . . . . . . . . . . . . . . 39
6.1. ManageSieve Capability Registration Template . . . . . . . 39 6.1. ManageSieve Capability Registration Template . . . . . . . 39
6.2. Registration of Initial ManageSieve capabilities . . . . . 39 6.2. Registration of Initial ManageSieve capabilities . . . . . 40
6.3. ManageSieve Response Code Registration Template . . . . . 42 6.3. ManageSieve Response Code Registration Template . . . . . 42
6.4. Registration of Initial ManageSieve Response Codes . . . . 42 6.4. Registration of Initial ManageSieve Response Codes . . . . 43
7. Internationalization Considerations . . . . . . . . . . . 48 7. Internationalization Considerations . . . . . . . . . . . 48
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 48 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 49
9. References . . . . . . . . . . . . . . . . . . . . . . . . 49 9. References . . . . . . . . . . . . . . . . . . . . . . . . 49
9.1. Normative References . . . . . . . . . . . . . . . . . . . 49 9.1. Normative References . . . . . . . . . . . . . . . . . . . 49
9.2. Informative References . . . . . . . . . . . . . . . . . . 50 9.2. Informative References . . . . . . . . . . . . . . . . . . 51
Authors' Addresses . . . . . . . . . . . . . . . . . . . . 51 Authors' Addresses . . . . . . . . . . . . . . . . . . . . 51
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].
skipping to change at page 21, line 9 skipping to change at page 21, line 9
2.2.1.3. Comparison of Other subjectName Types 2.2.1.3. Comparison of Other subjectName Types
Client implementations MAY support matching against subjectAltName Client implementations MAY support matching against subjectAltName
values of other types as described in other documents. values of other types as described in other documents.
2.3. LOGOUT Command 2.3. LOGOUT Command
The client sends the LOGOUT command when it is finished with a The client sends the LOGOUT command when it is finished with a
connection and wishes to terminate it. The server MUST reply with an connection and wishes to terminate it. The server MUST reply with an
OK response and terminate the connection. The server MUST ignore OK response. The server MUST ignore commands issued by the client
commands issued by the client after the LOGOUT command. after the LOGOUT command.
The client SHOULD wait for the OK response before closing the
connection. This avoids the TCP connection going into the TIME_WAIT
state on the server. In order to avoid going into the the TIME_WAIT
TCP state the server MAY wait for a short while for the client to
close the TCP connection first. Whether or not the server waits for
the client to close the connection, it MUST then close the connection
itself.
Example: Example:
C: Logout C: Logout
S: Ok S: Ok
<connection terminated> <connection is terminated>
2.4. CAPABILITY Command 2.4. CAPABILITY Command
The CAPABILITY command requests the server capabilities as described The CAPABILITY command requests the server capabilities as described
earlier in this document. It has no parameters. earlier in this document. It has no parameters.
Example: Example:
C: CAPABILITY C: CAPABILITY
S: "IMPLEMENTATION" "Example1 ManageSieved v001" S: "IMPLEMENTATION" "Example1 ManageSieved v001"
skipping to change at page 32, line 47 skipping to change at page 32, line 47
SAFE-UTF8-CHAR = SAFE-CHAR / UTF8-2 / UTF8-3 / UTF8-4 SAFE-UTF8-CHAR = SAFE-CHAR / UTF8-2 / UTF8-3 / UTF8-4
;; <UTF8-2>, <UTF8-3> and <UTF8-4> ;; <UTF8-2>, <UTF8-3> and <UTF8-4>
;; are defined in [UTF-8] ;; are defined in [UTF-8]
ATOM-CHAR = "!" / %x23-27 / %x2A-5B / %x5D-7A / %x7C-7E ATOM-CHAR = "!" / %x23-27 / %x2A-5B / %x5D-7A / %x7C-7E
;; Any CHAR except ATOM-SPECIALS ;; Any CHAR except ATOM-SPECIALS
ATOM-SPECIALS = "(" / ")" / "{" / SP / CTL / ATOM-SPECIALS = "(" / ")" / "{" / SP / CTL /
QUOTED-SPECIALS QUOTED-SPECIALS
atom = 1*1024ATOM-CHAR NZDIGIT = %x31-39
;; 1-9
atom = 1*1024ATOM-CHAR
iana-token = atom iana-token = atom
;; MUST be registered with IANA ;; MUST be registered with IANA
auth-type = DQUOTE auth-type-name DQUOTE auth-type = DQUOTE auth-type-name DQUOTE
auth-type-name = iana-token auth-type-name = iana-token
;; as defined in SASL [SASL] ;; as defined in SASL [SASL]
command = (command-any / command-auth / command = (command-any / command-auth /
command-nonauth) CRLF command-nonauth) CRLF
;; Modal based on state ;; Modal based on state
command-any = command-capability / command-logout / command-any = command-capability / command-logout /
skipping to change at page 34, line 41 skipping to change at page 34, line 43
;; from the client to the server. ;; from the client to the server.
literal-s2c = "{" number "}" CRLF *OCTET literal-s2c = "{" number "}" CRLF *OCTET
;; Almost identical to literal-c2s, ;; Almost identical to literal-c2s,
;; but with no '+' character. ;; but with no '+' character.
;; The number represents the number of ;; The number represents the number of
;; octets. ;; octets.
;; This type of literal can only be sent ;; This type of literal can only be sent
;; from the server to the client. ;; from the server to the client.
number = 1*DIGIT number = (NZDIGIT *DIGIT) / "0"
;; A 32-bit unsigned number ;; A 32-bit unsigned number
;; with no extra leading zeros. ;; with no extra leading zeros.
;; (0 <= n < 4,294,967,296) ;; (0 <= n < 4,294,967,296)
number-str = string number-str = string
;; <number> encoded as a <string>. ;; <number> encoded as a <string>.
quoted = DQUOTE *1024QUOTED-CHAR DQUOTE quoted = DQUOTE *1024QUOTED-CHAR DQUOTE
;; limited to 1024 octets between the <">s ;; limited to 1024 octets between the <">s
resp-code = "AUTH-TOO-WEAK" / "ENCRYPT-NEEDED" / resp-code = "AUTH-TOO-WEAK" / "ENCRYPT-NEEDED" /
"QUOTA" ["/" ("MAXSCRIPTS" / "MAXSIZE")] / "QUOTA" ["/" ("MAXSCRIPTS" / "MAXSIZE")] /
resp-code-sasl / resp-code-sasl /
resp-code-referral / resp-code-referral /
"TRANSITION-NEEDED" / "TRYLATER" / "TRANSITION-NEEDED" / "TRYLATER" /
"ACTIVE" / "NONEXISTENT" / "ACTIVE" / "NONEXISTENT" /
"ALREADYEXISTS" / "WARNINGS" / "ALREADYEXISTS" / "WARNINGS" /
"TAG" SP string / "TAG" SP string /
resp-code-ext resp-code-ext
skipping to change at page 36, line 27 skipping to change at page 36, line 30
DQUOTE "OWNER" DQUOTE SP string DQUOTE "OWNER" DQUOTE SP string
;; Each capability conforms to ;; Each capability conforms to
;; the syntax for single-capability. ;; the syntax for single-capability.
;; Also note that the capability name ;; Also note that the capability name
;; can be returned as either literal-s2c ;; can be returned as either literal-s2c
;; or quoted, even though only "quoted" ;; or quoted, even though only "quoted"
;; string is shown above. ;; string is shown above.
version = ( DQUOTE "1.0" DQUOTE ) / version-ext version = ( DQUOTE "1.0" DQUOTE ) / version-ext
version-ext = DQUOTE number "." number DQUOTE version-ext = DQUOTE ver-major "." ver-minor DQUOTE
; Future versions specified in updates
; to this document. An increment to
; the ver-major means a backward-incompatible
; change to the protocol, e.g. "3.5" (ver-major "3")
; is not backward-compatible with any "2.X" version.
; Any version "Z.W" MUST be backward compatible
; with any version "Z.Q", where Q < W.
; E.g. version "2.4" is backward-compatible
; with version "2.0", "2.1", "2.2" and "2.3".
ver-major = number
ver-minor = number
sasl-mechs = string sasl-mechs = string
; space separated list of SASL mechanisms, ; space separated list of SASL mechanisms,
; each SASL mechanism name complies with rules ; each SASL mechanism name complies with rules
; specified in [SASL]. ; specified in [SASL].
; Can be empty. ; Can be empty.
sieve-extensions = string sieve-extensions = string
; space separated list of supported SIEVE extensions, ; space separated list of supported SIEVE extensions,
; can be empty. ; can be empty.
skipping to change at page 48, line 37 skipping to change at page 49, line 7
puts it in. puts it in.
A client that generates Sieve script automatically, for example if A client that generates Sieve script automatically, for example if
the script is generated without user intervention or from a UI that the script is generated without user intervention or from a UI that
presents an abstract list of conditions and corresponding actions, presents an abstract list of conditions and corresponding actions,
SHOULD NOT present warning/error messages to the user, because the SHOULD NOT present warning/error messages to the user, because the
user might not even be aware that the client is using Sieve user might not even be aware that the client is using Sieve
underneath. However if the client has a debugging mode, such underneath. However if the client has a debugging mode, such
warnings/errors SHOULD be available in the debugging mode. warnings/errors SHOULD be available in the debugging mode.
Note that this document doesn't provide a way to modify the currently
used language. It is expected that a future extension will address
that.
8. Acknowledgements 8. 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, Patrick Palauzov, Dave Cridland, Aaron Stone, Robert Burrell Donkin, Patrick
Ben Koetter, Bjoern Hoehrmann and Martin Duerst for help with this Ben Koetter, Bjoern Hoehrmann, Martin Duerst, Pasi Eronen, Magnus
document. Special thank you to Phil Pennock for providing text for Westerlund and Tim Polk for help with this document. Special thank
the NOOP command, as well as finding various bugs in the document. you to Phil Pennock for providing text for the NOOP command, as well
as finding various bugs in the document.
9. References 9. References
9.1. Normative References 9.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.
 End of changes. 20 change blocks. 
21 lines changed or deleted 51 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/