draft-ietf-sieve-rfc3598bis-02.txt   draft-ietf-sieve-rfc3598bis-03.txt 
Sieve Working Group K. Murchison Sieve Working Group K. Murchison
Internet-Draft Carnegie Mellon University Internet-Draft Carnegie Mellon University
Obsoletes: 3598 (if approved) February 15, 2006 Obsoletes: 3598 (if approved) April 18, 2006
Expires: August 19, 2006 Expires: October 20, 2006
Sieve Email Filtering -- Subaddress Extension Sieve Email Filtering -- Subaddress Extension
draft-ietf-sieve-rfc3598bis-02.txt draft-ietf-sieve-rfc3598bis-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 34 skipping to change at page 1, line 34
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 August 19, 2006. This Internet-Draft will expire on October 20, 2006.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2006). Copyright (C) The Internet Society (2006).
Abstract Abstract
On email systems that allow for "subaddressing" or "detailed On email systems that allow for "subaddressing" or "detailed
addressing" (e.g., "ken+sieve@example.org"), it is sometimes addressing" (e.g., "ken+sieve@example.org"), it is sometimes
desirable to make comparisons against these sub-parts of addresses. desirable to make comparisons against these sub-parts of addresses.
This document defines an extension to the Sieve mail filtering This document defines an extension to the Sieve mail filtering
language that allows users to compare against the user and detail language that allows users to compare against the user and detail
parts of an address. sub-parts of an address.
Meta-information on this document Meta-information on this document
This information is intended to facilitate discussion. It will be This information is intended to facilitate discussion. It will be
removed when this document leaves the Internet-Draft stage. removed when this document leaves the Internet-Draft stage.
This document is intended to be an update to the existing This document is intended to be an update to the existing
"subaddress" extension to the Sieve mail filtering language, "subaddress" extension to the Sieve mail filtering language,
available from the RFC repository as available from the RFC repository as
<ftp://ftp.isi.edu/in-notes/rfc3598.txt> and <ftp://ftp.isi.edu/in-notes/rfc3598.txt> and
<ftp://ftp.isi.edu/internet-drafts/draft-ietf-sieve-3028bis-05.txt> <ftp://ftp.isi.edu/internet-drafts/draft-ietf-sieve-3028bis-06.txt>
respectively. respectively.
This document and the Sieve language itself are being discussed on This document and the Sieve language itself are being discussed on
the MTA Filters mailing list at <mailto:ietf-mta-filters@imc.org>. the MTA Filters mailing list at <mailto:ietf-mta-filters@imc.org>.
Subscription requests can be sent to Subscription requests can be sent to
<mailto:ietf-mta-filters-request@imc.org?body=subscribe> (send an <mailto:ietf-mta-filters-request@imc.org?body=subscribe> (send an
email message with the word "subscribe" in the body). More email message with the word "subscribe" in the body). More
information on the mailing list along with an archive of back information on the mailing list along with an archive of back
messages is available at <http://www.imc.org/ietf-mta-filters/>. messages is available at <http://www.imc.org/ietf-mta-filters/>.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Capability Identifier . . . . . . . . . . . . . . . . . . . . 5 2. Conventions used in this document . . . . . . . . . . . . . . 5
3. Subaddress Comparisons . . . . . . . . . . . . . . . . . . . . 6 3. Capability Identifier . . . . . . . . . . . . . . . . . . . . 6
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 4. Subaddress Comparisons . . . . . . . . . . . . . . . . . . . . 7
5. Security Considerations . . . . . . . . . . . . . . . . . . . 10 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
6. Normative References . . . . . . . . . . . . . . . . . . . . . 10 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10
7. Normative References . . . . . . . . . . . . . . . . . . . . . 10
Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 11 Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 11
Appendix B. Changes since RFC3598 . . . . . . . . . . . . . . . . 12 Appendix B. Changes since RFC3598 . . . . . . . . . . . . . . . . 12
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 13 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 13
Intellectual Property and Copyright Statements . . . . . . . . . . 14 Intellectual Property and Copyright Statements . . . . . . . . . . 14
1. Introduction 1. Introduction
Subaddressing is the practice of augmenting (usually with a suffix) Subaddressing is the practice of augmenting the local-part of an
the local-part of an [RFC2822] address with some "detail" information [RFC2822] address with some "detail" information to indicate that the
to indicate that the message should be delivered to the mailbox message should be delivered to the mailbox specified by the "detail"
specified by the "detail" information. A "separator character information. One common way of encoding "detail" information into
sequence" (typically "+"), forms the boundary between the "user" the local-part is to add a "separator character sequence", such as
(original local-part) and "detail" sub-parts of the address, much "+", to form a boundary between the "user" (original local-part) and
like the "@" character forms the boundary between the local-part and "detail" sub-parts of the address, much like the "@" character forms
domain. the boundary between the local-part and domain.
Typical uses of subaddressing might be: Typical uses of subaddressing might be:
o A message addressed to "ken+sieve@example.org" is delivered into a o A message addressed to "ken+sieve@example.org" is delivered into a
mailbox called "sieve" belonging to the user "ken". mailbox called "sieve" belonging to the user "ken".
o A message addressed to "5551212#123@example.org" is delivered to o A message addressed to "5551212#123@example.com" is delivered to
the voice mailbox number "123" at phone number "5551212". the voice mailbox number "123" at phone number "5551212".
This document describes an extension to the Sieve language defined by This document describes an extension to the Sieve language defined by
[I-D.ietf-sieve-3028bis] for comparing against the "user" and [I-D.ietf-sieve-3028bis] for comparing against the "user" and
"detail" sub-parts of an address. "detail" sub-parts of an address.
2. Conventions used in this document
Conventions for notations are as in [I-D.ietf-sieve-3028bis] section Conventions for notations are as in [I-D.ietf-sieve-3028bis] section
1.1, including use of [RFC2119]. 1.1.
2. Capability Identifier The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
3. Capability Identifier
The capability string associated with the extension defined in this The capability string associated with the extension defined in this
document is "subaddress". document is "subaddress".
3. Subaddress Comparisons 4. Subaddress Comparisons
Commands that act exclusively on addresses may take the optional Test commands that act exclusively on addresses may take the optional
tagged arguments ":user" and ":detail" to specify what sub-part of tagged arguments ":user" and ":detail" to specify what sub-part of
the local-part of the address will be acted upon. the local-part of the address will be acted upon.
NOTE: In most cases, the envelope "to" address is the preferred NOTE: In most cases, the envelope "to" address is the preferred
address to examine for subaddress information when the desire is address to examine for subaddress information when the desire is
to sort messages based on how they were addressed so as to get to to sort messages based on how they were addressed so as to get to
a specific recipient. The envelope address is, after all, the a specific recipient. The envelope address is, after all, the
reason a given message is being processed by a given sieve script reason a given message is being processed by a given sieve script
for a given user. This is particularly true when mailing lists, for a given user. This is particularly true when mailing lists,
aliases, and "virtual domains" are involved since the envelope may aliases, and "virtual domains" are involved since the envelope may
be the only source of detail information for the specific be the only source of detail information for the specific
recipient. recipient.
NOTE: Because the construction of detailed addresses can be site NOTE: Because the encoding of detailed addresses are site and/or
and/or implementation specific, using the subaddress extension on implementation specific, using the subaddress extension on foreign
foreign addresses (such as the envelope "from" address or addresses (such as the envelope "from" address or originator
originator header fields) may lead to inconsistent or incorrect header fields) may lead to inconsistent or incorrect results.
results.
The ":user" argument specifies the user sub-part of the local-part of The ":user" argument specifies the user sub-part of the local-part of
an address. The positioning of the user sub-part with respect to the an address. If the address is not encoded to contain a detail sub-
separator character sequence is dependent on the encompassing mail part, then ":user" specifies the entire left-side of the address
system. If no separator character sequence exists, then ":user" (equivalent to ":localpart").
specifies the entire left-side of the address (equivalent to
":localpart").
The ":detail" argument specifies the detail sub-part of the local- The ":detail" argument specifies the detail sub-part of the local-
part of an address. The positioning of the detail sub-part with part of an address. If the address is not encoded to contain a
respect to the separator character sequence is dependent on the detail sub-part, then the test evaluates to false. If a zero-length
encompassing mail system. If no separator character sequence exists, string is encoded as the detail sub-part, then ":detail" ":is" the
the test evaluates to false. If the separator character sequence empty key ("").
exists, but no detail information is provided, then ":detail" ":is"
the empty key (""). Otherwise, the ":detail" sub-part ":contains"
the empty key.
NOTE: If the separator character sequence occurs more than once in NOTE: If the encoding method used for detailed addresses utilizes
the local-part, then the logic used to split the address is a separator character sequence, and the separator character
implementation defined, and is usually dependent on the format sequence occurs more than once in the local-part, then the logic
used by the encompassing mail system. used to split the address is implementation defined, and is
usually dependent on the format used by the encompassing mail
system.
Implementations MUST make sure that the separator character sequence Implementations MUST make sure that the encoding method used for
and the ordering of the user and detail sub-parts match those that detailed addresses matches that which is used and/or allowed by the
are used and/or allowed by the encompassing mail system, otherwise encompassing mail system, otherwise unexpected results might occur.
unexpected results might occur. Implementations SHOULD allow the Note that the mechanisms used to define and/or query the encoding
separator character sequence and sub-part ordering to be configurable method used by the mail system are outside the scope of this
so that they may be used with a variety of mail systems. Note that document.
the mechanisms used to define and/or query the separator character
sequence and sub-part ordering used by the mail system are outside
the scope of this document.
The ":user" and ":detail" address parts are subject to the same rules The ":user" and ":detail" address parts are subject to the same rules
and restrictions as the standard address parts defined in [I-D.ietf- and restrictions as the standard address parts defined in [I-D.ietf-
sieve-3028bis]. sieve-3028bis] Section 2.7.4.
For convenience, the "ADDRESS-PART" syntax element defined in For convenience, the "ADDRESS-PART" syntax element defined in
[I-D.ietf-sieve-3028bis] is augmented here as follows: [I-D.ietf-sieve-3028bis] Section 2.7.4 is augmented here as follows:
ADDRESS-PART =/ ":user" / ":detail" ADDRESS-PART =/ ":user" / ":detail"
A diagram showing the ADDRESS-PARTs of a email address where the A diagram showing the ADDRESS-PARTs of a email address where the
detail information follows a separator character sequence of "+" is detail information follows a separator character sequence of "+" is
shown below: shown below:
:user "+" :detail "@" :domain :user "+" :detail "@" :domain
`-----------------' \-----------------/
:local-part :local-part
A diagram showing the ADDRESS-PARTs of a email address where the A diagram showing the ADDRESS-PARTs of a email address where the
detail information precedes a separator character sequence of "--" is detail information precedes a separator character sequence of "--" is
shown below: shown below:
:detail "--" :user "@" :domain :detail "--" :user "@" :domain
`------------------' \------------------/
:local-part :local-part
Example (where the detail information follows "+"): Example (where the detail information follows "+"):
require "subaddress"; require "subaddress";
# File mailing list messages (subscribed as "ken+mta-filters"). # File mailing list messages (subscribed as "ken+mta-filters").
if envelope :detail "to" "mta-filters" { if envelope :detail "to" "mta-filters" {
fileinto "inbox.ietf-mta-filters"; fileinto "inbox.ietf-mta-filters";
} }
# If a message is not directly to me (ignoring +detail), junk it. # If a message is not directly to me (ignoring +detail), junk it.
skipping to change at page 8, line 21 skipping to change at page 8, line 44
} }
# If a message is not directly to me (ignoring +detail), junk it. # If a message is not directly to me (ignoring +detail), junk it.
if not allof (address :user ["to", "cc"] "ken", if not allof (address :user ["to", "cc"] "ken",
address :domain ["to", "cc"] "example.org") { address :domain ["to", "cc"] "example.org") {
discard; discard;
} }
# Redirect all mail sent to +foo. # Redirect all mail sent to +foo.
if envelope :detail "to" "foo" { if envelope :detail "to" "foo" {
redirect "ken@example.edu"; redirect "ken@example.net";
} }
4. IANA Considerations 5. IANA Considerations
This document requests that the IANA update the entry for the This document requests that the IANA update the entry for the
"subaddress" Sieve extension to point at this document. "subaddress" Sieve extension to point at this document.
5. Security Considerations 6. Security Considerations
Security considerations are discussed in [I-D.ietf-sieve-3028bis]. Security considerations are discussed in [I-D.ietf-sieve-3028bis].
It is believed that this extension does not introduce any additional It is believed that this extension does not introduce any additional
security concerns. security concerns.
6. Normative References 7. Normative References
[I-D.ietf-sieve-3028bis] [I-D.ietf-sieve-3028bis]
Showalter, T. and P. Guenther, "Sieve: An Email Filtering Showalter, T. and P. Guenther, "Sieve: An Email Filtering
Language", draft-ietf-sieve-3028bis-05 (work in progress), Language", draft-ietf-sieve-3028bis-06 (work in progress),
November 2005. March 2006.
[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.
[RFC2822] Resnick, P., "Internet Message Format", RFC 2822, [RFC2822] Resnick, P., "Internet Message Format", RFC 2822,
April 2001. April 2001.
Appendix A. Acknowledgments Appendix A. Acknowledgments
Thanks to Tim Showalter, Alexey Melnikov, Michael Salmon, Randall Thanks to Tim Showalter, Alexey Melnikov, Michael Salmon, Randall
Gellens, Philip Guenther and Jutta Degener for their help with this Gellens, Philip Guenther, Jutta Degener, Michael Haardt, and Ned
document. Freed for their help with this document.
Appendix B. Changes since RFC3598 Appendix B. Changes since RFC3598
o Allow detail information to be either or prefix or suffix to the o Discussion of how the user and detail information is encoded now
user. uses generic language.
o Allow boundary between user and detail parts to be multiple o Added note detailing that this extension is most useful when used
characters. on the envelope "to" address.
o Added note regarding processing of local-part with multiple o Added note detailing that this extension isn't very useful on
separator character sequences. foreign addresses (envelope "from" or originator header fields).
o Fixed envelope test example to only use "to" address. o Fixed envelope test example to only use "to" address.
o Refer to the zero-length string ("") as "empty" instead of "null" o Refer to the zero-length string ("") as "empty" instead of "null"
(per draft-ietf-sieve-3028bis) (per draft-ietf-sieve-3028bis)
o Use only RFC 2606 domains in examples.
o Miscellaneous editorial changes. o Miscellaneous editorial changes.
Author's Address Author's Address
Kenneth Murchison Kenneth Murchison
Carnegie Mellon University Carnegie Mellon University
5000 Forbes Avenue 5000 Forbes Avenue
Cyert Hall 285 Cyert Hall 285
Pittsburgh, PA 15213 Pittsburgh, PA 15213
US US
 End of changes. 33 change blocks. 
72 lines changed or deleted 75 lines changed or added

This html diff was produced by rfcdiff 1.29, available from http://www.levkowetz.com/ietf/tools/rfcdiff/