rfc-8580

Sieve Extension: File Carbon Copy (FCC)

K. Murchison, B. Gondwana
date2019-05 streamIETF areaart wgextra statusPROPOSED STANDARD pages12 canonicalhttps://www.rfc-editor.org/rfc/rfc8580 doi10.17487/RFC8580
The Sieve email filtering language provides a number of action commands, some of which can generate additional messages on behalf of the user. This document defines an extension to such commands to allow a copy of any generated message to be filed into a target mailbox. This document updates RFCs 5230 and 5435 by adding a new tagged argument to the Vacation and Notify actions, respectively.

updates

Extracted elements (21)

design-rationale §6

An implementation MAY only support the FCC extension with a subset of notification methods. The fcc notify_method_capability allows Sieve scripts to discover at runtime which notification methods support FCC, enabling conditional logic rather than a hard error.

email

design-rationale §1

The FCC extension defines a general :fcc tagged argument applicable to any message-generating action, rather than action-specific copy mechanisms, so that future actions can reuse the same argument and semantics simply by specifying their interaction with FCC.

email

errata §4

Per Erratum ID 2035 on RFC 5230, informative advice is provided: if the Sieve processor recognizes an address belonging to the script owner in the To or Cc fields of the input message, it should prefer that address for the From field of the generated message rather than an arbitrary owner address.

email

interoperability-note §6

The FCC extension is applied to the Notify action (RFC 5435). Messages generated using the mailto notification method are MIME-compliant and can be filed without modification, but messages from other methods (e.g., xmpp) MUST be encapsulated per Section 4.

email

interoperability-note §5

The FCC extension is applied to the Vacation action (RFC 5230) by adding the optional FCC argument. Vacation auto-reply messages are already MIME-compliant and can be filed without modification.

email

interoperability-note §8

The FCC extension is not compatible with any Sieve action that does not generate an additional message on behalf of the user. It is a script error to use :fcc with any such action. Future extensions defining message-generating actions must describe their FCC compatibility.

email

normative-requirement §4 REQUIRED

Copies of messages filed into a mailbox via the FCC extension are REQUIRED to be in the Internet Message Format (RFC 5322). Messages generated in other formats MUST be encapsulated using constructs from RFC 5322 and MIME (RFC 2045, 2046, 2047, 2231).

email

normative-requirement §7 MUST NOT

Implementations MUST NOT allow use of the FCC extension with the reject and ereject actions (RFC 5429). Doing so would violate the SMTP principle that a message is either delivered or bounced back to the sender, as the saved copy would contain the original message.

email

normative-requirement §6 MUST

Messages generated by non-MIME notification methods MUST be encapsulated per Section 4 before being filed. The body of the filed message MUST include the :message tagged argument and MAY include :from, :importance, or :options arguments.

email

normative-requirement §4 REQUIRED

The body of the filed FCC message is REQUIRED and must be composed of one or more MIME parts containing the generated message and related metadata. Content-Type header field(s) MUST be set to appropriate MIME types; if any MIME parts include 8-bit or binary data, Content-Transfer-Encoding MUST be set accordingly.

email

normative-requirement §4 REQUIRED

The Date header field in a filed FCC message is REQUIRED and SHOULD be set to the date and time when the message was generated. The From header field is also REQUIRED and SHOULD be set to the email address of the owner of the Sieve script.

email

normative-requirement §3.1 MUST

When any fileinto extension arguments (such as :flags, :create, :specialuse) are used with the :fcc tagged argument, the corresponding extension MUST be enabled.

email

privacy-consideration §10

A copy of a generated message filed into a shared or public mailbox could expose private information about the Sieve script owner to third parties — for instance, revealing that the owner is on holiday or disclosing their physical location.

email, privacy

protocol-element §3.1.2

The :create tagged argument from the Mailbox extension (RFC 5490) can optionally be used with :fcc to create the target mailbox if it does not exist before filing the generated message.

email

protocol-element §6.1

The "fcc" notification-capability value is defined for use with the notify_method_capability test. It returns "yes" if a copy of the notification message can be filed into a target mailbox, or "no" if it cannot. Values MUST be in lowercase.

email

protocol-element §3

The ":fcc" tagged argument instructs the Sieve interpreter to file a copy of a generated message into the mailbox specified in the subsequent string argument. The capability string for this extension is "fcc".

email

protocol-element §3.1.1

The :flags tagged argument from the Imap4flags extension (RFC 5232) can optionally be used with :fcc to set IMAP4 flags on the filed copy of the generated message.

email

protocol-element §3.1.3

The :specialuse tagged argument from the Special-Use extension (RFC 8579) can optionally be used with :fcc to file the message into a mailbox with a specific special-use flag, falling back to the named mailbox if no such special-use mailbox exists.

email

registry §11.2

RFC 8580 registers the "fcc" capability name in the IANA "Notification-Capability Parameters" registry, indicating whether a notification method supports filing a copy of the notification into a target mailbox. Syntax values are "yes" or "no" in lowercase.

email, registry

security-consideration §9

Filing copies of generated messages may cause the Sieve script owner to exceed allocated storage quota on the mail system, thereby preventing delivery of future messages destined for the owner.

email, security

wire-format §3.2

The FCC grammar is defined in ABNF as: FCC = ":fcc" string *FCC-OPTS, where FCC-OPTS = CREATE / IMAP-FLAGS / SPECIAL-USE; each option MUST NOT appear more than once. Tagged arguments in FCC may appear in any order.

email