draft-ietf-sieve-notify-mailto-06.txt   draft-ietf-sieve-notify-mailto-07.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: August 28, 2008 freenet AG Expires: September 19, 2008 freenet AG
February 25, 2008 March 18, 2008
Sieve Notification Mechanism: mailto Sieve Notification Mechanism: mailto
draft-ietf-sieve-notify-mailto-06 draft-ietf-sieve-notify-mailto-07
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 August 28, 2008. This Internet-Draft will expire on September 19, 2008.
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.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Conventions used in this document . . . . . . . . . . . . . 3 1.2. Conventions used in this document . . . . . . . . . . . . 3
2. Definition . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Definition . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Notify parameter "method" . . . . . . . . . . . . . . . . . 4 2.1. Notify parameter "method" . . . . . . . . . . . . . . . . 4
2.2. Test notify_method_capability . . . . . . . . . . . . . . . 4 2.2. Test notify_method_capability . . . . . . . . . . . . . . 4
2.3. Notify tag ":from" . . . . . . . . . . . . . . . . . . . . . 4 2.3. Notify tag ":from" . . . . . . . . . . . . . . . . . . . . 4
2.4. Notify tag ":importance" . . . . . . . . . . . . . . . . . . 4 2.4. Notify tag ":importance" . . . . . . . . . . . . . . . . . 4
2.5. Notify tag ":options" . . . . . . . . . . . . . . . . . . . 4 2.5. Notify tag ":options" . . . . . . . . . . . . . . . . . . 4
2.6. Notify tag ":message" . . . . . . . . . . . . . . . . . . . 4 2.6. Notify tag ":message" . . . . . . . . . . . . . . . . . . 4
2.7. Other Definitions . . . . . . . . . . . . . . . . . . . . . 5 2.7. Other Definitions . . . . . . . . . . . . . . . . . . . . 5
2.7.1. The Auto-Submitted header field . . . . . . . . . . . . . 7
3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 8
4. Internationalization Considerations . . . . . . . . . . . . 10 4. Internationalization Considerations . . . . . . . . . . . 10
5. Security Considerations . . . . . . . . . . . . . . . . . . 11 5. Security Considerations . . . . . . . . . . . . . . . . . 11
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . 12 6. IANA Considerations . . . . . . . . . . . . . . . . . . . 12
6.1. Registration of notification mechanism . . . . . . . . . . . 12 6.1. Registration of notification mechanism . . . . . . . . . . 12
6.2. New registry for Auto-Submitted header field keywords . . . 12 6.2. New registry for Auto-Submitted header field keywords . . 12
6.3. Initial registration of Auto-Submitted header field 6.3. Initial registration of Auto-Submitted header field
keywords . . . . . . . . . . . . . . . . . . . . . . . . . . 12 keywords . . . . . . . . . . . . . . . . . . . . . . . . . 12
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 7. References . . . . . . . . . . . . . . . . . . . . . . . . 14
7.1. Normative References . . . . . . . . . . . . . . . . . . . . 14 7.1. Normative References . . . . . . . . . . . . . . . . . . . 14
7.2. Non-Normative References . . . . . . . . . . . . . . . . . . 14 7.2. Non-Normative References . . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 15 Authors' Addresses . . . . . . . . . . . . . . . . . . . . 15
Intellectual Property and Copyright Statements . . . . . . . 16 Intellectual Property and Copyright Statements . . . . . . 16
1. Introduction 1. Introduction
1.1. Overview 1.1. Overview
The [Notify] extension to the [Sieve] mail filtering language is a The [Notify] extension to the [Sieve] mail filtering language is a
framework for providing notifications by employing URIs to specify framework for providing notifications by employing URIs to specify
the notification mechanism. This document defines how [mailto] URIs the notification mechanism. This document defines how [mailto] URIs
are used to generate notifications by e-mail. are used to generate notifications by e-mail.
skipping to change at page 5, line 37 skipping to change at page 5, line 37
message is submitted, implementations MUST NOT resubmit it, as this message is submitted, implementations MUST NOT resubmit it, as this
is likely to result in multiple notifications, and increases the is likely to result in multiple notifications, and increases the
danger of message loops. danger of message loops.
The overall notification message is composed using the following The overall notification message is composed using the following
guidelines (see [RFC2822] for references to message header fields): guidelines (see [RFC2822] for references to message header fields):
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 is set to the value of the ":from" parameter notification message SHOULD be set to the value of the ":from"
to the notify action, if one is specified, has email address parameter to the notify action, if one is specified, has email
syntax and is valid according to the implementation specific address syntax and is valid according to the implementation
security checks (see Section 3.3 of [Notify]). If ":from" is not specific security checks (see Section 3.3 of [Notify]). If
specified or is not valid, the envelope sender of the notification ":from" is not specified or is not valid, the envelope sender of
message is set either to the envelope "to" field from the the notification message SHOULD be set either to the envelope "to"
triggering message, as used by Sieve, or to a fixed email address field from the triggering message, as used by Sieve, or to a fixed
(so it "comes from the notification system"), at the discretion of email address (so it "comes from the notification system"), at the
the implementation. This may not be overridden by a "from" URI discretion of the implementation. This may not be overridden by a
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 header field "Auto-Submitted: sieve-notify" MUST be included
in the notification message (see [RFC3834]). This is to reduce in the notification message (see Section 2.7.1). This is to
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 is set to the o The "From:" header field of the notification message SHOULD be set
value of the ":from" parameter to the notify action, if one is to the value of the ":from" parameter to the notify action, if one
specified, has email address syntax and is valid according to the is specified, has email address syntax and is valid according to
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 is set either to "From:" header field of the notification message SHOULD be set
the envelope "to" field from the triggering message, as used by either to the envelope "to" field from the triggering message, as
Sieve, or to a fixed email address (so it "comes from the used by Sieve, or to a fixed email address (so it "comes from 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 and the envelope recipient(s) of the
notification message are set to the address(es) specified in the notification message SHOULD be set to the address(es) specified in
URI (including any URI headers where the hname is "to"). the URI (including any URI headers where the hname is "to").
o The "Subject:" field of the notification message contains the o The "Subject:" field of the notification message MUST contain the
value defined by the :message notify tag, as described in 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 is used. If that is also header on the URI, then that value SHOULD be used. If that is
absent, the subject is retained from the triggering message. Note also absent, the subject SHOULD be retained from the triggering
that Sieve [Variables] can be used to advantage here, as shown in message. Note that Sieve [Variables] can be used to advantage
the example in Section 3. here, as shown in the example in Section 3.
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 is used as the body of the notification message. If there header SHOULD be used as the body of the notification message. If
is no "body" header, it is up to the implementation whether to there is no "body" header, it is up to the implementation whether
leave the body empty or to use an excerpt of the original message. to leave the body empty or to use an excerpt of the original
message.
o The "Received:" fields from the triggering message are retained in o The "Received:" fields from the triggering message MAY be retained
the notification message, as these may help detect and prevent in the notification message, as these may help detect and prevent
mail loops. URI headers with hname "received" are considered mail loops. The "Auto-Submitted" header field MUST be placed
unsafe, and will be ignored. above these (see Section 2.7.1). URI headers with hname
"received" are considered unsafe, and will 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. Any URI headers with those names are ignored. Further, manner, and MUST NOT be copied from the triggering message. Any
the "Date" header serves as the notification timestamp defined in URI headers with those names MUST be ignored. Further, the "Date"
[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 capitalizes the first letter of URI headers and implementation capitalize the first letter of URI headers and add
adds a space character after the colon between the mail header a space character after the colon between the mail header name and
name and value when adding URI headers to the message. value when adding URI headers to the message, to be consistent
with common practice in email headers.
2.7.1. The Auto-Submitted header field
The header field "Auto-Submitted: sieve-notify" MUST be included in
the notification message (see [RFC3834]). The "Auto-Submitted"
header field is considered a "trace field", similar to "Received"
header fields (see [RFC2821]). If the implementation retains the
"Received" fields from the triggering message (see above), the "Auto-
Submitted" field MUST be placed above those "Received" fields,
serving as a boundary between the ones from the triggering message
and those that will be part of the notification message.
The sieve-notify Auto-Submitted field MAY include one or both of the
following OPTIONAL parameters:
o owner-email - specifies an email address of the owner of the Sieve
script that generated this notification. If specified, it might
be used to identify or contact the script's owner. The parameter
attribute is "owner-email", and the parameter value is a quoted
string containing an email address, as defined by "addr-spec" in
[RFC2822]. Example:
Auto-Submitted: sieve-notify; owner-email="me@example.com"
o owner-token - specifies an opaque token that the administrative
domain of the owner of the Sieve script that generated this
notification can identify the owner with. This might be used to
allow identification of the owner while protecting the owner's
privacy. The parameter attribute is "owner-token", and the
parameter value is as defined by "token" in [RFC3834]. Example:
Auto-Submitted: sieve-notify; 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 46 skipping to change at page 8, line 46
} }
Notification message: Notification message:
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 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
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.
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. notification, and it includes an optional owner-email parameter
for identification.
4. Internationalization Considerations 4. Internationalization Considerations
This specification introduces no specific internationalization issues This specification introduces no specific internationalization issues
that are not already addressed in [Sieve] and in [Notify]. that are not already addressed in [Sieve] and in [Notify].
5. Security Considerations 5. Security Considerations
Sending a notification is comparable with forwarding mail to the Sending a notification is comparable with forwarding mail to the
notification recipient. Care must be taken when forwarding mail notification recipient. Care must be taken when forwarding mail
skipping to change at page 12, line 36 skipping to change at page 12, line 36
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. This
defines the template to be used to register new keywords. defines the template to be used to register new keywords.
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
meanings, specify whether they are required or optional; use "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]
Contact: [name and email address to contact for further information] Contact: [name and email address to contact for further information]
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
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@cs.utk.edu>
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
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@cs.utk.edu>
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
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@cs.utk.edu>
Keyword value: sieve-notify Keyword value: sieve-notify
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
the owner of the Sieve script that generated this message. See the
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.
 End of changes. 31 change blocks. 
70 lines changed or deleted 116 lines changed or added

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