draft-ietf-sieve-rfc3598bis-00.txt   draft-ietf-sieve-rfc3598bis-01.txt 
Sieve Working Group K. Murchison Sieve Working Group K. Murchison
Internet-Draft Oceana Matrix Ltd. Internet-Draft Oceana Matrix Ltd.
Obsoletes: 3598 (if approved) February 7, 2005 Obsoletes: 3598 (if approved) September 12, 2005
Expires: August 11, 2005 Expires: March 16, 2006
Sieve Email Filtering -- Subaddress Extension Sieve Email Filtering -- Subaddress Extension
draft-ietf-sieve-rfc3598bis-00.txt draft-ietf-sieve-rfc3598bis-01.txt
Status of this Memo Status of this Memo
This document is an Internet-Draft and is subject to all provisions By submitting this Internet-Draft, each author represents that any
of Section 3 of RFC 3667. By submitting this Internet-Draft, each applicable patent or other IPR claims of which he or she is aware
author represents that any applicable patent or other IPR claims of have been or will be disclosed, and any of which he or she becomes
which he or she is aware have been or will be disclosed, and any of aware will be disclosed, in accordance with Section 6 of BCP 79.
which he or she become aware will be disclosed, in accordance with
RFC 3668.
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 other groups may also distribute working documents as Internet-
Internet-Drafts. Drafts.
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."
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 11, 2005. This Internet-Draft will expire on March 16, 2006.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2005). Copyright (C) The Internet Society (2005).
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.
skipping to change at page 2, line 6 skipping to change at page 2, line 4
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. 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/in-notes/rfc3028.txt> respectively. <ftp://ftp.isi.edu/internet-drafts/draft-ietf-sieve-3028bis-04.txt>
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 a WWW archive of back information on the mailing list along with a WWW 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. Capability Identifier . . . . . . . . . . . . . . . . . . . . 5
3. Subaddress Comparisons . . . . . . . . . . . . . . . . . . . 6 3. Subaddress Comparisons . . . . . . . . . . . . . . . . . . . . 6
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . 8 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
5. Security Considerations . . . . . . . . . . . . . . . . . . 9 5. Security Considerations . . . . . . . . . . . . . . . . . . . 10
6. Normative References . . . . . . . . . . . . . . . . . . . . 9 6. Normative References . . . . . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . 9 Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 11
A. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 10 Appendix B. Changes since RFC3598 . . . . . . . . . . . . . . . . 12
B. Changes since RFC3598 . . . . . . . . . . . . . . . . . . . 11 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 13
Intellectual Property and Copyright Statements . . . . . . . 12 Intellectual Property and Copyright Statements . . . . . . . . . . 14
1. Introduction 1. Introduction
Subaddressing is the practice of appending some "detail" information Subaddressing is the practice of augmenting (either by prefix or
to the local-part of an [RFC2822] address to indicate that the suffix) the local-part of an [RFC2822] address with some "detail"
message should be delivered to the mailbox specified by the "detail" information to indicate that the message should be delivered to the
information. The "detail" information is prefixed with a special mailbox specified by the "detail" information. A "separator
"separator character" (typically "+") which forms the boundary character sequence" (typically "+"), forms the boundary between the
between the "user" (original local-part) and the "detail" sub-parts "user" (original local-part) and "detail" sub-parts of the address,
of the address, much like the "@" character forms the boundary much like the "@" character forms the boundary between the local-part
between the local-part and domain. 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.org" 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
[RFC3028] for comparing against the "user" and "detail" sub-parts of [I-D.ietf-sieve-3028bis] for comparing against the "user" and
an address. "detail" sub-parts of an address.
Conventions for notations are as in [RFC3028] section 1.1, including Conventions for notations are as in [I-D.ietf-sieve-3028bis] section
use of [RFC2119]. 1.1, including use of [RFC2119].
2. Capability Identifier 2. 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 3. Subaddress Comparisons
Commands that act exclusively on addresses may take the optional 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
skipping to change at page 6, line 21 skipping to change at page 6, line 21
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.
The ":user" argument specifies that sub-part of the local-part which NOTE: Because the construction of detailed addresses can be site
lies to the left of the separator character (e.g., "ken" in and/or implementation specific, using the subaddress extension on
"ken+sieve@example.org"). If no separator character exists, then foreign addresses (such as the envelope "from" address or
":user" specifies the entire left-side of the address (equivalent to originator header fields) may lead to inconsistent or incorrect
results.
The ":user" argument specifies the user sub-part of the local-part of
an address. Whether the user sub-part lies to the left or right of
the separator character sequence is dependent on the encompassing
mail system. If no separator character sequence exists, then ":user"
specifies the entire left-side of the address (equivalent to
":localpart"). ":localpart").
The ":detail" argument specifies that sub-part of the local-part The ":detail" argument specifies the detail sub-part of the local-
which lies to the right of the separator character (e.g., "sieve" in part of an address. Whether the detail sub-part lies to the left or
"ken+sieve@example.org"). If no separator character exists, the test right of the separator character sequence is dependent on the
evaluates to false. If nothing lies to the right of the separator encompassing mail system. If no separator character sequence exists,
character, then ":detail" ":is" the null key (""). Otherwise, the the test evaluates to false. If the separator character sequence
":detail" sub-part contains the null key. exists, but not detail information is provided, then ":detail" ":is"
the empty key (""). Otherwise, the ":detail" sub-part ":contains"
the empty key.
NOTE: If the separator character occurs more than once in the NOTE: If the separator character sequence occurs more than once in
local-part, then the address MUST be split at the left-most the local-part, then the address MUST be split at the left-most
separator. separator when the detail information is a suffix and at the
right-most separator when the detail information is a prefix.
Implementations MUST make sure that the separator character matches Implementations MUST make sure that the separator character sequence
that which is used and/or allowed by the encompassing mail system, and the ordering of the user and detail sub-parts match those that
otherwise unexpected results might occur. Implementations SHOULD are used and/or allowed by the encompassing mail system, otherwise
allow the separator character to be configurable so that they may be unexpected results might occur. Implementations SHOULD allow the
used with a variety of mail systems. Note that the mechanisms used separator character sequence and sub-part ordering to be configurable
to define and/or query the separator character used by the mail so that they may be used with a variety of mail systems. Note that
system are outside the scope of this 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 [RFC3028]. and restrictions as the standard address parts defined in [I-D.ietf-
sieve-3028bis].
For convenience, the "ADDRESS-PART" syntax element defined in For convenience, the "ADDRESS-PART" syntax element defined in
[RFC3028] is augmented here as follows: [I-D.ietf-sieve-3028bis] is augmented here as follows:
ADDRESS-PART =/ ":user" / ":detail" ADDRESS-PART =/ ":user" / ":detail"
A diagram showing the ADDRESS-PARTs of a email address utilizing a
separator character of '+' is shown below: A diagram showing the ADDRESS-PARTs of a email address where the
detail information follows a separator character sequence of "+" is
shown below:
:user "+" :detail "@" :domain :user "+" :detail "@" :domain
`-----------------' `-----------------'
:local-part :local-part
Example: A diagram showing the ADDRESS-PARTs of a email address where the
detail information precedes a separator character sequence of "--" is
shown below:
:detail "--" :user "@" :domain
`------------------'
:local-part
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 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", "bcc"] "ken", if not allof (address :user ["to", "cc"] "ken",
address :domain ["to", "cc", "bcc"] "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.edu";
} }
4. IANA Considerations 4. 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 5. Security Considerations
Security considerations are discussed in [RFC3028]. It is believed Security considerations are discussed in [I-D.ietf-sieve-3028bis].
that this extension does not introduce any additional security It is believed that this extension does not introduce any additional
concerns. security concerns.
6. Normative References 6. Normative References
[I-D.ietf-sieve-3028bis]
Showalter, T. and P. Guenther, "Sieve: An Email Filtering
Language", draft-ietf-sieve-3028bis-04 (work in progress),
July 2005.
[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, April [RFC2822] Resnick, P., "Internet Message Format", RFC 2822,
2001. April 2001.
[RFC3028] Showalter, T., "Sieve: A Mail Filtering Language",
RFC 3028, January 2001.
Author's Address
Kenneth Murchison
Oceana Matrix Ltd.
21 Princeton Place
Orchard Park, NY 14127
US
Phone: +1 716 662 8973
Email: ken@oceana.com
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 and Jutta Degener for their help with this
document. document.
Appendix B. Changes since RFC3598 Appendix B. Changes since RFC3598
o Allow detail information to be either or prefix or suffix to the
user.
o Allow boundary between user and detail parts to be multiple
characters.
o Added note regarding processing of local-part with multiple o Added note regarding processing of local-part with multiple
separator characters. separator character sequences.
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"
(per draft-ietf-sieve-3028bis)
o Miscellaneous editorial changes.
Author's Address
Kenneth Murchison
Oceana Matrix Ltd.
2495 Main St.
Suite 401
Buffalo, NY 14214
US
Phone: +1 716 604 0088
Email: ken@oceana.com
Intellectual Property Statement Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79. found in BCP 78 and BCP 79.
 End of changes. 28 change blocks. 
84 lines changed or deleted 121 lines changed or added

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