| < draft-ietf-sieve-autoreply-03.txt | draft-ietf-sieve-autoreply-04.txt > | |||
|---|---|---|---|---|
| Sieve working group R. George | Sieve working group R. George | |||
| Internet-Draft B. Leiba | Internet-Draft B. Leiba | |||
| Intended status: Informational Huawei Technologies | Intended status: Informational Huawei Technologies | |||
| Expires: June 6, 2011 A. Melnikov | Expires: July 14, 2011 A. Melnikov | |||
| Isode Limited | Isode Limited | |||
| December 3, 2010 | January 10, 2011 | |||
| Sieve Email Filtering: Use of Presence Information with Auto Responder | Sieve Email Filtering: Use of Presence Information with Auto Responder | |||
| functionality | functionality | |||
| draft-ietf-sieve-autoreply-03 | draft-ietf-sieve-autoreply-04 | |||
| Abstract | Abstract | |||
| This document describes how the Sieve email filtering language, along | This document describes how the Sieve email filtering language, along | |||
| with some extensions, can be used to create automatic replies to | with some extensions, can be used to create automatic replies to | |||
| incoming electronic mail messages based on the address book and | incoming electronic mail messages based on the address book and | |||
| presence information of the recipient. | presence information of the recipient. | |||
| Status of this Memo | Status of this Memo | |||
| skipping to change at page 1, line 36 ¶ | skipping to change at page 1, line 36 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| 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." | |||
| This Internet-Draft will expire on June 6, 2011. | This Internet-Draft will expire on July 14, 2011. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2010 IETF Trust and the persons identified as the | Copyright (c) 2011 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. How To Create Auto Replies . . . . . . . . . . . . . . . . . . 3 | 2. How To Create Auto Replies . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Example Use Cases for Auto Replies . . . . . . . . . . . . . . 4 | 3. Example Use Cases for Auto Replies . . . . . . . . . . . . . . 4 | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 6. Normative References . . . . . . . . . . . . . . . . . . . . . 8 | 6. Normative References . . . . . . . . . . . . . . . . . . . . . 9 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 9 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 1. Introduction | 1. Introduction | |||
| This document describes how the Sieve email filtering language | This document describes how the Sieve email filtering language | |||
| [RFC5228], along with some extensions [RFC5230] [RFC5435] | [RFC5228], along with some extensions [RFC5230] [RFC5435] | |||
| [I-D.ietf-sieve-external-lists] [I-D.ietf-sieve-notify-presence] | [I-D.ietf-sieve-external-lists] [I-D.ietf-sieve-notify-presence] | |||
| [I-D.ietf-sieve-vacation-seconds] can be used to generate automatic | [I-D.ietf-sieve-vacation-seconds] can be used to generate automatic | |||
| replies to incoming electronic mail messages based on the presence | replies to incoming electronic mail messages based on the presence | |||
| information of the recipient. This can be used, for example, to | information of the recipient. This can be used, for example, to | |||
| inform the sender that messages will not be answered immediately | inform the sender that messages will not be answered immediately | |||
| skipping to change at page 3, line 39 ¶ | skipping to change at page 3, line 39 ¶ | |||
| received from the same sender and they will start or stop sending | received from the same sender and they will start or stop sending | |||
| responses as the presence status of the recipient changes. | responses as the presence status of the recipient changes. | |||
| An important note, though: users of any auto-reply mechanism should | An important note, though: users of any auto-reply mechanism should | |||
| really think about whether automatic replies are necessary, and at | really think about whether automatic replies are necessary, and at | |||
| what interval they make sense when they are. Email is not Instant | what interval they make sense when they are. Email is not Instant | |||
| Messaging, and senders generally expect that replies might take a | Messaging, and senders generally expect that replies might take a | |||
| while. Consider whether it's truly important to tell people that | while. Consider whether it's truly important to tell people that | |||
| you'll read their mail in an hour or so, or whether that can just be | you'll read their mail in an hour or so, or whether that can just be | |||
| taken as how email works. There are times when this makes sense, but | taken as how email works. There are times when this makes sense, but | |||
| let's not use it to exacerbate information overload. | let's not use it to exacerbate information overload. Judicious use | |||
| of appropriate presence information might serve to mitigate these | ||||
| issues. | ||||
| Implementors, therefore, need to consider this with respect to the | ||||
| features they expose to users, and the potential for inappropriate | ||||
| use those features represent. The ability to create auto-responders | ||||
| might be hidden behind an "advanced" button, and users might be | ||||
| warned of the consequences, and advised of the considerations in the | ||||
| previous paragraph. | ||||
| 2. How To Create Auto Replies | 2. How To Create Auto Replies | |||
| When an email message arrives, the Sieve script can use the | When an email message arrives, the Sieve script can use the | |||
| notify_method_capability of the Notify extension [RFC5435] to check | notify_method_capability of the Notify extension [RFC5435] to check | |||
| the recipient's presence information. The Notify-presence extension | the recipient's presence information. The Notify-presence extension | |||
| [I-D.ietf-sieve-notify-presence] makes additional presence, such as | [I-D.ietf-sieve-notify-presence] makes additional presence, such as | |||
| "away" and "do not disturb" status, available. The script can use | "away" and "do not disturb" status, available. The script can use | |||
| the External-lists extension [I-D.ietf-sieve-external-lists] to look | the External-lists extension [I-D.ietf-sieve-external-lists] to look | |||
| the sender up in the recipient's address book or other list. If the | the sender up in the recipient's address book or other list. If the | |||
| skipping to change at page 5, line 5 ¶ | skipping to change at page 5, line 21 ¶ | |||
| # :matches "*" is used here to extract the value | # :matches "*" is used here to extract the value | |||
| if notify_method_capability :matches | if notify_method_capability :matches | |||
| "xmpp:myjid@example.com" "status" "*" { | "xmpp:myjid@example.com" "status" "*" { | |||
| set "resp_msg" "${1}"; | set "resp_msg" "${1}"; | |||
| } else { | } else { | |||
| set "resp_msg" "Away for a while, without access to email."; | set "resp_msg" "Away for a while, without access to email."; | |||
| } | } | |||
| vacation :handle "ext-away" :seconds 1800 "${resp_msg}"; | vacation :handle "ext-away" :seconds 1800 "${resp_msg}"; | |||
| } | } | |||
| 2. In the next example, we'll check several lists or sublists, auto- | 2. In the next example, we'll check for the recipient's personal | |||
| replying to everyone, but sending more detail about the | assistant, and give very detailed information about the | |||
| recipient's status to senders who are found in the recipient's | recipient's status to that sender. For other senders in the | |||
| address book, and still more detail to those in the "family" and | "family" and "friends" lists we'll also send an auto-reply. | |||
| "friends" lists. | Other senders will be considered less important, and don't need | |||
| auto-replies. | ||||
| require ["envelope", "extlists", "enotify", "vacation-seconds"]; | require ["envelope", "extlists", "enotify", "vacation-seconds"]; | |||
| if envelope :list "from" ["tag:example.com,2009-05-28:family", | if envelope :is "from" "assistant@example.com" | |||
| "tag:example.com,2009-05-28:friends"] | ||||
| { | { | |||
| if notify_method_capability "xmpp:me@example.com" "show" "away" | if notify_method_capability "xmpp:me@example.com" "show" "away" | |||
| { | { | |||
| vacation :handle "away" :seconds 600 | vacation :handle "away" :seconds 600 | |||
| "I'm away for now, but I'll be back soon."; | "I'm away for now, but I'll be back soon."; | |||
| } | } | |||
| elsif notify_method_capability "xmpp:me@example.com" "show" "dnd" | elsif notify_method_capability "xmpp:me@example.com" "show" "dnd" | |||
| { | { | |||
| vacation :handle "dnd" :seconds 1800 | vacation :handle "dnd" :seconds 1800 | |||
| "I'm not to be disturbed. I'll check mail later."; | "I'm not to be disturbed. I'll check mail later."; | |||
| skipping to change at page 5, line 37 ¶ | skipping to change at page 6, line 30 ¶ | |||
| { | { | |||
| vacation :handle "ext-away" :seconds 3600 | vacation :handle "ext-away" :seconds 3600 | |||
| "I'm away for a while, without access to email."; | "I'm away for a while, without access to email."; | |||
| } | } | |||
| elsif notify_method_capability "xmpp:me@example.com" "busy" "yes" | elsif notify_method_capability "xmpp:me@example.com" "busy" "yes" | |||
| { | { | |||
| vacation :handle "busy" :seconds 1800 | vacation :handle "busy" :seconds 1800 | |||
| "I'm very busy, but might check email now and then."; | "I'm very busy, but might check email now and then."; | |||
| } | } | |||
| } | } | |||
| elsif envelope :list "from" "tag:example.com,2009-05-28:AddrBook" | elsif envelope :list "from" ["tag:example.com,2009-05-28:family", | |||
| "tag:example.com,2009-05-28:friends"] | ||||
| { | { | |||
| if notify_method_capability "xmpp:me@example.com" "show" | if notify_method_capability "xmpp:me@example.com" "show" | |||
| ["away", "dnd", "xa"] | ["away", "dnd", "xa"] | |||
| { | { | |||
| vacation :handle "away" :seconds 3600 | vacation :handle "away" :seconds 3600 | |||
| "I'm not available to respond to email."; | "I'm not available to respond to email."; | |||
| } | } | |||
| } | } | |||
| else # the sender is not in the address book | else | |||
| { | { # We could respond as below, making it only once a day | |||
| vacation :handle "catchall" :days 1 | # for less important senders. Better to just omit | |||
| "I got your message, and might read it eventually."; | # that, though (see the end of the Introduction section). | |||
| # | ||||
| # vacation :handle "catchall" :days 1 | ||||
| # "I got your message, and might read it eventually."; | ||||
| } | } | |||
| 3. For this example, if the sender is a work colleague and the | 3. For this example, if the sender is a work colleague and the | |||
| recipient is on extended away status, then reply with a message | recipient is on extended away status, then reply with a message | |||
| giving alternative contact information. The message might also | giving alternative contact information. The message might also | |||
| include details about the reason for the absence, or other | include details about the reason for the absence, or other | |||
| personal or confidential information that shouldn't be shared | personal or confidential information that shouldn't be shared | |||
| with senders who aren't associated with the recipient's company. | with senders who aren't associated with the recipient's company. | |||
| require ["envelope", "extlists", "enotify", "vacation"]; | require ["envelope", "extlists", "enotify", "vacation"]; | |||
| End of changes. 17 change blocks. | ||||
| 25 lines changed or deleted | 38 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/ | ||||