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/ |