draft-ietf-extra-sieve-mailboxid-09.txt   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/