draft-ietf-sieve-include-05.txt   draft-ietf-sieve-include-06.txt 
Network Working Group C. Daboo Network Working Group C. Daboo
Internet-Draft A. Stone Internet-Draft A. Stone
Intended status: Standards Track July 12, 2010 Intended status: Standards Track July 26, 2010
Expires: January 13, 2011 Expires: January 27, 2011
Sieve Email Filtering: Include Extension Sieve Email Filtering: Include Extension
draft-ietf-sieve-include-05 draft-ietf-sieve-include-06
Abstract Abstract
The Sieve Email Filtering "include" extension permits users to The Sieve Email Filtering "include" extension permits users to
include one Sieve script inside another. This can make managing include one Sieve script inside another. This can make managing
large scripts or multiple sets of scripts much easier, and allows a large scripts or multiple sets of scripts much easier, and allows a
site and its users to build up libraries of scripts. Users are able site and its users to build up libraries of scripts. Users are able
to include their own personal scripts or site-wide scripts. to include their own personal scripts or site-wide scripts.
Status of this Memo Status of this Memo
skipping to change at page 1, line 34 skipping to change at page 1, line 34
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 January 13, 2011. This Internet-Draft will expire on January 27, 2011.
Copyright Notice Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the Copyright (c) 2010 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
Table of Contents Table of Contents
1. Introduction and Overview . . . . . . . . . . . . . . . . . . 5 1. Introduction and Overview . . . . . . . . . . . . . . . . . . 5
2. Conventions Used in This Document . . . . . . . . . . . . . . 5 2. Conventions Used in This Document . . . . . . . . . . . . . . 5
3. Include Extension . . . . . . . . . . . . . . . . . . . . . . 5 3. Include Extension . . . . . . . . . . . . . . . . . . . . . . 6
3.1. General Considerations . . . . . . . . . . . . . . . . . . 5 3.1. General Considerations . . . . . . . . . . . . . . . . . . 6
3.2. Control Structure include . . . . . . . . . . . . . . . . 6 3.2. Control Structure include . . . . . . . . . . . . . . . . 7
3.3. Control Structure return . . . . . . . . . . . . . . . . . 10 3.3. Control Structure return . . . . . . . . . . . . . . . . . 10
3.4. Interaction with Variables . . . . . . . . . . . . . . . . 10 3.4. Interaction with Variables . . . . . . . . . . . . . . . . 10
3.4.1. Control Structure global . . . . . . . . . . . . . . . 10 3.4.1. Control Structure global . . . . . . . . . . . . . . . 10
3.4.2. Variables Namespace global . . . . . . . . . . . . . . 12 3.4.2. Variables Namespace global . . . . . . . . . . . . . . 12
4. Security Considerations . . . . . . . . . . . . . . . . . . . 12 4. Security Considerations . . . . . . . . . . . . . . . . . . . 12
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
5.1. "include" Extension Registration . . . . . . . . . . . . . 13 5.1. "include" Extension Registration . . . . . . . . . . . . . 13
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.1. Normative References . . . . . . . . . . . . . . . . . . . 13 6.1. Normative References . . . . . . . . . . . . . . . . . . . 13
6.2. Informative References . . . . . . . . . . . . . . . . . . 13 6.2. Informative References . . . . . . . . . . . . . . . . . . 13
Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 13 Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 14
Change History (to be removed prior to publication as an RFC) Change History (to be removed prior to publication as an RFC)
Changes from ietf-05 to ietf-06:
a. Nits from Barry Leiba.
Changes from ietf-04 to ietf-05: Changes from ietf-04 to ietf-05:
a. Integrate review from Barry Leiba. a. Integrate review from Barry Leiba.
Changes from ietf-03 to ietf-04: Changes from ietf-03 to ietf-04:
a. No changes. a. No changes.
Changes from ietf-02 to ietf-03: Changes from ietf-02 to ietf-03:
skipping to change at page 7, line 7 skipping to change at page 7, line 17
Usage: include [LOCATION] [ONCE] <value: string> Usage: include [LOCATION] [ONCE] <value: string>
LOCATION = ":personal" / ":global" LOCATION = ":personal" / ":global"
ONCE = ":once" ONCE = ":once"
The "include" command takes an optional "location" parameter, an The "include" command takes an optional "location" parameter, an
optional ":once" parameter, and a single string argument representing optional ":once" parameter, and a single string argument representing
the name of the script to include for processing at that point. It the name of the script to include for processing at that point. It
is RECOMMENDED that implementations restrict script names according is RECOMMENDED that implementations restrict script names according
to [I-D.ietf-sieve-managesieve] Section 1.7. Implementations MUST to MANAGESIEVE [RFC5804] Section 1.7. Implementations MUST NOT allow
NOT allow variables to be expanded into the names of Sieve scripts; variables to be expanded into the names of Sieve scripts; in other
in other words, the value MUST be a constant string as defined in words, the value MUST be a constant string as defined in VARIABLES
VARIABLES [RFC5229], Section 3. [RFC5229], Section 3.
The "location" parameter MUST default to ":personal" if not The "location" parameter MUST default to ":personal" if not
specified. The "location" has the following meanings: specified. The "location" has the following meanings:
:personal :personal
Indicates that the named script is stored in the user's own Indicates that the named script is stored in the user's own
personal (private) Sieve repository. personal (private) Sieve repository.
:global :global
Indicates that the named script is stored in a site-wide Sieve Indicates that the named script is stored in a site-wide Sieve
skipping to change at page 9, line 4 skipping to change at page 9, line 14
require ["reject"]; require ["reject"];
if header :contains "Subject" "XXXX" if header :contains "Subject" "XXXX"
{ {
reject; reject;
} }
elsif header :is "From" "money@example.com" elsif header :is "From" "money@example.com"
{ {
reject; reject;
} }
Personal script "mailing_lists" Personal script "mailing_lists"
This script looks for messages from different mailing lists and This script looks for messages from different mailing lists and
files each into a mailbox specific to the mailing list. files each into a mailbox specific to the mailing list.
require ["fileinto"]; require ["fileinto"];
if header :is "List-ID" "owner-ietf-mta-filters@imc.org" if header :is "List-ID" "sieve.ietf.org"
{ {
fileinto "lists.sieve"; fileinto "lists.sieve";
} }
elsif header :is "List-ID" "owner-ietf-imapext@imc.org" elsif header :is "List-ID" "ietf-imapext.imc.org"
{ {
fileinto "lists.imapext"; fileinto "lists.imapext";
} }
There is one script stored in the global repository: There is one script stored in the global repository:
Site script "spam_tests" Site script "spam_tests"
This script does some site-wide spam tests which any user at the This script does some site-wide spam tests which any user at the
site can include in their own scripts at a suitable point. The site can include in their own scripts at a suitable point. The
skipping to change at page 13, line 12 skipping to change at page 13, line 18
considerations that are not present in the base SIEVE [RFC5228] considerations that are not present in the base SIEVE [RFC5228]
document and the VARIABLES [RFC5229] extension. document and the VARIABLES [RFC5229] extension.
5. IANA Considerations 5. IANA Considerations
The following template specifies the IANA registration of the Sieve The following template specifies the IANA registration of the Sieve
extension specified in this document: extension specified in this document:
5.1. "include" Extension Registration 5.1. "include" Extension Registration
Capability name: include Capability name: include
Description: adds the "include" command to execute other Sieve Description: adds the "include" command to execute other Sieve
scripts, and the "global" command and "global" variables scripts, and the "global" command and "global"
namespace to access variables shared among included scripts. variables namespace to access variables shared
RFC number: this RFC among included scripts.
Contact address: the Sieve discussion list <ietf-mta-filters@imc.org> RFC number: this RFC
Contact address: the Sieve discussion list <sieve@ietf.org>
6. References 6. References
6.1. Normative References 6.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5228] Guenther, P. and T. Showalter, "Sieve: An Email Filtering [RFC5228] Guenther, P. and T. Showalter, "Sieve: An Email Filtering
Language", RFC 5228, January 2008. Language", RFC 5228, January 2008.
[RFC5229] Homme, K., "Sieve Email Filtering: Variables Extension", [RFC5229] Homme, K., "Sieve Email Filtering: Variables Extension",
RFC 5229, January 2008. RFC 5229, January 2008.
6.2. Informative References 6.2. Informative References
[I-D.ietf-sieve-managesieve] [RFC5804] Melnikov, A. and T. Martin, "A Protocol for Remotely
Melnikov, A. and T. Martin, "A Protocol for Remotely Managing Sieve Scripts", RFC 5804, July 2010.
Managing Sieve Scripts", draft-ietf-sieve-managesieve-09
(work in progress), January 2009.
Appendix A. Acknowledgments Appendix A. Acknowledgments
Thanks to Ken Murchison, Rob Siemborski, Alexey Melnikov, Marc Mutz, Thanks to Ken Murchison, Rob Siemborski, Alexey Melnikov, Marc Mutz,
Kjetil Torgrim Homme, Stephan Bosch, Arnt Gulbrandsen, Barry Leiba, Kjetil Torgrim Homme, Stephan Bosch, Arnt Gulbrandsen, Barry Leiba,
and Jeffrey Hutzelman for comments and corrections. and Jeffrey Hutzelman for comments and corrections.
Authors' Addresses Authors' Addresses
Cyrus Daboo Cyrus Daboo
 End of changes. 13 change blocks. 
37 lines changed or deleted 27 lines changed or added

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