| < draft-ietf-extra-sieve-fcc-06.txt | draft-ietf-extra-sieve-fcc-07.txt > | |||
|---|---|---|---|---|
| EXTRA K. Murchison | EXTRA K. Murchison | |||
| Internet-Draft B. Gondwana | Internet-Draft B. Gondwana | |||
| Updates: 5230, 5435 (if approved) FastMail | Updates: 5230, 5435 (if approved) FastMail | |||
| Intended status: Standards Track October 1, 2018 | Intended status: Standards Track November 29, 2018 | |||
| Expires: April 4, 2019 | Expires: June 2, 2019 | |||
| Sieve Extension: File Carbon Copy (Fcc) | Sieve Extension: File Carbon Copy (Fcc) | |||
| draft-ietf-extra-sieve-fcc-06 | draft-ietf-extra-sieve-fcc-07 | |||
| Abstract | Abstract | |||
| The Sieve Email Filtering Language provides a number of action | The Sieve Email Filtering Language provides a number of action | |||
| commands, some of which can generate additional messages on behalf of | commands, some of which can generate additional messages on behalf of | |||
| the user. This document defines an extension to such commands to | the user. This document defines an extension to such commands to | |||
| allow a copy of any generated message to be filed into a target | allow a copy of any generated message to be filed into a target | |||
| mailbox. | mailbox. | |||
| This document updates RFC5230 and RFC5435 by adding a new tagged | This document updates RFC5230 and RFC5435 by adding a new tagged | |||
| skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 38 ¶ | |||
| 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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 April 4, 2019. | This Internet-Draft will expire on June 2, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://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 | |||
| skipping to change at page 2, line 14 ¶ | skipping to change at page 2, line 14 ¶ | |||
| 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 . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Conventions Used in This Document . . . . . . . . . . . . . . 3 | 2. Conventions Used in This Document . . . . . . . . . . . . . . 3 | |||
| 3. Tagged Argument ":fcc" . . . . . . . . . . . . . . . . . . . 3 | 3. Tagged Argument ":fcc" . . . . . . . . . . . . . . . . . . . 3 | |||
| 3.1. Format of Filed Messages . . . . . . . . . . . . . . . . 3 | 3.1. Interaction with Fileinto Extensions . . . . . . . . . . 3 | |||
| 3.2. Interaction with the Vacation Action . . . . . . . . . . 4 | 3.1.1. Imap4flags Extension . . . . . . . . . . . . . . . . 4 | |||
| 3.3. Interaction with the Notify Action . . . . . . . . . . . 5 | 3.1.2. Mailbox Extension . . . . . . . . . . . . . . . . . . 4 | |||
| 3.3.1. Notification-Capability "fcc" . . . . . . . . . . . . 5 | 3.1.3. Special-Use Extension . . . . . . . . . . . . . . . . 4 | |||
| 3.4. Compatibility with Other Actions . . . . . . . . . . . . 6 | 3.2. Collected Grammar . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.5. Interaction with Fileinto Extensions . . . . . . . . . . 6 | 4. Format of File Carbon Copied Messages . . . . . . . . . . . . 5 | |||
| 3.5.1. Imap4flags Extension . . . . . . . . . . . . . . . . 7 | 5. Interaction with the Vacation Action . . . . . . . . . . . . 6 | |||
| 3.5.2. Mailbox Extension . . . . . . . . . . . . . . . . . . 7 | 6. Interaction with the Notify Action . . . . . . . . . . . . . 6 | |||
| 3.5.3. Special-Use Extension . . . . . . . . . . . . . . . . 7 | 6.1. Notification-Capability "fcc" . . . . . . . . . . . . . . 7 | |||
| 3.5.4. Extended Example . . . . . . . . . . . . . . . . . . 8 | 7. Compatibility with Other Actions . . . . . . . . . . . . . . 8 | |||
| 4. Implementation Status . . . . . . . . . . . . . . . . . . . . 8 | 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 6.1. Registration of Sieve Extension . . . . . . . . . . . . . 9 | 10.1. Registration of Sieve Extension . . . . . . . . . . . . 9 | |||
| 6.2. Registration of Notification-Capability | 10.2. Registration of Notification-Capability | |||
| Parameter . . . . . . . . . . . . . . . . . . . . . . . . 9 | Parameter . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 10 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 11 | 12.2. Informative References . . . . . . . . . . . . . . . . . 12 | |||
| 8.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 12.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| Appendix A. Change History (To be removed by RFC Editor before | Appendix A. Change History (To be removed by RFC Editor before | |||
| publication) . . . . . . . . . . . . . . . . . . . . 12 | publication) . . . . . . . . . . . . . . . . . . . . 12 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 1. Introduction | 1. Introduction | |||
| The Sieve Email Filtering Language [RFC5228] provides a number of | The Sieve Email Filtering Language [RFC5228] provides a number of | |||
| action commands, some of which can generate additional messages on | action commands, some of which can generate additional messages on | |||
| behalf of the user. It is sometimes desirable for a Sieve user to | behalf of the user. It is sometimes desirable for a Sieve user to | |||
| maintain an archive of the messages generated by these commands. | maintain an archive of the messages generated by these commands. | |||
| This extension defines a new optional tagged argument ":fcc" to | This extension defines a new optional tagged argument ":fcc" to | |||
| action commands which generate additional messages to allow a copy of | action commands which generate additional messages to allow a copy of | |||
| the generated message to be filed into a target mailbox. | the generated message to be filed into a target mailbox. | |||
| The capability string associated with this extension is "fcc". | The capability string associated with this extension is "fcc". | |||
| Each action that generates additional messages will need to specify | Each action that generates additional messages will need to specify | |||
| how it interfacts with :fcc. This document also specifies the | how it interfacts with :fcc. This document specifies the interaction | |||
| interaction of :fcc with the Vacation [RFC5230] and Notify [RFC5435] | of :fcc with the Vacation [RFC5230] and Notify [RFC5435] extensions. | |||
| extensions. | ||||
| 2. Conventions Used in This Document | 2. Conventions Used in This Document | |||
| Conventions for notations are as in Section 1.1 of [RFC5228], | Conventions for notations are as in Section 1.1 of [RFC5228], | |||
| including use of the "Usage:" label for the definition of action and | including use of the "Usage:" label for the definition of action and | |||
| tagged arguments syntax. | tagged arguments syntax. | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [1] [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [1] [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. Tagged Argument ":fcc" | 3. Tagged Argument ":fcc" | |||
| This document specifies a new optional tagged argument ":fcc" that | ||||
| alters the behavior of action commands which generate additional | ||||
| messages on behalf of the user. | ||||
| Usage: :fcc <mailbox: string> | ||||
| The :fcc tagged argument instructs the Sieve interpreter to file a | ||||
| copy of the generated message into the mailbox provided in the | ||||
| subsequent argument. The syntax and semantics of the mailbox | ||||
| argument MUST match those of the mailbox argument to the "fileinto" | ||||
| action specified in Section 4.1 of [RFC5228]. If the specified | ||||
| mailbox doesn't exist, the implementation MUST file the message into | ||||
| the user's main mailbox (e.g. IMAP "INBOX"). | ||||
| 3.1. Interaction with Fileinto Extensions | ||||
| Some tagged arguments defined in extensions to the "fileinto" action | ||||
| can be used together with ":fcc". The sections below describe these | ||||
| interactions. Tagged arguments in future extensions to the | ||||
| "fileinto" action should describe their interaction with ":fcc", if | ||||
| any. | ||||
| When any "fileinto" extension arguments are used with ":fcc", the | ||||
| corresponding extension MUST be enabled, and the arguments MUST have | ||||
| the same syntax and semantics as they do with "fileinto". | ||||
| 3.1.1. Imap4flags Extension | ||||
| This document extends the definition of the ":flags" tagged argument | ||||
| (see Section 5 of [RFC5232]) so that it can optionally be used with | ||||
| the ":fcc" argument. | ||||
| Usage: :fcc <mailbox: string> [:flags <list-of-flags: string-list>] | ||||
| If the optional ":flags" argument is specified with ":fcc", it | ||||
| instructs the Sieve interpreter to set the IMAP4 flags provided in | ||||
| the subsequent argument when the generated message is filed into the | ||||
| target mailbox. | ||||
| 3.1.2. Mailbox Extension | ||||
| This document extends the definition of the ":create" tagged argument | ||||
| (see Section 3.2 of [RFC5490]) so that it can optionally be used with | ||||
| the ":fcc" argument. | ||||
| Usage: :fcc <mailbox: string> [:create] | ||||
| If the optional ":create" argument is specified with ":fcc", it | ||||
| instructs the Sieve interpreter to create the target mailbox, if | ||||
| needed, before attempting to file the generated message into the | ||||
| target mailbox. | ||||
| 3.1.3. Special-Use Extension | ||||
| This document extends the definition of the ":specialuse" tagged | ||||
| argument (see Section 4 of [I-D.ietf-extra-sieve-special-use]) so | ||||
| that it can optionally be used with the ":fcc" argument. | ||||
| Usage: :fcc <mailbox: string> [:specialuse <special-use-flag: string>] | ||||
| If the optional ":specialuse" argument is specified with ":fcc", it | ||||
| instructs the Sieve interpreter to check whether a mailbox exists | ||||
| with the specific special-use flag assigned to it. If such a mailbox | ||||
| exists, the generated message is filed into the special-use mailbox. | ||||
| Otherwise, the generated message is filed into the target mailbox. | ||||
| If both the optional ":specialuse" and ":create" arguments are | ||||
| specified with ":fcc", the Sieve interpreter is instructed to create | ||||
| the target mailbox per Section 4.1 of | ||||
| [I-D.ietf-extra-sieve-special-use], if needed. | ||||
| 3.2. Collected Grammar | ||||
| For convenience, the "FCC" syntax element is defined here using ABNF | For convenience, the "FCC" syntax element is defined here using ABNF | |||
| [RFC5234] so that it can be augmented by other extensions. | [RFC5234] so that it can be augmented by other extensions. | |||
| FCC = ":fcc" <mailbox: string> | FCC = ":fcc" string *FCC-OPTS | |||
| If the optional ":fcc" argument is specified with an action that | FCC-OPTS = CREATE / IMAP-FLAGS / SPECIAL-USE | |||
| generates an additional message, it instructs the Sieve interpreter | ; each option MUST NOT appear more than once | |||
| to file a copy of the generated message into the target mailbox. The | ||||
| syntax and semantics of the mailbox argument MUST match those of the | ||||
| mailbox argument to the "fileinto" action specified in Section 4.1 of | ||||
| [RFC5228]. If the specified mailbox doesn't exist, the | ||||
| implementation MAY treat it as an error, create the mailbox, or file | ||||
| the message into an implementation-defined mailbox. | ||||
| 3.1. Format of Filed Messages | CREATE = ":create" | |||
| IMAP-FLAGS = ":flags" string-list | ||||
| SPECIAL-USE = ":specialuse" string | ||||
| 4. Format of File Carbon Copied Messages | ||||
| Copies of messages filed into a mailbox via this extension are | Copies of messages filed into a mailbox via this extension are | |||
| REQUIRED to be in Internet Message Format [RFC5322]. Some messages | REQUIRED to be in Internet Message Format [RFC5322]. Some messages | |||
| generated by Sieve actions might already conform to this format and | generated by Sieve actions might already conform to this format and | |||
| MAY be filed without modification. Messages generated in other | MAY be filed without modification. Messages generated in other | |||
| formats MUST be encapsulated using constructs from [RFC5322] and MIME | formats MUST be encapsulated using constructs from [RFC5322] and MIME | |||
| ([RFC2045], [RFC2046], [RFC2047]). | ([RFC2045], [RFC2046], [RFC2047], [RFC2231]). | |||
| The general requirements for encapsulating the copies of messages to | The general requirements for encapsulating the copies of messages to | |||
| be filed are the following: | be filed are the following: | |||
| o Date: The Date header field is REQUIRED and SHOULD be set to the | o Date: The Date header field is REQUIRED and SHOULD be set to the | |||
| date and time when the message was generated. | date and time when the message was generated. | |||
| o From: The From header field is REQUIRED and SHOULD be set to the | o From: The From header field is REQUIRED and SHOULD be set to the | |||
| email address of the owner of the Sieve script, unless explicitly | email address of the owner of the Sieve script, unless explicitly | |||
| overridden by rules for encapsulating a particular message type. | overridden by rules for encapsulating a particular message type. | |||
| skipping to change at page 4, line 28 ¶ | skipping to change at page 6, line 8 ¶ | |||
| set to the Message-ID of the message being processed by the Sieve | set to the Message-ID of the message being processed by the Sieve | |||
| interpreter. | interpreter. | |||
| o Message Body: The body of the filed message is REQUIRED and is | o Message Body: The body of the filed message is REQUIRED and is | |||
| composed of one or more MIME-parts containing the generated | composed of one or more MIME-parts containing the generated | |||
| message and any related metadata. The Content-Type header | message and any related metadata. The Content-Type header | |||
| field(s) MUST be set to the appropriate MIME types. If any of the | field(s) MUST be set to the appropriate MIME types. If any of the | |||
| MIME-parts include 8-bit or binary data, the Content-Transfer- | MIME-parts include 8-bit or binary data, the Content-Transfer- | |||
| Encoding header field(s) MUST be set accordingly. | Encoding header field(s) MUST be set accordingly. | |||
| 3.2. Interaction with the Vacation Action | 5. Interaction with the Vacation Action | |||
| This document extends the "vacation" [RFC5230] action (see also | This document extends the "vacation" [RFC5230] action (see also | |||
| "vacation-seconds" [RFC6131]) to optionally store a copy of the auto- | "vacation-seconds" [RFC6131]) to optionally store a copy of the auto- | |||
| reply messages into a target mailbox. | reply messages into a target mailbox. | |||
| Usage: vacation [FCC] | Usage: vacation [FCC] | |||
| [":days" number | ":seconds" number] | [":days" number | ":seconds" number] | |||
| [":subject" string] | [":subject" string] | |||
| [":from" string] | [":from" string] | |||
| [":addresses" string-list] | [":addresses" string-list] | |||
| [":mime"] | [":mime"] | |||
| [":handle" string] | [":handle" string] | |||
| <reason: string> | <reason: string> | |||
| Example: | Example (with fileinto extensions): | |||
| require ["vacation", "fcc"]; | require ["vacation", "fcc", "mailbox", "special-use", "imap4flags"]; | |||
| vacation :days 7 | vacation :days 7 | |||
| :from "hemingway@example.com" "Gone Fishin'" | :from "hemingway@example.com" "Gone Fishin'" | |||
| :fcc "INBOX.Sent"; | :fcc "INBOX.Sent" :flags ["\\Seen"] | |||
| :specialuse "\\Sent" :create; | ||||
| Vacation auto-reply messages are MIME-compliant and MAY be filed into | Vacation auto-reply messages are MIME-compliant and can be filed into | |||
| the target mailbox without modification. | the target mailbox without modification. | |||
| 3.3. Interaction with the Notify Action | 6. Interaction with the Notify Action | |||
| This document extends the "notify" [RFC5435] action to optionally | This document extends the "notify" [RFC5435] action to optionally | |||
| store a copy of the notification messages into a target mailbox. | store a copy of the notification messages into a target mailbox. | |||
| Usage: notify [FCC] | Usage: notify [FCC] | |||
| [":from" string] | [":from" string] | |||
| [":importance" <"1" / "2" / "3">] | [":importance" <"1" / "2" / "3">] | |||
| [":options" string-list] | [":options" string-list] | |||
| [":message" string] | [":message" string] | |||
| <method: string> | <method: string> | |||
| Example: | Example: | |||
| require ["enotify", "fcc"]; | require ["enotify", "fcc"]; | |||
| notify :fcc "INBOX.Sent" | notify :fcc "INBOX.Sent" | |||
| :message "You got mail!" | :message "You got mail!" | |||
| "mailto:ken@example.com"; | "mailto:ken@example.com"; | |||
| Messages generated using the "mailto" [RFC5436] notification method | Messages generated using the "mailto" [RFC5436] notification method | |||
| are MIME-compliant and MAY be filed into the target mailbox without | are MIME-compliant and can be filed into the target mailbox without | |||
| modification. | modification. | |||
| Messages generated by other notification methods (e.g. "xmpp" | Messages generated by other notification methods (e.g. "xmpp" | |||
| [RFC5437]) MUST be encapsulated per Section 3.1 before being filed. | [RFC5437]) MUST be encapsulated per Section 4 before being filed. | |||
| The body of the filed message MUST include the :message parameter and | The body of the filed message MUST include the :message parameter and | |||
| MAY include one or more of the :from, :importance, or :options | MAY include one or more of the :from, :importance, or :options | |||
| parameters. The MIME-type(s) of the body part(s) used to encapsulate | parameters. The MIME-type(s) of the body part(s) used to encapsulate | |||
| the parameters is an implementation decision. | the parameters is an implementation decision. | |||
| An implementation MAY only support :fcc in conjunction with a subset | An implementation MAY only support :fcc in conjunction with a subset | |||
| of the notification methods it supports. An error occurs if :fcc is | of the notification methods it supports. An error occurs if :fcc is | |||
| combined with a notification method that doesn't support it. | combined with a notification method that doesn't support it. | |||
| Notification methods that support :fcc can be discovered at run-time | Notification methods that support :fcc can be discovered at run-time | |||
| using the mechanism described below (Section 3.3.1). | using the mechanism described below (Section 6.1). | |||
| 3.3.1. Notification-Capability "fcc" | 6.1. Notification-Capability "fcc" | |||
| This document defines a new notification-capability value "fcc" for | This document defines a new notification-capability value "fcc" for | |||
| use with the notify_method_capability test (see Section 5 of | use with the notify_method_capability test (see Section 5 of | |||
| [RFC5435]. For the "fcc" notification-capability, the | [RFC5435]. For the "fcc" notification-capability, the | |||
| notify_method_capability test can match one of the following key-list | notify_method_capability test can match one of the following key-list | |||
| values: | values: | |||
| yes A copy of the notification message sent using the method | yes A copy of the notification message sent using the method | |||
| identified by the notification-uri can be filed into a target | identified by the notification-uri can be filed into a target | |||
| mailbox. | mailbox. | |||
| skipping to change at page 6, line 17 ¶ | skipping to change at page 8, line 9 ¶ | |||
| mailbox. | mailbox. | |||
| Note that the "fcc" notify_method_capability test does not require | Note that the "fcc" notify_method_capability test does not require | |||
| the notification-uri argument to specify anything other than a | the notification-uri argument to specify anything other than a | |||
| scheme. | scheme. | |||
| Example: | Example: | |||
| require ["enotify", "fcc"]; | require ["enotify", "fcc"]; | |||
| if notify_method_capability "xmpp:" "Fcc" "yes" { | if notify_method_capability "xmpp:" "fcc" "yes" { | |||
| notify :fcc "INBOX.Sent" | notify :fcc "INBOX.Sent" | |||
| :message "You got mail" | :message "You got mail" | |||
| "xmpp:ken@example.com?message;subject=SIEVE"; | "xmpp:ken@example.com?message;subject=SIEVE"; | |||
| } else { | } else { | |||
| notify :fcc "INBOX.Sent" | notify :fcc "INBOX.Sent" | |||
| :message "You got mail!" | :message "You got mail!" | |||
| "mailto:ken@example.com"; | "mailto:ken@example.com"; | |||
| } | } | |||
| 3.4. Compatibility with Other Actions | 7. Compatibility with Other Actions | |||
| The "fcc" extension is not compatible with any Sieve action that does | The "fcc" extension is not compatible with any Sieve action that does | |||
| not generate an additional message on behalf of the user. It is an | not generate an additional message on behalf of the user. It is an | |||
| error for a script to use the ":fcc" tagged argument with any such | error for a script to use the ":fcc" tagged argument with any such | |||
| action. | action. | |||
| Future extensions that define actions that generate additional | Future extensions that define actions that generate additional | |||
| messages on behalf of the user should describe their compatibility | messages on behalf of the user should describe their compatibility | |||
| with ":fcc", and how to MIME-encapsulate the message, if required. | with ":fcc", and how to MIME-encapsulate the message, if required. | |||
| 3.5. Interaction with Fileinto Extensions | 8. Implementation Status | |||
| The "fcc" extension can be used with some tagged arguments defined in | ||||
| extensions to the "fileinto" action. The sections below describe its | ||||
| interaction with currently defined extensions. Tagged arguments in | ||||
| future extensions to the "fileinto" command should describe their | ||||
| interaction with ":fcc", if any. | ||||
| When any "fileinto" extension arguments are used with ":fcc", the | ||||
| corresponding extension MUST be enabled, and the arguments MUST have | ||||
| the same syntax and semantics as they do with "fileinto". | ||||
| 3.5.1. Imap4flags Extension | ||||
| This document extends the definition of the ":flags" [RFC5232] tagged | ||||
| argument so that it can optionally be used with the ":fcc" argument. | ||||
| FCC =/ [":flags" <list-of-flags: string-list>] | ||||
| If the optional ":flags" argument is specified with ":fcc", it | ||||
| instructs the Sieve interpreter to set the IMAP4 flags provided in | ||||
| the subsequent argument when the generated message is filed into the | ||||
| target mailbox. | ||||
| 3.5.2. Mailbox Extension | ||||
| This document extends the definition of the ":create" [RFC5490] | ||||
| tagged argument so that it can optionally be used with the ":fcc" | ||||
| argument. | ||||
| FCC =/ [":create"] | ||||
| If the optional ":create" argument is specified with ":fcc", it | ||||
| instructs the Sieve interpreter to create the target mailbox, if | ||||
| needed, before attempting to file the generated message into the | ||||
| target mailbox. | ||||
| 3.5.3. Special-Use Extension | ||||
| This document extends the definition of the ":specialuse" | ||||
| [I-D.ietf-extra-sieve-special-use] tagged argument so that it can | ||||
| optionally be used with the ":fcc" argument. | ||||
| FCC =/ [":specialuse" <special-use-flag: string>] | ||||
| If the optional ":specialuse" argument is specified with ":fcc", it | ||||
| instructs the Sieve interpreter to check whether a mailbox exists | ||||
| with the specific special-use flag assigned to it. If such a mailbox | ||||
| exists, the generated message is filed into the special-use mailbox. | ||||
| Otherwise, the generated message is filed into the target mailbox. | ||||
| If both the optional ":specialuse" and ":create" arguments are | ||||
| specified with ":fcc", the Sieve interpreter is instructed to create | ||||
| the target mailbox per Section 4.1 of | ||||
| [I-D.ietf-extra-sieve-special-use], if needed. | ||||
| 3.5.4. Extended Example | ||||
| require ["vacation", "fcc", "mailbox", "special-use", "imap4flags"]; | ||||
| vacation :days 7 | ||||
| :from "hemingway@example.com" "Gone Fishin'" | ||||
| :fcc "INBOX.Sent" :specialuse "\\Sent" :create | ||||
| :flags ["\\Seen"]; | ||||
| 4. Implementation Status | ||||
| < RFC Editor: before publication please remove this section and the | < RFC Editor: before publication please remove this section and the | |||
| reference to [RFC7942] > | reference to [RFC7942] > | |||
| This section records the status of known implementations of the | This section records the status of known implementations of the | |||
| protocol defined by this specification at the time of posting of this | protocol defined by this specification at the time of posting of this | |||
| Internet-Draft, and is based on a proposal described in [RFC7942]. | Internet-Draft, and is based on a proposal described in [RFC7942]. | |||
| The description of implementations in this section is intended to | The description of implementations in this section is intended to | |||
| assist the IETF in its decision processes in progressing drafts to | assist the IETF in its decision processes in progressing drafts to | |||
| RFCs. Please note that the listing of any individual implementation | RFCs. Please note that the listing of any individual implementation | |||
| skipping to change at page 8, line 36 ¶ | skipping to change at page 9, line 4 ¶ | |||
| has been spent to verify the information presented here that was | has been spent to verify the information presented here that was | |||
| supplied by IETF contributors. This is not intended as, and must not | supplied by IETF contributors. This is not intended as, and must not | |||
| be construed to be, a catalog of available implementations or their | be construed to be, a catalog of available implementations or their | |||
| features. Readers are advised to note that other implementations may | features. Readers are advised to note that other implementations may | |||
| exist. | exist. | |||
| According to [RFC7942], "this will allow reviewers and working groups | According to [RFC7942], "this will allow reviewers and working groups | |||
| to assign due consideration to documents that have the benefit of | to assign due consideration to documents that have the benefit of | |||
| running code, which may serve as evidence of valuable experimentation | running code, which may serve as evidence of valuable experimentation | |||
| and feedback that have made the implemented protocols more mature. | and feedback that have made the implemented protocols more mature. | |||
| It is up to the individual working groups to use this information as | It is up to the individual working groups to use this information as | |||
| they see fit". | they see fit". | |||
| 4.1. Cyrus Server | 8.1. Cyrus Server | |||
| The open source Cyrus Server [2] project is a highly scalable | The open source Cyrus Server [2] project is a highly scalable | |||
| enterprise mail system which supports Sieve email filtering at the | enterprise mail system which supports Sieve email filtering at the | |||
| point of final delivery. This production level Sieve implementation | point of final delivery. This production level Sieve implementation | |||
| supports all of the requirements described in this document. This | supports all of the requirements described in this document. This | |||
| implementation is freely distributable under a BSD style license from | implementation is freely distributable under a BSD style license from | |||
| Computing Services at Carnegie Mellon University [3]. | Computing Services at Carnegie Mellon University [3]. | |||
| 4.2. Oracle Communications Messaging Server | 8.2. Oracle Communications Messaging Server | |||
| The Oracle Communications Messaging Server [4] is a highly scalable, | The Oracle Communications Messaging Server [4] is a highly scalable, | |||
| reliable, and available messaging platform. This production level | reliable, and available messaging platform. This production level | |||
| product supports the :fcc extension in conjunction with both the | product supports the :fcc extension in conjunction with both the | |||
| notify and vacation extensions. The implementation meets all the | notify and vacation extensions. The implementation meets all the | |||
| requirements given in this document. The product also supports the | requirements given in this document. The product also supports the | |||
| imap4flags extension so the :flags may be used in conjunction :fcc. | imap4flags extension so the :flags may be used in conjunction :fcc. | |||
| 5. Security Considerations | 9. Security Considerations | |||
| The "fcc" extension does not raise any other security considerations | The "fcc" extension does not raise any other security considerations | |||
| that are not already present in [RFC5228], [RFC5230], [RFC5435], and | that are not already present in [RFC5228], [RFC5230], [RFC5435], and | |||
| [RFC6131]. | [RFC6131]. | |||
| 6. IANA Considerations | 10. IANA Considerations | |||
| 6.1. Registration of Sieve Extension | 10.1. Registration of Sieve Extension | |||
| To: iana@iana.org | To: iana@iana.org | |||
| Subject: Registration of new Sieve extension | Subject: Registration of new Sieve extension | |||
| Capability name: fcc | Capability name: fcc | |||
| Description: Adds the ":fcc" parameter to Sieve action commands | Description: Adds the ":fcc" parameter to Sieve action commands | |||
| that generate additional messages. | that generate additional messages. | |||
| RFC number: RFC XXXX | RFC number: RFC XXXX | |||
| Contact address: The Sieve discussion list <sieve@ietf.org> | Contact address: The Sieve discussion list <sieve@ietf.org> | |||
| 6.2. Registration of Notification-Capability Parameter | 10.2. Registration of Notification-Capability Parameter | |||
| To: iana@iana.org | To: iana@iana.org | |||
| Subject: Registration of a new notification-capability parameter | Subject: Registration of a new notification-capability parameter | |||
| Capability name: fcc | Capability name: fcc | |||
| Description: Returns whether a copy of the notification message | Description: Returns whether a copy of the notification message | |||
| sent using the method identified by the notification-uri parameter | sent using the method identified by the notification-uri parameter | |||
| to the notify_method_capability test can be filed into a target | to the notify_method_capability test can be filed into a target | |||
| mailbox. | mailbox. | |||
| Syntax: Can contain one of two values: "yes" or "no". Values MUST | Syntax: Can contain one of two values: "yes" or "no". Values MUST | |||
| be in lowercase. | be in lowercase. | |||
| Permanent and readily available reference(s): This RFC | Permanent and readily available reference(s): This RFC | |||
| Contact information: The Sieve discussion list <ietf-mta- | Contact information: The Sieve discussion list <ietf-mta- | |||
| filters@imc.org> | filters@imc.org> | |||
| 7. Acknowledgments | 11. Acknowledgments | |||
| The authors would like to thank the following individuals for | The authors would like to thank the following individuals for | |||
| contributing their ideas and support for writing this specification: | contributing their ideas and support for writing this specification: | |||
| Ned Freed, Stan Kalisch, and Alexey Melnikov. | Ned Freed, Stan Kalisch, and Alexey Melnikov. | |||
| 8. References | 12. References | |||
| 8.1. Normative References | 12.1. Normative References | |||
| [I-D.ietf-extra-sieve-special-use] | [I-D.ietf-extra-sieve-special-use] | |||
| Bosch, S., "Sieve Email Filtering: Delivering to Special- | Bosch, S., "Sieve Email Filtering: Delivering to Special- | |||
| Use Mailboxes", draft-ietf-extra-sieve-special-use-03 | Use Mailboxes", draft-ietf-extra-sieve-special-use-04 | |||
| (work in progress), September 2018. | (work in progress), November 2018. | |||
| [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | |||
| Extensions (MIME) Part One: Format of Internet Message | Extensions (MIME) Part One: Format of Internet Message | |||
| Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996, | Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996, | |||
| <https://www.rfc-editor.org/info/rfc2045>. | <https://www.rfc-editor.org/info/rfc2045>. | |||
| [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | |||
| Extensions (MIME) Part Two: Media Types", RFC 2046, | Extensions (MIME) Part Two: Media Types", RFC 2046, | |||
| DOI 10.17487/RFC2046, November 1996, | DOI 10.17487/RFC2046, November 1996, | |||
| <https://www.rfc-editor.org/info/rfc2046>. | <https://www.rfc-editor.org/info/rfc2046>. | |||
| skipping to change at page 10, line 40 ¶ | skipping to change at page 11, line 15 ¶ | |||
| [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) | [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) | |||
| Part Three: Message Header Extensions for Non-ASCII Text", | Part Three: Message Header Extensions for Non-ASCII Text", | |||
| RFC 2047, DOI 10.17487/RFC2047, November 1996, | RFC 2047, DOI 10.17487/RFC2047, November 1996, | |||
| <https://www.rfc-editor.org/info/rfc2047>. | <https://www.rfc-editor.org/info/rfc2047>. | |||
| [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, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded | ||||
| Word Extensions: Character Sets, Languages, and | ||||
| Continuations", RFC 2231, DOI 10.17487/RFC2231, November | ||||
| 1997, <https://www.rfc-editor.org/info/rfc2231>. | ||||
| [RFC5228] Guenther, P., Ed. and T. Showalter, Ed., "Sieve: An Email | [RFC5228] Guenther, P., Ed. and T. Showalter, Ed., "Sieve: An Email | |||
| Filtering Language", RFC 5228, DOI 10.17487/RFC5228, | Filtering Language", RFC 5228, DOI 10.17487/RFC5228, | |||
| January 2008, <https://www.rfc-editor.org/info/rfc5228>. | January 2008, <https://www.rfc-editor.org/info/rfc5228>. | |||
| [RFC5230] Showalter, T. and N. Freed, Ed., "Sieve Email Filtering: | [RFC5230] Showalter, T. and N. Freed, Ed., "Sieve Email Filtering: | |||
| Vacation Extension", RFC 5230, DOI 10.17487/RFC5230, | Vacation Extension", RFC 5230, DOI 10.17487/RFC5230, | |||
| January 2008, <https://www.rfc-editor.org/info/rfc5230>. | January 2008, <https://www.rfc-editor.org/info/rfc5230>. | |||
| [RFC5232] Melnikov, A., "Sieve Email Filtering: Imap4flags | [RFC5232] Melnikov, A., "Sieve Email Filtering: Imap4flags | |||
| Extension", RFC 5232, DOI 10.17487/RFC5232, January 2008, | Extension", RFC 5232, DOI 10.17487/RFC5232, January 2008, | |||
| skipping to change at page 11, line 28 ¶ | skipping to change at page 12, line 9 ¶ | |||
| [RFC5490] Melnikov, A., "The Sieve Mail-Filtering Language -- | [RFC5490] Melnikov, A., "The Sieve Mail-Filtering Language -- | |||
| Extensions for Checking Mailbox Status and Accessing | Extensions for Checking Mailbox Status and Accessing | |||
| Mailbox Metadata", RFC 5490, DOI 10.17487/RFC5490, March | Mailbox Metadata", RFC 5490, DOI 10.17487/RFC5490, March | |||
| 2009, <https://www.rfc-editor.org/info/rfc5490>. | 2009, <https://www.rfc-editor.org/info/rfc5490>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| 8.2. Informative References | 12.2. Informative References | |||
| [RFC5436] Leiba, B. and M. Haardt, "Sieve Notification Mechanism: | [RFC5436] Leiba, B. and M. Haardt, "Sieve Notification Mechanism: | |||
| mailto", RFC 5436, DOI 10.17487/RFC5436, January 2009, | mailto", RFC 5436, DOI 10.17487/RFC5436, January 2009, | |||
| <https://www.rfc-editor.org/info/rfc5436>. | <https://www.rfc-editor.org/info/rfc5436>. | |||
| [RFC5437] Saint-Andre, P. and A. Melnikov, "Sieve Notification | [RFC5437] Saint-Andre, P. and A. Melnikov, "Sieve Notification | |||
| Mechanism: Extensible Messaging and Presence Protocol | Mechanism: Extensible Messaging and Presence Protocol | |||
| (XMPP)", RFC 5437, DOI 10.17487/RFC5437, January 2009, | (XMPP)", RFC 5437, DOI 10.17487/RFC5437, January 2009, | |||
| <https://www.rfc-editor.org/info/rfc5437>. | <https://www.rfc-editor.org/info/rfc5437>. | |||
| [RFC6131] George, R. and B. Leiba, "Sieve Vacation Extension: | [RFC6131] George, R. and B. Leiba, "Sieve Vacation Extension: | |||
| "Seconds" Parameter", RFC 6131, DOI 10.17487/RFC6131, July | "Seconds" Parameter", RFC 6131, DOI 10.17487/RFC6131, July | |||
| 2011, <https://www.rfc-editor.org/info/rfc6131>. | 2011, <https://www.rfc-editor.org/info/rfc6131>. | |||
| [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | |||
| Code: The Implementation Status Section", BCP 205, | Code: The Implementation Status Section", BCP 205, | |||
| RFC 7942, DOI 10.17487/RFC7942, July 2016, | RFC 7942, DOI 10.17487/RFC7942, July 2016, | |||
| <https://www.rfc-editor.org/info/rfc7942>. | <https://www.rfc-editor.org/info/rfc7942>. | |||
| 8.3. URIs | 12.3. URIs | |||
| [1] https://tools.ietf.org/html/bcp14 | [1] https://tools.ietf.org/html/bcp14 | |||
| [2] http://www.cyrusimap.org/ | [2] http://www.cyrusimap.org/ | |||
| [3] http://www.cmu.edu/computing/ | [3] http://www.cmu.edu/computing/ | |||
| [4] https://www.oracle.com/industries/communications/enterprise/ | [4] https://www.oracle.com/industries/communications/enterprise/ | |||
| products/messaging-server/index.html | products/messaging-server/index.html | |||
| Appendix A. Change History (To be removed by RFC Editor before | Appendix A. Change History (To be removed by RFC Editor before | |||
| publication) | publication) | |||
| Changes since draft-ietf-extra-sieve-fcc-06: | ||||
| o Reorganized sections. | ||||
| o Switched to using proper ABNF for FCC and fileinto extensions. | ||||
| o Fcc into INBOX if specified target mailbox doesn't exist. | ||||
| o Editorial changes from Alexey Melnikov. | ||||
| o Other minor editorial changes. | ||||
| Changes since draft-ietf-extra-sieve-fcc-05: | Changes since draft-ietf-extra-sieve-fcc-05: | |||
| o Editorial changes from Jiankang Yao. | o Editorial changes from Jiankang Yao. | |||
| Changes since draft-ietf-extra-sieve-fcc-04: | Changes since draft-ietf-extra-sieve-fcc-04: | |||
| o Editorial changes from Ned Freed. | o Editorial changes from Ned Freed. | |||
| o Added information on Oracle implementation. | o Added information on Oracle implementation. | |||
| skipping to change at page 13, line 21 ¶ | skipping to change at page 14, line 15 ¶ | |||
| o Added registration of the extension with IANA. | o Added registration of the extension with IANA. | |||
| o Added Acknowledgments. | o Added Acknowledgments. | |||
| o Minor editorial changes. | o Minor editorial changes. | |||
| Authors' Addresses | Authors' Addresses | |||
| Kenneth Murchison | Kenneth Murchison | |||
| FastMail US LLC | FastMail US LLC | |||
| 1429 Walnut Street | 1429 Walnut Street - Suite 1201 | |||
| Philadelphia, PA 19107 | Philadelphia, PA 19102 | |||
| USA | USA | |||
| Email: murch@fastmailteam.com | Email: murch@fastmailteam.com | |||
| Bron Gondwana | Bron Gondwana | |||
| FastMail Pty Ltd | FastMail Pty Ltd | |||
| Level 2, 114 William Street | Level 2, 114 William Street | |||
| Melbourne, VIC 3000 | Melbourne, VIC 3000 | |||
| Australia | Australia | |||
| End of changes. 40 change blocks. | ||||
| 133 lines changed or deleted | 157 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/ | ||||