< draft-martin-sieve-notify-00.txt   draft-martin-sieve-notify-01.txt >
Network Working Group Tim Martin Network Working Group Tim Martin
Document: draft-martin-sieve-notify-00.txt Mirapoint Inc. Document: draft-martin-sieve-notify-01.txt Wolfgang Segmuller
Expires June 9, 2001 4 December 2000 Expires December 6, 2001 1 June 2001
Sieve -- An extension for providing instant notifications Sieve -- An extension for providing instant notifications
<draft-martin-sieve-notify-00.txt> <draft-ietf-sieve-notify-01.txt>
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. Internet-Drafts are all provisions of Section 10 of RFC2026. Internet-Drafts are
working documents of the Internet Engineering Task Force (IETF), its working documents of the Internet Engineering Task Force (IETF), its
areas, and its working groups. Note that other groups may also areas, and its working groups. Note that other groups may also
distribute working documents as Internet-Drafts. distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet- Drafts as at any time. It is inappropriate to use Internet- Drafts as
reference material or to cite them other than as "work in progress." reference 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/1id-abstracts.html
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.
Distribution of this memo is unlimited. Distribution of this memo is unlimited.
Abstract Abstract
Users go to great lengths to be notified as quickly as possible that Users go to great lengths to be notified as quickly as possible that
they have received new mail. Most of these methods involve polling they have received new mail. Most of these methods involve polling
to check for new messages periodically. A push method handled by the to check for new messages periodically. A push method handled by the
final delivery agent would give users quicker notifications and save final delivery agent gives users quicker notifications and saves
server resources. This draft describes an extension to the Sieve server resources. This document does not specify the notification
mail filtering language that allows users to give specific method but is expected that using existing instant messaging
preferences for notification of Sieve actions. infrastructure such as Zephyr, ICQ, or SMS messages will be popular.
This draft describes an extension to the Sieve mail filtering
language that allows users to give specific preferences for
notification of Sieve actions.
TTaabbllee ooff CCoonntteennttss TTaabbllee ooff CCoonntteennttss
Status of this Memo . . . . . . . . . . . . . . . . . . . . . . . . 1 Status of this Memo . . . . . . . . . . . . . . . . . . . . . . . . 1
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Conventions Used in This Document . . . . . . . . . . . . . . 3
2. Capability Identifier . . . . . . . . . . . . . . . . . . . . 3 2. Capability Identifier . . . . . . . . . . . . . . . . . . . . 3
3. Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1. Notify action . . . . . . . . . . . . . . . . . . . . . . . . 3 3.1. Notify action . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2. Denotify action . . . . . . . . . . . . . . . . . . . . . . . 4 3.2. Denotify Action . . . . . . . . . . . . . . . . . . . . . . . 5
3.3. Default action . . . . . . . . . . . . . . . . . . . . . . . 5
4. Interaction with Other Sieve Actions . . . . . . . . . . . . 5
5. Interaction with Other Sieve Actions . . . . . . . . . . . . 5 4. Interaction with Other Sieve Actions . . . . . . . . . . . . 6
6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 5. Security Considerations . . . . . . . . . . . . . . . . . . . 7
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 6 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 7
8. Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7. Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . 7
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 8
10. Author's Address . . . . . . . . . . . . . . . . . . . . . . 7 9. Author's Addresses . . . . . . . . . . . . . . . . . . . . . 8
1. Introduction 1. Introduction
This is an extension to the Sieve language defined by [SIEVE] for This is an extension to the Sieve language defined by [SIEVE] for
providing instant notifications of sieve actions that have been providing instant notifications of sieve actions that have been
preformed. It defines the new action "notify". preformed. It defines the new action "notify".
This document does not dictate the notification method used. The This document does not dictate the notification method used.
Examples of possible notification methods are Zephyr and ICQ. The
method shall be site-defined. method shall be site-defined.
Sieve interpreters for which notifications are impractical or is not Sieve interpreters for which notifications are impractical or is not
possible SHOULD ignore this extension. possible SHOULD ignore this extension.
Conventions for notations are as in [SIEVE] section 1.1, including Conventions for notations are as in [SIEVE] section 1.1, including
use of [KEYWORDS]. use of [KEYWORDS].
1.1. Conventions Used in This Document
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 [KEYWORDS].
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 "notify". document is "notify".
3. Actions 3. Actions
3.1. Notify action 3.1. Notify action
Syntax: notify <priority> <message> [<list of headers to include>] Syntax: notify [":method" string]
[":id" string]
[":options" 1*(string-list / number)]
[<":low" / ":normal" / ":high">]
["message:" string]
The Notify action specifies that a notification should be sent to The Notify action specifies that a notification should be sent to
the user upon successful handling of this message. the user upon successful handling of this message.
The format of the notification is site-defined. However, all The format of the notification is implementation-defined. However,
content, including Sieve actions taken on the message, specified in all content specified in the notify action, including Sieve actions
the notify action MUST be included. If errors occurred in another taken on the message, SHOULD be included. If errors occurred in
action they SHOULD be reported in the notification. In addition, if another action they SHOULD be reported in the notification. In
the notification method does not provide a timestamp, one SHOULD be addition, if the notification method does not provide a timestamp,
appended to the notification. Implementations SHOULD NOT include one SHOULD be appended to the notification. Implementations SHOULD
extraneous information. NOT include extraneous information.
The "priority" parameter specifies the importance of the The :method tag identifies the notification method that will be
notification. The priority parameter shall range from :high (very used. If the :method tag is not specified, the default
important) to :medium (moderately important) to :low (not very implementation defined notification method MUST be used. The
important). If no priority is giving it shall default to "medium". possible values of this will be site-specific. If a method is
specified that the implementation does not support, the notification
MUST be ignored. An implementation treats this as a warning
condition and execution of the sieve script MUST continue.
Some instant notification methods allow users to specify their state The :id tag can be used to give the notify action an unique
of activity (for example "busy" or "away from keyboard"). If the identifier. This identifier can be used later in the script to
notification method provides this information it SHOULD be used to cancel the specific notify. The string may have any value and SHOULD
selectively send notifications. If for example the user marks NOT be included in the notification.
herself as "busy" an implentation SHOULD NOT send a notification for
a new mailing list message with a priority of :low, however a user
should be notified of a high priority action. If the notification
method allows users to filter messages based upon certain parameters
in the message, users should be able to filter based upon priority.
The "message" parameter specifies the message to be included in the The :options tag is used to send parameters to the notification
method. This might be the phone number for an SMS message or a
user's ICQ identifier.
The priority parameter specifies the importance of the notification.
The priority parameter has the following values: ":high" (very
important), ":normal", and ":low" (not very important). If no
priority is given, a default priority of ":normal" SHOULD be
assumed. Some notification methods allow users to specify their
state of activity (for example "busy" or "away from keyboard"). If
the notification method provides this information it SHOULD be used
to selectively send notifications. If, for example, the user marks
herself as "busy", an implementation SHOULD NOT send a notification
for a new mailing list message with a priority of :low, however the
user should be notified of a high priority action. If the
notification method allows users to filter messages based upon
certain parameters in the message, users should be able to filter
based upon priority. If the notification method does not support
priority, then this parameter MUST be ignored.
The :message tag specifies the message data to be included in the
notification. The entirety of the string SHOULD be sent but notification. The entirety of the string SHOULD be sent but
implementations MAY shorten the message for technical or aesthetic implementations MAY shorten the message for technical or aesthetic
reasons. reasons. Message may include the message variables defined below. If
the message parameter is absent, a default message of "$from$:
$subject$" will be used.
The list of headers specifies which headers the user wishes to be $from$ - the display name or address of the RFC 822 from
notified of. The header and its contents MUST both be displayed. If $env-from$ - the address of the RFC 821 from
this parameter is omitted, the "From", "To", and "Subject" headers
shall be displayed by default. $subject$ - the subject of the message
$text$ - the first text/* part
$text[n]$ - the first n bytes of the first text/* part
If there are errors sending the notification, the Sieve interpreter If there are errors sending the notification, the Sieve interpreter
SHOULD ignore the notification and not retry indefinitely. SHOULD ignore the notification and not retry indefinitely.
At maximum, one notification is sent per message. If a message This action MUST NOT cancel the implicit keep.
yields multiple notify actions in the processing of a script, the
notify action with the highest priority MUST be used. If there are
multiple notify actions with the same priority the last one with
that priority shall be used.
Example: Example:
if header :contains "from" "brian_bitono@foo.org" { require ["notify","fileinto"];
notify :high "This is probably very important";
if header :contains "from" "boss@example.org" {
notify :high "This is probably very important";
} }
if header :contains "to" "mailinglist@cmu.edu" { if header :contains "to" "sievemailinglist@example.org" {
notify :low "" "" ["From", "Subject"]; notify :low "[SIEVE] $from$: $subject$";
fileinto "INBOX.mailing-list"; fileinto "INBOX.sieve";
} }
3.2. Denotify action 3.2. Denotify Action
Syntax: denotify Syntax: denotify [MATCH-TYPE string] [<":low" / ":normal" /
":high">]
The denotify action specifies that the current notification, if any, The denotify action can be used to cancel a previous notification.
shall not be sent. If the priority, ":low" / ":normal" / ":high", is specified, then
only cancel those notifications with the specified priority. If a
MATCH-TYPE with a string is specified, then only those notifications
whose :id tag matches the specified string using the match-type
operator are canceled. The ascii-casemap comparator MUST be used.
Example: If no notifications exist that match the search criteria, then the
notify "" "New mail"; denotify has no effect. A denotify only cancels notifications that
have already been requested. It is not possible to preemptively
cancel a notification.
if header :contains "from" "mymom@baz.org" { The sequence:
denotify;
fileinto "INBOX.junk";
}
3.3. Default action denotify;
notify;
If neither the notify or denotify action is encountered by default a will still generate a notification. The denotify does not cancel
notifications SHOULD be sent. This notification shall be equivalent the notify.
to a notify action with a priority of medium and the default headers
specified. The message shall be site defined.
4. Interaction with Other Sieve Actions The following table shows which notifies would get cancelled:
Notifications MUST be sent no matter what the message actions might # what is cancelled
be. Users may wish to know when messages are being discarded or denotify # all notifications
rejected. denotify :matches "*" # all notifications with :id tag
denotify :high # all high priority notifications
denotify :is "foobar" # all notifications with id "foobar"
denotify :matches "foo*" :normal # all normal priority notifications
# with id that starts with "foo"
5. Interaction with Other Sieve Actions Example:
require "notify";
The following syntax specification uses the augmented Backus-Naur notify :method "sms" :options "408-555-1212" :id "foobar";
Form (BNF) notation as specified in [ABNF]. This uses the ABNF core if header :contains "from" "boss@example.org" {
rules as specified in Appendix A of the ABNF specification [ABNF]. notify :method "sms" :options "408-555-1212" :id "foobar" :high
:message "BOSS: $subject$";
}
capability =/ notify if header :contains "to" "sievemailinglist@example.org" {
denotify :is "foobar";
}
action =/ notify / denotify if header :contains "subject" "FYI:" {
# don't need high priority notification for
# a 'for your information'
denotify :is "foobar" :high;
}
priority = :low / :medium / :high / 4. Interaction with Other Sieve Actions
notify = "notify" WSP priority WSP string WSP string-list Notifications MUST be sent in all cases, unless a reject action is
;; <priority> <message> <headers-list> also executed. Users may wish to be notified of a message being
discarded, for example. The reject action is given an exception
because implementations may wish to restrict users from seeing the
contents of a rejected message. However, notifications MAY be
modified to not include any data from the original rejected message.
denotify = "denotify" The notify action MUST NOT cancel the implicit keep.
6. Security Considerations The denotify action MUST NOT affect any actions other than the
notify action.
Failures of other actions MAY be reported in the notification.
5. Security Considerations
Security considerations are discussed in [SIEVE]. Additionally Security considerations are discussed in [SIEVE]. Additionally
implementations must be careful to follow the security implementations must be careful to follow the security
considerations of the specific notification methods. It is believed considerations of the specific notification methods. It is believed
that this extension does not introduce any additional security that this extension does not introduce any additional security
concerns. concerns.
7. Acknowledgments The notify action is potentially very dangerous. The path the
notification takes through the network may not be secure. An error
in the options string may cause the message to be transmitted to
someone it was not intended for.
Thanks to Larry Greenfield and Sarah Robeson for help with this Just because a notification is received doesn't mean it was sent by
document. the sieve implementation. It might be possible to forge
notifications with some notification methods.
8. Copyright 6. Acknowledgments
Thanks to Larry Greenfield, Sarah Robeson, Tim Showalter, and Barry
Leiba for help with this document.
7. Copyright
Copyright (C) The Internet Society 1999. All Rights Reserved. Copyright (C) The Internet Society 1999. All Rights Reserved.
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph kind, provided that the above copyright notice and this paragraph
are included on all such copies and derivative works. However, this are included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing document itself may not be modified in any way, such as by removing
skipping to change at page 6, line 46 skipping to change at page 8, line 18
The limited permissions granted above are perpetual and will not be The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns. revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
9. References 8. References
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 [KEYWORDS].
[ABNF] Crocker, Overell, "Augmented BNF for Syntax Specifications: [ABNF] Crocker, Overell, "Augmented BNF for Syntax Specifications:
ABNF", RFC 2234, Internet Mail Consortium, Demon Internet Ltd, ABNF", RFC 2234, Internet Mail Consortium, Demon Internet Ltd,
November 1997. November 1997.
[SIEVE] Showalter, T, "Sieve -- a Mail Filtering Language", draft- [SIEVE]; Showalter, T.; "Sieve: A Mail Filtering Language"; RFC
showalter-sieve-09.txt, Mirapoint, September 1999. 3028; Mirapoint, Inc.; January 2001
10. Author's Address 9. Author's Addresses
Tim Martin Tim Martin
Mirapoint Inc. Mirapoint Inc.
909 Hermosa Court 909 Hermosa Court
Sunnyvale, CA 94085 Sunnyvale, CA 94085
Phone: (408) 720-3835 Phone: (408) 720-3835
EMail: tmartin@mirapoint.com EMail: tmartin@mirapoint.com
Wolfgang Segmuller
IBM T.J. Watson Research Center
30 Saw Mill River Rd
Hawthorne, NY 10532
Phone: (914) 784-7408
Email: whs@watson.ibm.com
 End of changes. 49 change blocks. 
97 lines changed or deleted 162 lines changed or added

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