Sieve Extension: File Carbon Copy (FCC)
updates
Extracted elements (21)
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
When any fileinto extension arguments (such as :flags, :create, :specialuse) are used with the :fcc tagged argument, the corresponding extension MUST be enabled.
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.
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.
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.
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".
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.
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.
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.
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.
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.