diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc8580.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc8580.txt')
-rw-r--r-- | doc/rfc/rfc8580.txt | 675 |
1 files changed, 675 insertions, 0 deletions
diff --git a/doc/rfc/rfc8580.txt b/doc/rfc/rfc8580.txt new file mode 100644 index 0000000..9124289 --- /dev/null +++ b/doc/rfc/rfc8580.txt @@ -0,0 +1,675 @@ + + + + + + +Internet Engineering Task Force (IETF) K. Murchison +Request for Comments: 8580 B. Gondwana +Updates: 5230, 5435 FastMail +Category: Standards Track May 2019 +ISSN: 2070-1721 + + + Sieve Extension: File Carbon Copy (FCC) + +Abstract + + 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. + +Status of This Memo + + This is an Internet Standards Track document. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Further information on + Internet Standards is available in Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + https://www.rfc-editor.org/info/rfc8580. + +Copyright Notice + + Copyright (c) 2019 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (https://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + + + +Murchison & Gondwana Standards Track [Page 1] + +RFC 8580 Sieve Extension: FCC May 2019 + + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 + 2. Conventions Used in This Document . . . . . . . . . . . . . . 3 + 3. Tagged Argument ":fcc" . . . . . . . . . . . . . . . . . . . 3 + 3.1. Interaction with Extensions to the Fileinto Action . . . 3 + 3.1.1. Imap4flags Extension . . . . . . . . . . . . . . . . 4 + 3.1.2. Mailbox Extension . . . . . . . . . . . . . . . . . . 4 + 3.1.3. Special-Use Extension . . . . . . . . . . . . . . . . 4 + 3.2. Collected Grammar . . . . . . . . . . . . . . . . . . . . 5 + 4. Format of FCC Messages . . . . . . . . . . . . . . . . . . . 5 + 5. Interaction with the Vacation Action . . . . . . . . . . . . 6 + 6. Interaction with the Notify Action . . . . . . . . . . . . . 7 + 6.1. Notification-Capability "fcc" . . . . . . . . . . . . . . 7 + 7. Compatibility with the Reject and Extended Reject + Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 + 8. Compatibility with Other Actions . . . . . . . . . . . . . . 8 + 9. Security Considerations . . . . . . . . . . . . . . . . . . . 9 + 10. Privacy Considerations . . . . . . . . . . . . . . . . . . . 9 + 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 + 11.1. Registration of New Sieve Extension . . . . . . . . . . 9 + 11.2. Registration of New Notification-Capability + Parameter . . . . . . . . . . . . . . . . . . . . . . . 10 + 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 + 12.1. Normative References . . . . . . . . . . . . . . . . . . 10 + 12.2. Informative References . . . . . . . . . . . . . . . . . 12 + Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 12 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 + +1. Introduction + + The Sieve email filtering language [RFC5228] provides a number of + action commands, some of which can generate additional messages on + behalf of the user. It is sometimes desirable for a Sieve user to + maintain an archive of the messages generated by these commands. + + This extension defines ":fcc", a new optional tagged argument for + action commands that generate additional messages. This argument + allows a copy of the generated message to be filed into a target + mailbox. + + The capability string associated with this extension is "fcc". + + Each new action that generates additional messages will need to + specify how it interacts with the FCC extension. This document + specifies the interaction of the FCC extension with the Vacation + [RFC5230] and Notify [RFC5435] actions. + + + + +Murchison & Gondwana Standards Track [Page 2] + +RFC 8580 Sieve Extension: FCC May 2019 + + +2. Conventions Used in This Document + + Conventions for notations are as described in Section 1.1 of + [RFC5228], including use of the "Usage:" label for the definition of + the action and the syntax of tagged arguments. + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and + "OPTIONAL" in this document are to be interpreted as described in + BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all + capitals, as shown here. + +3. Tagged Argument ":fcc" + + This document specifies ":fcc", a new optional tagged argument that + alters the behavior of action commands that 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 semantics and treatment of the mailbox + argument are defined to match those of the mailbox argument to the + fileinto action specified in Section 4.1 of [RFC5228]. Specifically, + use of an invalid mailbox name MAY be treated as an error or result + in delivery to an implementation-defined mailbox, and 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. Interaction with Extensions to the Fileinto Action + + Some tagged arguments defined in extensions to the fileinto action + can be used together with the ":fcc" tagged argument. The sections + below describe these interactions. Tagged arguments in future + extensions to the fileinto action need to describe their interaction + with the FCC extension, if any. + + When any fileinto extension arguments are used with the FCC + extension, the corresponding extension MUST be enabled, and the + arguments are defined to have the same syntax, semantics, and + treatment as they do with the fileinto action. + + + + + + + + +Murchison & Gondwana Standards Track [Page 3] + +RFC 8580 Sieve Extension: FCC May 2019 + + +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" tagged argument. + + Usage: :fcc <mailbox: string> [:flags <list-of-flags: string-list>] + + If the optional ":flags" tagged argument is specified with the ":fcc" + tagged argument, 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" tagged argument. + + Usage: :fcc <mailbox: string> [:create] + + If the optional ":create" tagged argument is specified with the + ":fcc" tagged argument, 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 [RFC8579]) so that it can optionally be + used with the ":fcc" tagged argument. + + Usage: :fcc <mailbox: string> [:specialuse <special-use-flag: string>] + + If the optional ":specialuse" tagged argument is specified with the + ":fcc" tagged argument, 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 the optional ":specialuse" and ":create" tagged arguments are both + specified with the ":fcc" tagged argument, the Sieve interpreter is + instructed to create the target mailbox per Section 4.1 of [RFC8579], + if needed. + + + + + + +Murchison & Gondwana Standards Track [Page 4] + +RFC 8580 Sieve Extension: FCC May 2019 + + +3.2. Collected Grammar + + For convenience, the "FCC" syntax element is defined here using ABNF + [RFC5234] so that it can be augmented by other extensions. + + Note that the following is the grammar of "FCC" after it has been + lexically interpreted. No whitespace or comments appear below. + + FCC = ":fcc" string *FCC-OPTS + ; per Section 2.6.2 of RFC 5228, + ; the tagged arguments in FCC may appear in any order + + FCC-OPTS = CREATE / IMAP-FLAGS / SPECIAL-USE + ; each option MUST NOT appear more than once + + CREATE = ":create" + IMAP-FLAGS = ":flags" string-list + SPECIAL-USE = ":specialuse" string + +4. Format of FCC Messages + + Copies of messages filed into a mailbox via this extension are + REQUIRED to be in the Internet Message Format [RFC5322]. Some + messages generated by Sieve actions might already conform to this + format and MAY be filed without modification. Messages generated in + other formats MUST be encapsulated using constructs from the Internet + Message Format [RFC5322] and MIME ([RFC2045], [RFC2046], [RFC2047], + [RFC2231]). + + The general requirements for encapsulating the copies of messages to + be filed are as follows: + + o Date: The Date header field is REQUIRED and SHOULD be set to the + date and time when the message was generated. + + 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 + overridden by rules for encapsulating a particular message type. + + Per Erratum ID 2035 [Err2035], + + "Informative advice: Users often have multiple email addresses, + and "the email address of the owner of the Sieve script" may + offer a choice among several. If the sieve processor + recognizes an address belonging to the owner of the Sieve + script in the To or Cc fields of the input message, then it's + + + + + +Murchison & Gondwana Standards Track [Page 5] + +RFC 8580 Sieve Extension: FCC May 2019 + + + better to use that address for the From field of the generated + message, rather than any other addresses the script's owner may + also have". + + o To: The To header field is OPTIONAL and MAY be set to the email + address of the recipient of the generated message, if available. + + o Subject: The Subject header field is OPTIONAL and MAY be generated + by setting the subject to the characters "Fcc: " followed by the + subject of the message being processed by the Sieve interpreter. + + o In-Reply-To: The In-Reply-To header field is OPTIONAL and MAY be + set to the Message-ID of the message being processed by the Sieve + interpreter. + + o Message Body: The body of the filed message is REQUIRED and is + composed of one or more MIME parts containing the generated + message and any related metadata. The Content-Type header + 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- + Encoding header field(s) MUST be set accordingly. + +5. Interaction with the Vacation Action + + This document extends the Vacation [RFC5230] action (see also + "Seconds" parameter [RFC6131] to optionally store a copy of the auto- + reply messages into a target mailbox. + + Usage: vacation [FCC] + [":days" number | ":seconds" number] + [":subject" string] + [":from" string] + [":addresses" string-list] + [":mime"] + [":handle" string] + <reason: string> + + Example (using fileinto extensions): + + require ["vacation", "fcc", "mailbox", "special-use", "imap4flags"]; + + vacation :days 7 + :from "hemingway@example.com" "Gone Fishin'" + :specialuse "\\Sent" :create + :fcc "INBOX.Sent" :flags ["\\Seen"]; + + Vacation auto-reply messages are compliant with MIME and can be filed + into the target mailbox without modification. + + + +Murchison & Gondwana Standards Track [Page 6] + +RFC 8580 Sieve Extension: FCC May 2019 + + +6. Interaction with the Notify Action + + This document extends the Notify [RFC5435] action to optionally store + a copy of the notification messages into a target mailbox. + + Usage: notify [FCC] + [":from" string] + [":importance" <"1" / "2" / "3">] + [":options" string-list] + [":message" string] + <method: string> + + Example: + + require ["enotify", "fcc"]; + + notify :fcc "INBOX.Sent" + :message "You got mail!" + "mailto:ken@example.com"; + + Messages generated using the "mailto" [RFC5436] notification method + are compliant with MIME and can be filed into the target mailbox + without modification. + + Messages generated by other notification methods (e.g., "xmpp" + [RFC5437]) MUST be encapsulated per Section 4 before being filed. + The body of the filed message MUST include the ":message" tagged + argument and MAY include one or more of the ":from", ":importance", + or ":options" tagged arguments. The MIME type(s) of the body part(s) + used to encapsulate the parameters is an implementation decision. + + An implementation MAY only support the FCC extension in conjunction + with a subset of the notification methods it supports. An error + occurs if the FCC extension is used with a notification method that + doesn't support it. Notification methods that support the FCC + extension can be discovered at runtime using the mechanism described + in Section 6.1. + +6.1. Notification-Capability "fcc" + + This document defines "fcc", a new notification-capability value for + use with the notify_method_capability test (see Section 5 of + [RFC5435]. For the "fcc" notification-capability, the + notify_method_capability test can match one of the following key-list + values: + + + + + + +Murchison & Gondwana Standards Track [Page 7] + +RFC 8580 Sieve Extension: FCC May 2019 + + + yes + A copy of the notification message sent using the method + identified by the notification-uri can be filed into a target + mailbox. + + no + A copy of the notification message sent using the method + identified by the notification-uri cannot be filed into a target + mailbox. + + Note that the "fcc" notify_method_capability test does not require + the notification-uri argument to specify anything other than a + scheme. + + Example: + + require ["enotify", "fcc"]; + + if notify_method_capability "xmpp:" "fcc" "yes" { + notify :fcc "INBOX.Sent" + :message "You got mail" + "xmpp:ken@example.com?message;subject=SIEVE"; + } else { + notify :fcc "INBOX.Sent" + :message "You got mail!" + "mailto:ken@example.com"; + } + +7. Compatibility with the Reject and Extended Reject Actions + + Implementations MUST NOT allow use of the FCC extension with the + reject and ereject [RFC5429] actions. Allowing use of the FCC + extension with these actions would violate the SMTP [RFC5321] + principle that a message is either delivered or bounced back to the + sender. Namely, the saved copy of the rejection message will contain + the original message. + + It is an error for a script to use the ":fcc" tagged argument with + either of the reject or ereject actions. + +8. Compatibility with Other Actions + + 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 + error for a script to use the ":fcc" tagged argument with any such + action. + + + + + +Murchison & Gondwana Standards Track [Page 8] + +RFC 8580 Sieve Extension: FCC May 2019 + + + Future extensions that define actions that generate additional + messages on behalf of the user need to describe their compatibility + with the FCC extension and describe how to MIME-encapsulate the + message, if required. + +9. Security Considerations + + In addition to the security considerations in [RFC5228], [RFC5230], + [RFC5435], and [RFC6131], it should be noted that filing copies of + generated messages may cause the Sieve script owner to exceed the + allocated storage (quota) on the mail system, thereby preventing + delivery of future messages destined for the owner. + +10. Privacy Considerations + + In addition to the privacy considerations in [RFC5228], [RFC5230], + [RFC5435], and [RFC6131], it should be noted that a copy of a + generated message filed into a shared or public mailbox (as opposed + to a private mailbox) could expose private information about the + Sieve script owner to third parties. For instance, users that have + access to the shared/public mailbox might discover that the Sieve + script owner is on holiday or might discover the owner's physical + location. + +11. IANA Considerations + +11.1. Registration of New Sieve Extension + + IANA has registered the following Sieve extension in the "Sieve + Extensions" registry at + <https://www.iana.org/assignments/sieve-extensions>: + + Capability name: fcc + + Description: Adds the ":fcc" parameter to Sieve action commands + that generate additional messages. + + RFC number: RFC 8580 + + Contact address: The Sieve discussion list <sieve@ietf.org> + + + + + + + + + + + +Murchison & Gondwana Standards Track [Page 9] + +RFC 8580 Sieve Extension: FCC May 2019 + + +11.2. Registration of New Notification-Capability Parameter + + IANA has registered the following notification-capability parameter + in the "Notification-Capability Parameters" registry at + <https://www.iana.org/assignments/notification-capability- + parameters>: + + Capability Name: fcc + + Description: Returns whether a copy of the notification message + sent using the method identified by the notification-uri parameter + to the notify_method_capability test can be filed into a target + mailbox. + + Syntax: Can contain one of two values: "yes" or "no". Values MUST + be in lowercase. + + Reference: RFC 8580 + + Contact: The Sieve discussion list <sieve@ietf.org> + +12. References + +12.1. Normative References + + [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME) Part One: Format of Internet Message + Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996, + <https://www.rfc-editor.org/info/rfc2045>. + + [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME) Part Two: Media Types", RFC 2046, + DOI 10.17487/RFC2046, November 1996, + <https://www.rfc-editor.org/info/rfc2046>. + + [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) + Part Three: Message Header Extensions for Non-ASCII Text", + RFC 2047, DOI 10.17487/RFC2047, November 1996, + <https://www.rfc-editor.org/info/rfc2047>. + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + <https://www.rfc-editor.org/info/rfc2119>. + + + + + + + +Murchison & Gondwana Standards Track [Page 10] + +RFC 8580 Sieve Extension: FCC May 2019 + + + [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 + Filtering Language", RFC 5228, DOI 10.17487/RFC5228, + January 2008, <https://www.rfc-editor.org/info/rfc5228>. + + [RFC5230] Showalter, T. and N. Freed, Ed., "Sieve Email Filtering: + Vacation Extension", RFC 5230, DOI 10.17487/RFC5230, + January 2008, <https://www.rfc-editor.org/info/rfc5230>. + + [RFC5232] Melnikov, A., "Sieve Email Filtering: Imap4flags + Extension", RFC 5232, DOI 10.17487/RFC5232, January 2008, + <https://www.rfc-editor.org/info/rfc5232>. + + [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax + Specifications: ABNF", STD 68, RFC 5234, + DOI 10.17487/RFC5234, January 2008, + <https://www.rfc-editor.org/info/rfc5234>. + + [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, + DOI 10.17487/RFC5322, October 2008, + <https://www.rfc-editor.org/info/rfc5322>. + + [RFC5429] Stone, A., Ed., "Sieve Email Filtering: Reject and + Extended Reject Extensions", RFC 5429, + DOI 10.17487/RFC5429, March 2009, + <https://www.rfc-editor.org/info/rfc5429>. + + [RFC5435] Melnikov, A., Ed., Leiba, B., Ed., Segmuller, W., and T. + Martin, "Sieve Email Filtering: Extension for + Notifications", RFC 5435, DOI 10.17487/RFC5435, January + 2009, <https://www.rfc-editor.org/info/rfc5435>. + + [RFC5490] Melnikov, A., "The Sieve Mail-Filtering Language -- + Extensions for Checking Mailbox Status and Accessing + Mailbox Metadata", RFC 5490, DOI 10.17487/RFC5490, March + 2009, <https://www.rfc-editor.org/info/rfc5490>. + + [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC + 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, + May 2017, <https://www.rfc-editor.org/info/rfc8174>. + + [RFC8579] Bosch, S., "Sieve Email Filtering: Delivering to Special- + Use Mailboxes", RFC 8579, DOI 10.17487/RFC8579, May 2019, + <https://www.rfc-editor.org/info/rfc8579>. + + + +Murchison & Gondwana Standards Track [Page 11] + +RFC 8580 Sieve Extension: FCC May 2019 + + +12.2. Informative References + + [Err2035] RFC Errata, Errata ID 2035, RFC 5230, + <https://www.rfc-editor.org/errata_search.php?eid=2035>. + + [RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, + DOI 10.17487/RFC5321, October 2008, + <https://www.rfc-editor.org/info/rfc5321>. + + [RFC5436] Leiba, B. and M. Haardt, "Sieve Notification Mechanism: + mailto", RFC 5436, DOI 10.17487/RFC5436, January 2009, + <https://www.rfc-editor.org/info/rfc5436>. + + [RFC5437] Saint-Andre, P. and A. Melnikov, "Sieve Notification + Mechanism: Extensible Messaging and Presence Protocol + (XMPP)", RFC 5437, DOI 10.17487/RFC5437, January 2009, + <https://www.rfc-editor.org/info/rfc5437>. + + [RFC6131] George, R. and B. Leiba, "Sieve Vacation Extension: + "Seconds" Parameter", RFC 6131, DOI 10.17487/RFC6131, July + 2011, <https://www.rfc-editor.org/info/rfc6131>. + +Acknowledgments + + The authors would like to thank the following individuals for + contributing their ideas and supporting this specification: Ned + Freed, Stan Kalisch, and Alexey Melnikov. + +Authors' Addresses + + Kenneth Murchison + FastMail US LLC + 1429 Walnut Street, Suite 1201 + Philadelphia, PA 19102 + United States of America + + Email: murch@fastmailteam.com + + + Bron Gondwana + FastMail Pty Ltd + Level 2, 114 William Street + Melbourne, VIC 3000 + Australia + + Email: brong@fastmailteam.com + + + + + +Murchison & Gondwana Standards Track [Page 12] + |