draft-ietf-sieve-notify-mailto-07.txt   draft-ietf-sieve-notify-mailto-08.txt 
Sieve Working Group B. Leiba Sieve Working Group B. Leiba
Internet-Draft IBM T.J. Watson Research Center Internet-Draft IBM T.J. Watson Research Center
Intended status: Standards Track M. Haardt Intended status: Standards Track M. Haardt
Expires: September 19, 2008 freenet AG Expires: January 10, 2009 freenet AG
March 18, 2008 July 9, 2008
Sieve Notification Mechanism: mailto Sieve Notification Mechanism: mailto
draft-ietf-sieve-notify-mailto-07 draft-ietf-sieve-notify-mailto-08
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 September 19, 2008. This Internet-Draft will expire on January 10, 2009.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2008). Copyright (C) The IETF Trust (2008).
Abstract Abstract
This document describes a profile of the Sieve extension for This document describes a profile of the Sieve extension for
notifications, to allow notifications to be sent by electronic mail. notifications, to allow notifications to be sent by electronic mail.
skipping to change at page 5, line 9 skipping to change at page 5, line 9
The value of this tag, if it is present, is used as the subject of The value of this tag, if it is present, is used as the subject of
the notification message, and overrides all other mechanisms for the notification message, and overrides all other mechanisms for
determining the subject (as described below). Its value SHOULD NOT determining the subject (as described below). Its value SHOULD NOT
normally be truncated, though it may be sensible to truncate an normally be truncated, though it may be sensible to truncate an
excessively long value. excessively long value.
2.7. Other Definitions 2.7. Other Definitions
Because the receipt of an email message is generating another email Because the receipt of an email message is generating another email
message, implementations MUST take steps to avoid mail loops. The message, implementations MUST take steps to avoid mail loops. The
notification message contains the "Received:" fields from the REQUIRED inclusion of an "Auto-Submitted:" field, as described in the
triggering message to allow loop detection as described in [RFC2821], message composition guidelines, will also help in loop detection and
section 6.2. The REQUIRED inclusion of an "Auto-Submitted:" field, avoidance.
as described in the message composition guidelines, will also help in
loop detection and avoidance.
Implementations MUST NOT trigger notifications for messages Implementations MUST NOT trigger notifications for messages
containing "Auto-Submitted:" header fields with any value other than containing "Auto-Submitted:" header fields with any value other than
"No". "No".
Implementations MUST allow messages with empty envelope senders to Implementations MUST allow messages with empty envelope senders to
trigger notifications. trigger notifications.
Because this notification method uses a store-and-forward system for Because this notification method uses a store-and-forward system for
delivery of the notification message, the Sieve processor should not delivery of the notification message, the Sieve processor should not
skipping to change at page 5, line 43 skipping to change at page 5, line 41
o If the envelope sender of the triggering message is empty, the o If the envelope sender of the triggering message is empty, the
envelope sender of the notification message MUST be empty as well, envelope sender of the notification message MUST be empty as well,
to avoid message loops. Otherwise, the envelope sender of the to avoid message loops. Otherwise, the envelope sender of the
notification message SHOULD be set to the value of the ":from" notification message SHOULD be set to the value of the ":from"
parameter to the notify action, if one is specified, has email parameter to the notify action, if one is specified, has email
address syntax and is valid according to the implementation address syntax and is valid according to the implementation
specific security checks (see Section 3.3 of [Notify]). If specific security checks (see Section 3.3 of [Notify]). If
":from" is not specified or is not valid, the envelope sender of ":from" is not specified or is not valid, the envelope sender of
the notification message SHOULD be set either to the envelope "to" the notification message SHOULD be set either to the envelope "to"
field from the triggering message, as used by Sieve, or to a fixed field from the triggering message, as used by Sieve, or to an
email address (so it "comes from the notification system"), at the email address associated with the notification system, at the
discretion of the implementation. This may not be overridden by a discretion of the implementation. This MAY NOT be overridden by a
"from" URI header, and any such URI header MUST be ignored. "from" URI header, and any such URI header MUST be ignored.
o The header field "Auto-Submitted: sieve-notify" MUST be included o The envelope recipient(s) of the notification message SHOULD be
set to the address(es) specified in the URI (including any URI
headers where the hname is "to" or "cc").
o The header field "Auto-Submitted: auto-notified" MUST be included
in the notification message (see Section 2.7.1). This is to in the notification message (see Section 2.7.1). This is to
reduce the likelihood of message loops, by tagging this as an reduce the likelihood of message loops, by tagging this as an
automatically generated message. Among other results, it will automatically generated message. Among other results, it will
cause the notification message not to generate further cause the notification message not to generate further
notifications. mailto URI headers with hname "auto-submitted" are notifications. mailto URI headers with hname "auto-submitted" are
considered unsafe and MUST be ignored. considered unsafe and MUST be ignored.
o The "From:" header field of the notification message SHOULD be set o The "From:" header field of the notification message SHOULD be set
to the value of the ":from" parameter to the notify action, if one to the value of the ":from" parameter to the notify action, if one
is specified, has email address syntax and is valid according to is specified, has email address syntax and is valid according to
the implementation specific security checks (see Section 3.3 of the implementation specific security checks (see Section 3.3 of
[Notify]). If ":from" is not specified or is not valid, the [Notify]). If ":from" is not specified or is not valid, the
"From:" header field of the notification message SHOULD be set "From:" header field of the notification message SHOULD be set
either to the envelope "to" field from the triggering message, as either to the envelope "to" field from the triggering message, as
used by Sieve, or to a fixed email address (so it "comes from the used by Sieve, or to an email address associated with the
notification system"), at the discretion of the implementation. notification system, at the discretion of the implementation.
This may not be overridden by a "from" URI header, and any such This MAY NOT be overridden by a "from" URI header, and any such
URI header MUST be ignored. URI header MUST be ignored.
o The "To:" header field and the envelope recipient(s) of the o The "To:" header field of the notification message SHOULD be set
notification message SHOULD be set to the address(es) specified in to the address(es) specified in the URI (including any URI headers
the URI (including any URI headers where the hname is "to"). where the hname is "to").
o The "Subject:" field of the notification message MUST contain the o The "Subject:" field of the notification message SHOULD contain
value defined by the :message notify tag, as described in the value defined by the :message notify tag, as described in
[Notify]. If there is no :message tag and there is a "subject" [Notify]. If there is no :message tag and there is a "subject"
header on the URI, then that value SHOULD be used. If that is header on the URI, then that value SHOULD be used. If that is
also absent, the subject SHOULD be retained from the triggering also absent, the subject SHOULD be retained from the triggering
message. Note that Sieve [Variables] can be used to advantage message. Note that Sieve [Variables] can be used to advantage
here, as shown in the example in Section 3. here, as shown in the example in Section 3.
o The "References:" field of the notification message MAY be set to
refer to the triggering message, and MAY include references from
the triggering message.
o If the mailto URI contains a "body" header, the value of that o If the mailto URI contains a "body" header, the value of that
header SHOULD be used as the body of the notification message. If header SHOULD be used as the body of the notification message. If
there is no "body" header, it is up to the implementation whether there is no "body" header, it is up to the implementation whether
to leave the body empty or to use an excerpt of the original to leave the body empty or to use an excerpt of the original
message. message.
o The "Received:" fields from the triggering message MAY be retained o The "Received:" fields from the triggering message MAY be retained
in the notification message, as these may help detect and prevent in the notification message, as these could provide useful trace/
mail loops. The "Auto-Submitted" header field MUST be placed history/diagnostic information. The "Auto-Submitted" header field
above these (see Section 2.7.1). URI headers with hname MUST be placed above these (see Section 2.7.1). URI headers with
"received" are considered unsafe, and will be ignored. hname "received" are considered unsafe, and MUST be ignored.
o Other header fields of the notification message that are normally o Other header fields of the notification message that are normally
related to an individual new message (such as "Message-ID" and related to an individual new message (such as "Message-ID" and
"Date") are generated for the notification message in the normal "Date") are generated for the notification message in the normal
manner, and MUST NOT be copied from the triggering message. Any manner, and MUST NOT be copied from the triggering message. Any
URI headers with those names MUST be ignored. Further, the "Date" URI headers with those names MUST be ignored. Further, the "Date"
header serves as the notification timestamp defined in [Notify]. header serves as the notification timestamp defined in [Notify].
o All other header fields of the notification message either are as o All other header fields of the notification message either are as
specified by URI headers, or have implementation-specific values; specified by URI headers, or have implementation-specific values;
their values are not defined here. It is suggested that the their values are not defined here. It is suggested that the
implementation capitalize the first letter of URI headers and add implementation capitalize the first letter of URI headers and add
a space character after the colon between the mail header name and a space character after the colon between the mail header name and
value when adding URI headers to the message, to be consistent value when adding URI headers to the message, to be consistent
with common practice in email headers. with common practice in email headers.
2.7.1. The Auto-Submitted header field 2.7.1. The Auto-Submitted header field
The header field "Auto-Submitted: sieve-notify" MUST be included in The header field "Auto-Submitted: auto-notified" MUST be included in
the notification message (see [RFC3834]). The "Auto-Submitted" the notification message (see [RFC3834]). The "Auto-Submitted"
header field is considered a "trace field", similar to "Received" header field is considered a "trace field", similar to "Received"
header fields (see [RFC2821]). If the implementation retains the header fields (see [RFC2821]). If the implementation retains the
"Received" fields from the triggering message (see above), the "Auto- "Received" fields from the triggering message (see above), the "Auto-
Submitted" field MUST be placed above those "Received" fields, Submitted" field MUST be placed above those "Received" fields,
serving as a boundary between the ones from the triggering message serving as a boundary between the ones from the triggering message
and those that will be part of the notification message. and those that will be part of the notification message.
The sieve-notify Auto-Submitted field MAY include one or both of the The auto-notified Auto-Submitted field MAY include one or both of the
following OPTIONAL parameters: following OPTIONAL parameters:
o owner-email - specifies an email address of the owner of the Sieve o owner-email - specifies an email address of the owner of the Sieve
script that generated this notification. If specified, it might script that generated this notification. If specified, it might
be used to identify or contact the script's owner. The parameter be used to identify or contact the script's owner. The parameter
attribute is "owner-email", and the parameter value is a quoted attribute is "owner-email", and the parameter value is a quoted
string containing an email address, as defined by "addr-spec" in string containing an email address, as defined by "addr-spec" in
[RFC2822]. Example: [RFC2822]. Example:
Auto-Submitted: sieve-notify; owner-email="me@example.com" Auto-Submitted: auto-notified; owner-email="me@example.com"
o owner-token - specifies an opaque token that the administrative o owner-token - specifies an opaque token that the administrative
domain of the owner of the Sieve script that generated this domain of the owner of the Sieve script that generated this
notification can identify the owner with. This might be used to notification can identify the owner with. This might be used to
allow identification of the owner while protecting the owner's allow identification of the owner while protecting the owner's
privacy. The parameter attribute is "owner-token", and the privacy. The parameter attribute is "owner-token", and the
parameter value is as defined by "token" in [RFC3834]. Example: parameter value is as defined by "token" in [RFC3834]. Example:
Auto-Submitted: sieve-notify; owner-token=af3NN2pK5dDXI0W Auto-Submitted: auto-notified; owner-token=af3NN2pK5dDXI0W
3. Examples 3. Examples
Triggering message (received by recipient@example.org): Triggering message (received by recipient@example.org):
Return-Path: <knitting-bounces@example.com> Return-Path: <knitting-bounces@example.com>
Received: from mail.example.com by mail.example.org Received: from mail.example.com by mail.example.org
for <recipient@example.org>; Wed, 7 Dec 2005 05:08:02 -0500 for <recipient@example.org>; Wed, 7 Dec 2005 05:08:02 -0500
Received: from hobbies.example.com by mail.example.com Received: from hobbies.example.com by mail.example.com
for <knitting@example.com>; Wed, 7 Dec 2005 02:00:26 -0800 for <knitting@example.com>; Wed, 7 Dec 2005 02:00:26 -0800
skipping to change at page 8, line 34 skipping to change at page 8, line 34
I just finished a great new sweater! I just finished a great new sweater!
Sieve script (run on behalf of recipient@example.org): Sieve script (run on behalf of recipient@example.org):
require ["notify", "variables"]; require ["notify", "variables"];
if header :contains "list-id" "knitting.example.com" { if header :contains "list-id" "knitting.example.com" {
if header :matches "Subject" "[*] *" { if header :matches "Subject" "[*] *" {
notify :message "From ${1} list: ${2}" notify :message "From ${1} list: ${2}"
:importance "3" :importance "3"
"mailto:0123456789@sms.example.net"; "mailto:0123456789@sms.example.net?to=backup@example.com";
} }
} }
Notification message: Notification message:
Auto-Submitted: auto-notified; owner-email="recipient@example.org"
Received: from mail.example.com by mail.example.org Received: from mail.example.com by mail.example.org
for <recipient@example.org>; Wed, 7 Dec 2005 05:08:02 -0500 for <recipient@example.org>; Wed, 7 Dec 2005 05:08:02 -0500
Received: from hobbies.example.com by mail.example.com Received: from hobbies.example.com by mail.example.com
for <knitting@example.com>; Wed, 7 Dec 2005 02:00:26 -0800 for <knitting@example.com>; Wed, 7 Dec 2005 02:00:26 -0800
Date: Wed, 7 Dec 2005 05:08:55 -0500 Date: Wed, 7 Dec 2005 05:08:55 -0500
Message-ID: <A2299BB.FF7788@example.org> Message-ID: <A2299BB.FF7788@example.org>
Auto-Submitted: sieve-notify; owner-email="recipient@example.org"
From: recipient@example.org From: recipient@example.org
To: 0123456789@sms.example.net To: 0123456789@sms.example.net, backup@example.com
Subject: From Knitting list: A new sweater Subject: From Knitting list: A new sweater
Note that: Note that:
o Fields such as "Message-ID:" and "Date:" were generated afresh for o Fields such as "Message-ID:" and "Date:" were generated afresh for
the notification message, and do not relate to the triggering the notification message, and do not relate to the triggering
message. message.
o Additional "Received:" fields will be added to the notification o Additional "Received:" fields will be added to the notification
message in transit; the ones shown were copied from the triggering message in transit; the ones shown were copied from the triggering
message. message. New ones will be added above the "Auto-Submitted:"
field.
o If this message should appear at the mail.example.org server o If this message should appear at the mail.example.org server
again, the server can use the presence of a "mail.example.org" again, the server can use the presence of a "mail.example.org"
received line to recognize that. The Auto-Submitted header field received line to recognize that. The Auto-Submitted header field
is also present to tell the server to avoid sending another is also present to tell the server to avoid sending another
notification, and it includes an optional owner-email parameter notification, and it includes an optional owner-email parameter
for identification. for identification.
4. Internationalization Considerations 4. Internationalization Considerations
skipping to change at page 12, line 29 skipping to change at page 12, line 29
Michael Haardt <michael.haardt@freenet.ag> Michael Haardt <michael.haardt@freenet.ag>
This information should be added to the list of sieve notification This information should be added to the list of sieve notification
mechanisms given on mechanisms given on
http://www.iana.org/assignments/sieve-notification. http://www.iana.org/assignments/sieve-notification.
6.2. New registry for Auto-Submitted header field keywords 6.2. New registry for Auto-Submitted header field keywords
Because [RFC3834] does not define a registry for new keywords used in Because [RFC3834] does not define a registry for new keywords used in
the Auto-Submitted header field, we define one here, to be created as the Auto-Submitted header field, we define one here, to be created as
http://www.iana.org/assignments/auto-submitted-keywords. This http://www.iana.org/assignments/auto-submitted-keywords. Keywords
defines the template to be used to register new keywords. are registered using the "Specification Required" policy [IANA].
This defines the template to be used to register new keywords.
Initial entries to this registry follow in Section 6.3.
To: iana@iana.org To: iana@iana.org
Subject: Registration of new auto-submitted header field keyword Subject: Registration of new auto-submitted header field keyword
Keyword value: [the text value of the field] Keyword value: [the text value of the field]
Description: [a brief explanation of the purpose of this value] Description: [a brief explanation of the purpose of this value]
Parameters: [list any keyword-specific parameters, specify their Parameters: [list any keyword-specific parameters, specify their
meanings, specify whether they are required or optional; use "none" meanings, specify whether they are required or optional; use "none"
if there are none] if there are none]
Standards Track/IESG-approved experimental RFC number: [identifies Standards Track/IESG-approved experimental RFC number: [identifies
the specification that defines the value being registered] the specification that defines the value being registered]
skipping to change at page 13, line 4 skipping to change at page 13, line 7
6.3. Initial registration of Auto-Submitted header field keywords 6.3. Initial registration of Auto-Submitted header field keywords
The following are the initial keywords to be registered for the Auto- The following are the initial keywords to be registered for the Auto-
Submitted header field, to be entered in Submitted header field, to be entered in
http://www.iana.org/assignments/auto-submitted-keywords. http://www.iana.org/assignments/auto-submitted-keywords.
Keyword value: no Keyword value: no
Description: Indicates that a message was NOT automatically Description: Indicates that a message was NOT automatically
generated, but was created by a human. It is the equivalent to the generated, but was created by a human. It is the equivalent to the
absence of an Auto-Submitted header altogether. absence of an Auto-Submitted header altogether.
Parameters: none Parameters: none
Standards Track/IESG-approved experimental RFC number: RFC3834 Standards Track/IESG-approved experimental RFC number: RFC3834
Contact: Keith Moore <moore@cs.utk.edu> Contact: Keith Moore <moore@network-heretics.com>
Keyword value: auto-generated Keyword value: auto-generated
Description: Indicates that a message was generated by an automatic Description: Indicates that a message was generated by an automatic
process, and is not a direct response to another message. process, and is not a direct response to another message.
Parameters: none Parameters: none
Standards Track/IESG-approved experimental RFC number: RFC3834 Standards Track/IESG-approved experimental RFC number: RFC3834
Contact: Keith Moore <moore@cs.utk.edu> Contact: Keith Moore <moore@network-heretics.com>
Keyword value: auto-replied Keyword value: auto-replied
Description: Indicates that a message was automatically generated as Description: Indicates that a message was automatically generated as
a direct response to another message. a direct response to another message.
Parameters: none Parameters: none
Standards Track/IESG-approved experimental RFC number: RFC3834 Standards Track/IESG-approved experimental RFC number: RFC3834
Contact: Keith Moore <moore@cs.utk.edu> Contact: Keith Moore <moore@network-heretics.com>
Keyword value: sieve-notify Keyword value: auto-notified
Description: Indicates that a message was generated by a Sieve Description: Indicates that a message was generated by a Sieve
notification system. notification system.
Parameters: owner-email, owner-token. Both optional, both refer to Parameters: owner-email, owner-token. Both optional, both refer to
the owner of the Sieve script that generated this message. See the the owner of the Sieve script that generated this message. See the
relevant RFC for details. relevant RFC for details.
Standards Track/IESG-approved experimental RFC number: this RFC Standards Track/IESG-approved experimental RFC number: this RFC
Contact: Michael Haardt <michael.haardt@freenet.ag> Contact: Michael Haardt <michael.haardt@freenet.ag>
7. References 7. References
7.1. Normative References 7.1. Normative References
[Kwds] Bradner, S., "Key words for use in RFCs to Indicate [Kwds] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119, March 1997. Requirement Levels", RFC 2119, March 1997.
[Notify] Melnikov, A., Ed., Leiba, B., Ed., Segmuller, W., and T. [Notify] Melnikov, A., Ed., Leiba, B., Ed., Segmuller, W., and T.
Martin, "Sieve Extension: Notifications", work in Martin, "Sieve Extension: Notifications", work in
progress, draft-ietf-sieve-notify, December 2005. progress, draft-ietf-sieve-notify, December 2007.
[RFC2822] Resnick, P., Ed., "Internet Message Format", RFC 2822, [RFC2822] Resnick, P., Ed., "Internet Message Format", RFC 2822,
April 2001. April 2001.
[RFC3834] Moore, K., "Recommendations for Automatic Responses to [RFC3834] Moore, K., "Recommendations for Automatic Responses to
Electronic Mail", RFC 3834, August 2004. Electronic Mail", RFC 3834, August 2004.
[Sieve] Guenther, P., Ed. and T. Showalter, Ed., "Sieve: An Email [Sieve] Guenther, P., Ed. and T. Showalter, Ed., "Sieve: An Email
Filtering Language", work in Filtering Language", RFC 5228, January 2008.
progress, draft-ietf-sieve-3028bis, November 2005.
[mailto] Hoffman, P., Masinter, L., and J. Zawinski, "The mailto [mailto] Hoffman, P., Masinter, L., and J. Zawinski, "The mailto
URL scheme", RFC 2368, July 1998. URL scheme", RFC 2368, July 1998.
7.2. Non-Normative References 7.2. Non-Normative References
[IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 2434,
October 1998.
[RFC2821] Klensin, J., Ed., "Simple Mail Transfer Protocol", [RFC2821] Klensin, J., Ed., "Simple Mail Transfer Protocol",
RFC 2821, April 2001. RFC 2821, April 2001.
[Variables] [Variables]
Homme, K., "Sieve Extension: Variables", work in Homme, K., "Sieve Extension: Variables", RFC 5229,
progress, draft-ietf-sieve-variables, October 2005. January 2008.
Authors' Addresses Authors' Addresses
Barry Leiba Barry Leiba
IBM T.J. Watson Research Center IBM T.J. Watson Research Center
19 Skyline Drive 19 Skyline Drive
Hawthorne, NY 10532 Hawthorne, NY 10532
US US
Phone: +1 914 784 7941 Phone: +1 914 784 7941
 End of changes. 30 change blocks. 
45 lines changed or deleted 57 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/