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.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |