| rfc9042.original | rfc9042.txt | |||
|---|---|---|---|---|
| EXTRA B. Gondwana, Ed. | Internet Engineering Task Force (IETF) B. Gondwana, Ed. | |||
| Internet-Draft Fastmail | Request for Comments: 9042 Fastmail | |||
| Updates: 5228 (if approved) 16 March 2021 | Updates: 5228 June 2021 | |||
| Intended status: Standards Track | Category: Standards Track | |||
| Expires: 17 September 2021 | ISSN: 2070-1721 | |||
| Sieve Email Filtering: delivery by mailboxid | Sieve Email Filtering: Delivery by MAILBOXID | |||
| draft-ietf-extra-sieve-mailboxid-09 | ||||
| Abstract | Abstract | |||
| The OBJECTID capability of the IMAP protocol (RFC8474) allows clients | The OBJECTID capability of IMAP (RFC 8474) allows clients to identify | |||
| to identify mailboxes by a unique identifier which survives rename. | mailboxes by a unique identifier that survives renaming. | |||
| This document extends the Sieve mail filtering language (RFC5228) to | This document extends the Sieve email filtering language (RFC 5228) | |||
| allow using that same unique identifier as a target for fileinto | to allow using that same unique identifier as a target for fileinto | |||
| rules, and for testing the existance of mailboxes. | rules and for testing the existence of mailboxes. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 17 September 2021. | 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/rfc9042. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Simplified BSD License text | to this document. Code Components extracted from this document must | |||
| as described in Section 4.e of the Trust Legal Provisions and are | include Simplified BSD License text as described in Section 4.e of | |||
| provided without warranty as described in the Simplified BSD License. | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 2. Conventions Used In This Document . . . . . . . . . . . . . . 3 | 2. Conventions Used in This Document | |||
| 3. Sieve capability string . . . . . . . . . . . . . . . . . . . 3 | 3. Sieve Capability String | |||
| 4. Argument ":mailboxid" to Command "fileinto" . . . . . . . . . 3 | 4. Argument :mailboxid to Command fileinto | |||
| 4.1. Interaction with "mailbox" extension . . . . . . . . . . 4 | 4.1. Interaction with Mailbox Extension | |||
| 4.2. Interaction with "specialuse" extension . . . . . . . . . 4 | 4.2. Interaction with Special-Use Extension | |||
| 5. Interaction with "fcc" extension . . . . . . . . . . . . . . 5 | 5. Interaction with FCC Extension | |||
| 6. Test "mailboxidexists" . . . . . . . . . . . . . . . . . . . 5 | 6. Test mailboxidexists | |||
| 7. Interaction with variables extension . . . . . . . . . . . . 6 | 7. Interaction with Variables Extension | |||
| 8. Security considerations . . . . . . . . . . . . . . . . . . . 6 | 8. Security Considerations | |||
| 9. IANA considerations . . . . . . . . . . . . . . . . . . . . . 6 | 9. IANA Considerations | |||
| 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 | 10. References | |||
| 11. Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 10.1. Normative References | |||
| 11.1. draft-ietf-sieve-mailboxid-09 . . . . . . . . . . . . . 7 | 10.2. Informative References | |||
| 11.2. draft-ietf-sieve-mailboxid-08 . . . . . . . . . . . . . 7 | Acknowledgements | |||
| 11.3. draft-ietf-sieve-mailboxid-07 . . . . . . . . . . . . . 7 | Author's Address | |||
| 11.4. draft-ietf-sieve-mailboxid-06 . . . . . . . . . . . . . 8 | ||||
| 11.5. draft-ietf-sieve-mailboxid-05 . . . . . . . . . . . . . 8 | ||||
| 11.6. draft-ietf-sieve-mailboxid-04 . . . . . . . . . . . . . 8 | ||||
| 11.7. draft-ietf-sieve-mailboxid-03 . . . . . . . . . . . . . 8 | ||||
| 11.8. draft-ietf-sieve-mailboxid-02 . . . . . . . . . . . . . 8 | ||||
| 11.9. draft-ietf-sieve-mailboxid-01 . . . . . . . . . . . . . 8 | ||||
| 11.10. draft-ietf-sieve-mailboxid-00 . . . . . . . . . . . . . 8 | ||||
| 11.11. draft-gondwana-sieve-mailboxid-02 . . . . . . . . . . . 9 | ||||
| 11.12. draft-gondwana-sieve-mailboxid-01 . . . . . . . . . . . 9 | ||||
| 11.13. draft-gondwana-sieve-mailboxid-00 . . . . . . . . . . . 9 | ||||
| 12. Normative References . . . . . . . . . . . . . . . . . . . . 9 | ||||
| 13. Informative References . . . . . . . . . . . . . . . . . . . 10 | ||||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
| 1. Introduction | 1. Introduction | |||
| [RFC5228] Sieve rules are sometimes created using graphical | Sieve rules [RFC5228] are sometimes created using graphical | |||
| interfaces which allow users to select the mailbox to be used as a | interfaces, which allow users to select the mailbox to be used as a | |||
| target for a rule. | target for a rule. | |||
| If that mailbox is renamed, the client may also update its internal | If that mailbox is renamed, the client may also update its internal | |||
| representation of the rule and update the sieve script to match, | representation of the rule and update the Sieve script to match; | |||
| however this is a multi-step process and subject to partial failures. | however, this is a multistep process and subject to partial failures. | |||
| Also, if the folder is renamed by a different mechanism (e.g. another | Also, if the folder is renamed by a different mechanism (e.g., | |||
| IMAP client) the rules will get out of sync. | another IMAP client), the rules will get out of sync. | |||
| By telling "fileinto" to reference the immutable mailboxid specified | By telling fileinto to reference the immutable MAILBOXID specified by | |||
| by [RFC8474], using the extension specified herein, sieve rules can | [RFC8474], using the extension specified herein, Sieve rules can | |||
| continue to target the same mailbox even if it gets renamed. | continue to target the same mailbox, even if it gets renamed. | |||
| 2. Conventions Used In This Document | 2. Conventions Used in This Document | |||
| 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 | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. Sieve capability string | 3. Sieve Capability String | |||
| Scripts which use the following extensions MUST explicitly require | Scripts that use the extensions defined in this document MUST | |||
| the capability "mailboxid". | explicitly require the capability "mailboxid". | |||
| Example: | Example: | |||
| require "mailboxid"; | require "mailboxid"; | |||
| 4. Argument ":mailboxid" to Command "fileinto" | 4. Argument :mailboxid to Command fileinto | |||
| Normally, the "fileinto" command delivers the message in the mailbox | Normally, the fileinto command delivers the message in the mailbox | |||
| specified using its positional mailbox argument. However, if the | specified using its positional mailbox argument. However, if the | |||
| optional ":mailboxid" argument is also specified, the "fileinto" | optional :mailboxid argument is also specified, the fileinto command | |||
| command first checks whether a mailbox exists in the user's personal | first checks whether a mailbox exists in the user's personal | |||
| namespace [RFC2342] with the specified [RFC8474] MAILBOXID. | namespace [RFC2342] with the specified MAILBOXID [RFC8474]. | |||
| If a matching mailbox is found, that mailbox is used for delivery. | If a matching mailbox is found, that mailbox is used for delivery. | |||
| If there is no such mailbox, the "fileinto" action proceeds as it | If there is no such mailbox, the fileinto action proceeds as it would | |||
| would without the ":mailboxid" argument. | without the :mailboxid argument. | |||
| The tagged argument ":mailboxid" to fileinto consumes one additional | The tagged argument :mailboxid to fileinto consumes one additional | |||
| token, a string with the objectid of the mailbox to file into. | token, a string containing the OBJECTID of the target mailbox. | |||
| Example: | Example: | |||
| require "fileinto"; | require "fileinto"; | |||
| require "mailboxid"; | require "mailboxid"; | |||
| if header :contains ["from"] "coyote" { | if header :contains ["from"] "coyote" { | |||
| fileinto :mailboxid "F6352ae03-b7f5-463c-896f-d8b48ee3" | fileinto :mailboxid "F6352ae03-b7f5-463c-896f-d8b48ee3" | |||
| "INBOX.harassment"; | "INBOX.harassment"; | |||
| } | } | |||
| 4.1. Interaction with "mailbox" extension | 4.1. Interaction with Mailbox Extension | |||
| For servers which also support the [RFC5490] mailbox extension, if | For servers that also support the mailbox extension defined in | |||
| both the ":create" and ":mailboxid" arguments are provided to a | [RFC5490], if both the :create and :mailboxid arguments are provided | |||
| "fileinto" command and no matching mailbox is found, then a new | to a fileinto command and no matching mailbox is found, then a new | |||
| mailbox will be created. | mailbox will be created. | |||
| This new mailbox will have the name specified by the positional | This new mailbox will have the name specified by the positional | |||
| mailbox argument ([RFC5228] section 4.1), however it will get a | mailbox argument ([RFC5228], Section 4.1); however, it will get a | |||
| different mailboxid (chosen by the server) rather than the one | different MAILBOXID (chosen by the server) rather than the one | |||
| specified by the ":mailboxid" argument to fileinto. | specified by the :mailboxid argument to fileinto. | |||
| Example: | Example: | |||
| require "fileinto"; | require "fileinto"; | |||
| require "mailboxid"; | require "mailboxid"; | |||
| require "mailbox"; | require "mailbox"; | |||
| fileinto :mailboxid "Fnosuch" | fileinto :mailboxid "Fnosuch" | |||
| :create | :create | |||
| "INBOX.no-such-folder"; | "INBOX.no-such-folder"; | |||
| # creates INBOX.no-such-folder, but it doesn't | # creates INBOX.no-such-folder, but it doesn't | |||
| # get the "Fnosuch" mailboxid. | # get the "Fnosuch" mailboxid. | |||
| 4.2. Interaction with "specialuse" extension | 4.2. Interaction with Special-Use Extension | |||
| For servers which also support [RFC8579] delivery to special-use | For servers that also support delivery to special-use mailboxes | |||
| mailboxes, it is an error to specify both ":mailboxid" and | [RFC8579], it is an error to specify both :mailboxid and :specialuse | |||
| ":specialuse" in the same fileinto command. | in the same fileinto command. | |||
| Advanced filtering based on both special-use and mailboxid can be | Advanced filtering based on both special-use and MAILBOXID can be | |||
| built with explicit "specialuse_exists" and "mailboxidexists" tests. | built with explicit specialuse_exists and mailboxidexists tests. | |||
| Note to developers of sieve generation tools: it is advisable to use | | Note to developers of Sieve generation tools: | |||
| special-use rather than mailboxid when creating rules that are based | | | |||
| on a special-use purpose (e.g. delivery directly to the Junk folder | | It is advisable to use special-use rather than MAILBOXID when | |||
| based on a header that was added by a scanning agent earlier in the | | creating rules that are based on a special-use purpose (e.g., | |||
| mailflow). | | delivery directly to the Junk folder based on a header that was | |||
| | added by a scanning agent earlier in the mail flow). | ||||
| 5. Interaction with "fcc" extension | 5. Interaction with FCC Extension | |||
| This document extends the definition of the ":fcc" argument defined | This document extends the definition of the :fcc argument defined in | |||
| in [RFC8580] so that it can optionally be used with the ":mailboxid" | [RFC8580] so that it can optionally be used with the :mailboxid | |||
| argument. The syntax for "FCC" is extended here using ABNF | argument. The syntax for FCC is extended here using ABNF [RFC5234]: | |||
| [RFC5234]: | ||||
| MAILBOXID-OPT = ":mailboxid" objectid | MAILBOXID-OPT = ":mailboxid" objectid | |||
| FCC-OPTS =/ MAILBOXID-OPT | FCC-OPTS =/ MAILBOXID-OPT | |||
| If the optional ":mailboxid" argument is specified with ":fcc", it | If the optional :mailboxid argument is specified with :fcc, it | |||
| instructs the Sieve interpreter to check whether a mailbox exists | instructs the Sieve interpreter to check whether a mailbox exists | |||
| with the specific mailboxid. If such a mailbox exists, the generated | with the specific MAILBOXID. If such a mailbox exists, the generated | |||
| message is filed into that mailbox. Otherwise, the generated message | message is filed into that mailbox. Otherwise, the generated message | |||
| is filed into the ":fcc" target mailbox. | is filed into the :fcc target mailbox. | |||
| As with fileinto, it is an error to specify both ":mailboxid" and | As with fileinto, it is an error to specify both :mailboxid and | |||
| ":specialuse" for the same fcc rule. | :specialuse for the same fcc rule. | |||
| Example: | Example: | |||
| require ["enotify", "fcc", "mailboxid"]; | require ["enotify", "fcc", "mailboxid"]; | |||
| notify :fcc "INBOX.Sent" | notify :fcc "INBOX.Sent" | |||
| :mailboxid "F6352ae03-b7f5-463c-896f-d8b48ee3" | :mailboxid "F6352ae03-b7f5-463c-896f-d8b48ee3" | |||
| :message "You got mail!" | :message "You got mail!" | |||
| "mailto:ken@example.com"; | "mailto:ken@example.com"; | |||
| 6. Test "mailboxidexists" | 6. Test mailboxidexists | |||
| The "mailboxidexists" test is true if all mailboxes listed in the | Usage: mailboxidexists <mailbox-objectids: string-list> | |||
| "mailboxids" argument exist in the mailstore, and each allows the | ||||
| user in whose context the Sieve script runs to "deliver" messages | ||||
| into it. When the mailstore is an IMAP server, "delivery" of | ||||
| messages is possible if: | ||||
| a) the READ-WRITE response code is present for the mailbox (see | The mailboxidexists test is true if every string argument provided is | |||
| Section 7.1 of [RFC3501]), if IMAP Access Control List (ACL) | the MAILBOXID of a mailbox that exists in the mailstore and that | |||
| [RFC4314] is not supported by the server, or | allows the user in whose context the Sieve script runs to deliver | |||
| messages into it. | ||||
| b) the user has 'p' or 'i' rights for the mailbox (see Section 5.2 of | When the mailstore is an IMAP server that also supports IMAP Access | |||
| [RFC4314]). | Control List (ACL) [RFC4314], delivery is allowed if the user has the | |||
| 'p' or 'i' rights for the mailbox (see Section 5.2 of [RFC4314]). | ||||
| Note that a successful "mailboxidexists" test for a mailbox doesn't | When the mailstore is an IMAP server that does not support IMAP ACL, | |||
| delivery is allowed if the READ-WRITE response code is present for | ||||
| the mailbox when selected by the user (see Section 7.1 of [RFC3501]). | ||||
| Note that a successful mailboxidexists test for a mailbox doesn't | ||||
| necessarily mean that a "fileinto :mailboxid" action on this mailbox | necessarily mean that a "fileinto :mailboxid" action on this mailbox | |||
| would succeed. For example, the "fileinto" action might put user | would succeed. For example, the fileinto action might put the user | |||
| over quota. The "mailboxidexists" test only verifies existence of | over quota. The mailboxidexists test only verifies existence of the | |||
| the mailbox and whether the user in whose context the Sieve script | mailbox and whether the user in whose context the Sieve script runs | |||
| runs has permissions to execute "fileinto" on it. | has permissions to execute fileinto on it. | |||
| Example: | Example: | |||
| require "fileinto"; | require "fileinto"; | |||
| require "mailboxid"; | require "mailboxid"; | |||
| if header :contains ["from"] "coyote" { | if header :contains ["from"] "coyote" { | |||
| if mailboxidexists "F6352ae03-b7f5-463c-896f-d8b48ee3" { | if mailboxidexists "F6352ae03-b7f5-463c-896f-d8b48ee3" { | |||
| fileinto :mailboxid "F6352ae03-b7f5-463c-896f-d8b48ee3" | fileinto :mailboxid "F6352ae03-b7f5-463c-896f-d8b48ee3" | |||
| "INBOX.name.will.not.be.used"; | "INBOX.name.will.not.be.used"; | |||
| } else { | } else { | |||
| fileinto "INBOX.harassment"; | fileinto "INBOX.harassment"; | |||
| } | } | |||
| } | } | |||
| Note to implementers: this test behaves identically to the | | Note to implementers: | |||
| "mailboxexists" test defined in [RFC5490] but operates on mailboxids | | | |||
| rather than mailbox names. | | This test behaves identically to the mailboxexists test defined | |||
| | in [RFC5490] but operates on MAILBOXIDs rather than mailbox | ||||
| | names. | ||||
| 7. Interaction with variables extension | 7. Interaction with Variables Extension | |||
| There is no special interaction defined, however as an objectid is a | There is no special interaction defined; however, as an OBJECTID is a | |||
| string in this document, objectid values can contain variable | string in this document, OBJECTID values can contain variable | |||
| expansions if [RFC5229] is enabled. | expansions if [RFC5229] is enabled. | |||
| 8. Security considerations | 8. Security Considerations | |||
| Because mailboxid is always generated by the server, implementations | Because MAILBOXID is always generated by the server, implementations | |||
| MUST NOT allow sieve to make an endrun around this protection by | MUST NOT allow Sieve to make an end run around this protection by | |||
| creating mailboxes with the specified ID by using ":create" and | creating mailboxes with the specified ID by using :create and | |||
| ":mailboxid" in a fileinto rule for a non-existant mailbox. | :mailboxid in a fileinto rule for a nonexistent mailbox. | |||
| Implementers are referred to the security considerations sections of | Implementers are referred to the Security Considerations sections of | |||
| [RFC5228] and [RFC8474]. | [RFC5228] and [RFC8474]. | |||
| 9. IANA considerations | 9. IANA Considerations | |||
| IANA are requested to add a capability to the sieve-extensions | ||||
| registry: | ||||
| To: iana@iana.org | ||||
| Subject: Registration of new Sieve extension | ||||
| Capability name: mailboxid | ||||
| Description: adds a test for checking mailbox existence by objectid, | ||||
| and new optional arguments to fileinto and :fcc which | ||||
| allow selecting the destination mailbox by objectid. | ||||
| RFC number: this RFC | ||||
| Contact address: The EXTRA discussion list <extra@ietf.org> | ||||
| 10. Acknowledgements | ||||
| This document borrows heavily from [RFC5490] for the matching | ||||
| mailboxexists test, and from [RFC8579] for an example of modifying | ||||
| the fileinto command. | ||||
| Thanks to Ned Freed and Ken Murchison and Alexey Melnikov for | ||||
| feedback on the EXTRA mailing list. | ||||
| 11. Changes | ||||
| (EDITOR: remove this section before publication) | ||||
| 11.1. draft-ietf-sieve-mailboxid-09 | ||||
| * update FCC-OPTS to have an intermediate production for the | ||||
| :mailboxid option, and reference "objectid" from RFC8474 as the | ||||
| valid format for the option value. | ||||
| 11.2. draft-ietf-sieve-mailboxid-08 | ||||
| * IETF110 discussion - re-add FCC-OPTS syntax, and clarify that | ||||
| :mailboxid is incompatible with :specialuse to parallel the | ||||
| fileinto behaviour | ||||
| 11.3. draft-ietf-sieve-mailboxid-07 | ||||
| * Martin Duke review - remove formal section | ||||
| * Martin Duke review - wording for section 4.1 (interaction with | ||||
| :create) | ||||
| * Ken Murchison review - fixed :special-use to :specialuse per | ||||
| RFC8579 | ||||
| 11.4. draft-ietf-sieve-mailboxid-06 | ||||
| * GENART review - fixed example to not be semantically pointless | ||||
| * GENART review - fixed !@ to @! in RFC reference mmark syntax | ||||
| 11.5. draft-ietf-sieve-mailboxid-05 | ||||
| * disallow :mailboxid and :special-use in the same fileinto action. | ||||
| 11.6. draft-ietf-sieve-mailboxid-04 | ||||
| * made RFC5490 and RFC8579 normative | ||||
| * clarified wording based on AD feedback from Barry | ||||
| 11.7. draft-ietf-sieve-mailboxid-03 | ||||
| * Fixed ABNF syntax error | ||||
| 11.8. draft-ietf-sieve-mailboxid-02 | ||||
| * removed bogus : from "mailboxidexists" test title | ||||
| * moved FCC to its own top-level section since it is not used with | ||||
| the fileinto command. | ||||
| 11.9. draft-ietf-sieve-mailboxid-01 | ||||
| * fixed idnits - RFC5228 not mentioned in the abstract | ||||
| * fixed other I-D references I had missed, oops | ||||
| 11.10. draft-ietf-sieve-mailboxid-00 | ||||
| * Adopted into working group per adoption call on list | ||||
| * Updated references to old drafts which have since been published. | ||||
| * Fixed some typoes and simplified some language. | ||||
| * Removed stray leading colon on mailboxexists (thanks Alexey) | ||||
| * Added :fcc to the IANA registration description (thanks Alexey) | ||||
| * Mentioned that variables can be expanded (thanks Alexey) | ||||
| 11.11. draft-gondwana-sieve-mailboxid-02 | ||||
| * Update document date by a couple of years! Ooops, it got | ||||
| forgotten after a WGLC which got not dissent. | ||||
| * Create xml2rfc v3 output. | ||||
| 11.12. draft-gondwana-sieve-mailboxid-01 | ||||
| * Switch to :mailboxid tagged parameter value with fallback mailbox | ||||
| name. | ||||
| * Document interaction with "mailbox". | ||||
| * Document interaction with "special-use". | IANA has added the following capability to the "Sieve Extensions" | |||
| registry at <https://www.iana.org/assignments/sieve-extensions>: | ||||
| * Document interaction with "fcc". | Capability name: mailboxid | |||
| Description: adds a test for checking mailbox existence by OBJECTID | ||||
| and new optional arguments to fileinto and :fcc that allow | ||||
| selecting the destination mailbox by OBJECTID. | ||||
| RFC number: RFC 9042 | ||||
| Contact address: EXTRA discussion list <extra@ietf.org> | ||||
| * Document security considerations around :mailboxid and :create. | 10. References | |||
| 11.13. draft-gondwana-sieve-mailboxid-00 | 10.1. Normative References | |||
| * Initial version. | [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>. | ||||
| 12. Normative References | [RFC2342] Gahrns, M. and C. Newman, "IMAP4 Namespace", RFC 2342, | |||
| DOI 10.17487/RFC2342, May 1998, | ||||
| <https://www.rfc-editor.org/info/rfc2342>. | ||||
| [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>. | |||
| [RFC8474] Gondwana, B., Ed., "IMAP Extension for Object | ||||
| Identifiers", RFC 8474, DOI 10.17487/RFC8474, September | ||||
| 2018, <https://www.rfc-editor.org/info/rfc8474>. | ||||
| [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>. | ||||
| [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | |||
| Specifications: ABNF", STD 68, RFC 5234, | Specifications: ABNF", STD 68, RFC 5234, | |||
| DOI 10.17487/RFC5234, January 2008, | DOI 10.17487/RFC5234, January 2008, | |||
| <https://www.rfc-editor.org/info/rfc5234>. | <https://www.rfc-editor.org/info/rfc5234>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| Requirement Levels", BCP 14, RFC 2119, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| DOI 10.17487/RFC2119, March 1997, | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| <https://www.rfc-editor.org/info/rfc2119>. | ||||
| [RFC2342] Gahrns, M. and C. Newman, "IMAP4 Namespace", RFC 2342, | [RFC8474] Gondwana, B., Ed., "IMAP Extension for Object | |||
| DOI 10.17487/RFC2342, May 1998, | Identifiers", RFC 8474, DOI 10.17487/RFC8474, September | |||
| <https://www.rfc-editor.org/info/rfc2342>. | 2018, <https://www.rfc-editor.org/info/rfc8474>. | |||
| [RFC8580] Murchison, K. and B. Gondwana, "Sieve Extension: File | [RFC8580] Murchison, K. and B. Gondwana, "Sieve Extension: File | |||
| Carbon Copy (FCC)", RFC 8580, DOI 10.17487/RFC8580, May | Carbon Copy (FCC)", RFC 8580, DOI 10.17487/RFC8580, May | |||
| 2019, <https://www.rfc-editor.org/info/rfc8580>. | 2019, <https://www.rfc-editor.org/info/rfc8580>. | |||
| 13. Informative References | 10.2. Informative References | |||
| [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>. | ||||
| [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>. | ||||
| [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION | [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION | |||
| 4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003, | 4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003, | |||
| <https://www.rfc-editor.org/info/rfc3501>. | <https://www.rfc-editor.org/info/rfc3501>. | |||
| [RFC4314] Melnikov, A., "IMAP4 Access Control List (ACL) Extension", | [RFC4314] Melnikov, A., "IMAP4 Access Control List (ACL) Extension", | |||
| RFC 4314, DOI 10.17487/RFC4314, December 2005, | RFC 4314, DOI 10.17487/RFC4314, December 2005, | |||
| <https://www.rfc-editor.org/info/rfc4314>. | <https://www.rfc-editor.org/info/rfc4314>. | |||
| [RFC5229] Homme, K., "Sieve Email Filtering: Variables Extension", | [RFC5229] Homme, K., "Sieve Email Filtering: Variables Extension", | |||
| RFC 5229, DOI 10.17487/RFC5229, January 2008, | RFC 5229, DOI 10.17487/RFC5229, January 2008, | |||
| <https://www.rfc-editor.org/info/rfc5229>. | <https://www.rfc-editor.org/info/rfc5229>. | |||
| [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>. | ||||
| [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>. | ||||
| Acknowledgements | ||||
| This document borrows heavily from [RFC5490] for the matching | ||||
| mailboxexists test and from [RFC8579] for an example of modifying the | ||||
| fileinto command. | ||||
| Thanks to Ned Freed, Ken Murchison, and Alexey Melnikov for feedback | ||||
| on the EXTRA mailing list. | ||||
| Author's Address | Author's Address | |||
| Bron Gondwana (editor) | Bron Gondwana (editor) | |||
| Fastmail | Fastmail | |||
| Level 2, 114 William St | Level 2 | |||
| Melbourne VIC 3000 | 114 William St | |||
| Melbourne VIC 3000 | ||||
| Australia | Australia | |||
| Email: brong@fastmailteam.com | Email: brong@fastmailteam.com | |||
| URI: https://www.fastmail.com | URI: https://www.fastmail.com | |||
| End of changes. 59 change blocks. | ||||
| 283 lines changed or deleted | 174 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/ | ||||