draft-ietf-extra-sieve-mailboxid-00.txt | draft-ietf-extra-sieve-mailboxid-01.txt | |||
---|---|---|---|---|
EXTRA B. Gondwana, Ed. | EXTRA B. Gondwana, Ed. | |||
Internet-Draft Fastmail | Internet-Draft Fastmail | |||
Updates: 5228 (if approved) 30 July 2020 | Updates: 5228 (if approved) 30 July 2020 | |||
Intended status: Standards Track | Intended status: Standards Track | |||
Expires: 31 January 2021 | Expires: 31 January 2021 | |||
Sieve Email Filtering: delivery by mailboxid | Sieve Email Filtering: delivery by mailboxid | |||
draft-ietf-extra-sieve-mailboxid-00 | draft-ietf-extra-sieve-mailboxid-01 | |||
Abstract | Abstract | |||
The OBJECTID capability of the IMAP protocol (RFC8474) allows clients | The OBJECTID capability of the IMAP protocol (RFC8474) allows clients | |||
to identify mailboxes by a unique identifier which survives rename. | to identify mailboxes by a unique identifier which survives rename. | |||
This document extends the Sieve mail filtering language (RFC5228) to | This document extends the Sieve mail filtering language (RFC5228) to | |||
allow using that same unique identifier as a target for fileinto | allow using that same unique identifier as a target for fileinto | |||
rules, and for testing the existance of mailboxes. | rules, and for testing the existance of mailboxes. | |||
skipping to change at page 2, line 30 ¶ | skipping to change at page 2, line 30 ¶ | |||
4.1. Interaction with "mailbox" extension . . . . . . . . . . 4 | 4.1. Interaction with "mailbox" extension . . . . . . . . . . 4 | |||
4.2. Interaction with "specialuse" extension . . . . . . . . . 4 | 4.2. Interaction with "specialuse" extension . . . . . . . . . 4 | |||
4.3. Interaction with "fcc" extension . . . . . . . . . . . . 5 | 4.3. Interaction with "fcc" extension . . . . . . . . . . . . 5 | |||
5. Test ":mailboxidexists" . . . . . . . . . . . . . . . . . . . 5 | 5. Test ":mailboxidexists" . . . . . . . . . . . . . . . . . . . 5 | |||
6. Interaction with variables extension . . . . . . . . . . . . 6 | 6. Interaction with variables extension . . . . . . . . . . . . 6 | |||
7. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 6 | 7. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
8. Security considerations . . . . . . . . . . . . . . . . . . . 6 | 8. Security considerations . . . . . . . . . . . . . . . . . . . 6 | |||
9. IANA considerations . . . . . . . . . . . . . . . . . . . . . 7 | 9. IANA considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 | 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 | |||
11. Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 11. Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
11.1. draft-ietf-sieve-mailboxid-00 . . . . . . . . . . . . . 7 | 11.1. draft-ietf-sieve-mailboxid-01 . . . . . . . . . . . . . 7 | |||
11.2. draft-gondwana-sieve-mailboxid-02 . . . . . . . . . . . 7 | 11.2. draft-ietf-sieve-mailboxid-00 . . . . . . . . . . . . . 7 | |||
11.3. draft-gondwana-sieve-mailboxid-01 . . . . . . . . . . . 8 | 11.3. draft-gondwana-sieve-mailboxid-02 . . . . . . . . . . . 8 | |||
11.4. draft-gondwana-sieve-mailboxid-00 . . . . . . . . . . . 8 | 11.4. draft-gondwana-sieve-mailboxid-01 . . . . . . . . . . . 8 | |||
11.5. draft-gondwana-sieve-mailboxid-00 . . . . . . . . . . . 8 | ||||
12. Normative References . . . . . . . . . . . . . . . . . . . . 8 | 12. Normative References . . . . . . . . . . . . . . . . . . . . 8 | |||
13. Informative References . . . . . . . . . . . . . . . . . . . 9 | 13. Informative References . . . . . . . . . . . . . . . . . . . 9 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
1. Introduction | 1. Introduction | |||
Sieve rules are sometimes created using graphical interfaces which | [RFC5228] Sieve rules are sometimes created using graphical | |||
allow users to select the mailbox to be used as a target for a rule. | interfaces which allow users to select the mailbox to be used as a | |||
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 multi-step 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. another | |||
IMAP client) the rules will get out of sync. | IMAP client) the rules will get out of sync. | |||
By extending "fileinto" to reference an immutable mailboxid, sieve | By extending "fileinto" to reference the immutable mailboxid | |||
rules can continue to target the same mailbox, even if it gets | specified by [RFC8474] , sieve rules can continue to target the same | |||
renamed. | 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 BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 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 | |||
skipping to change at page 6, line 42 ¶ | skipping to change at page 6, line 42 ¶ | |||
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. | |||
7. Formal Syntax | 7. Formal Syntax | |||
test /= "mailboxidexists" string-list | test /= "mailboxidexists" string-list | |||
tag /= ":mailboxid" string | tag /= ":mailboxid" string | |||
If [I-D.ietf-extra-sieve-fcc] is supported: | If [RFC8580] is supported: | |||
FCC =/ [":mailboxid" <mailboxid: string>] | FCC =/ [":mailboxid" <mailboxid: string>] | |||
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 endrun 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 non-existant mailbox. | |||
skipping to change at page 7, line 26 ¶ | skipping to change at page 7, line 26 ¶ | |||
Capability name: mailboxid | Capability name: mailboxid | |||
Description: adds a test for checking mailbox existence by objectid, | Description: adds a test for checking mailbox existence by objectid, | |||
and new optional arguments to fileinto and :fcc which | and new optional arguments to fileinto and :fcc which | |||
allow selecting the destination mailbox by objectid. | allow selecting the destination mailbox by objectid. | |||
RFC number: this RFC | RFC number: this RFC | |||
Contact address: The EXTRA discussion list <extra@ietf.org> | Contact address: The EXTRA discussion list <extra@ietf.org> | |||
10. Acknowledgements | 10. Acknowledgements | |||
This document borrows heavily from [RFC5490] for the matching | This document borrows heavily from [RFC5490] for the matching | |||
mailboxexists test, and from [I-D.ietf-extra-sieve-special-use] for | mailboxexists test, and from [RFC8579] for an example of modifying | |||
an example of modifying the fileinto command. | the fileinto command. | |||
Thanks to Ned Freed and Ken Murchison and Alexey Melnikov for | Thanks to Ned Freed and Ken Murchison and Alexey Melnikov for | |||
feedback on the EXTRA mailing list. | feedback on the EXTRA mailing list. | |||
11. Changes | 11. Changes | |||
(EDITOR: remove this section before publication) | (EDITOR: remove this section before publication) | |||
11.1. draft-ietf-sieve-mailboxid-00 | 11.1. draft-ietf-sieve-mailboxid-01 | |||
* fixed idnits - RFC5228 not mentioned in the abstract | ||||
* fixed other I-D references I had missed, oops | ||||
11.2. draft-ietf-sieve-mailboxid-00 | ||||
* Adopted into working group per adoption call on list | * Adopted into working group per adoption call on list | |||
* Updated references to old drafts which have since been published. | * Updated references to old drafts which have since been published. | |||
* Fixed some typoes and simplified some language. | * Fixed some typoes and simplified some language. | |||
* Removed stray leading colon on mailboxexists (thanks Alexey) | * Removed stray leading colon on mailboxexists (thanks Alexey) | |||
* Added :fcc to the IANA registration description (thanks Alexey) | * Added :fcc to the IANA registration description (thanks Alexey) | |||
skipping to change at page 7, line 47 ¶ | skipping to change at page 8, line 4 ¶ | |||
* Adopted into working group per adoption call on list | * Adopted into working group per adoption call on list | |||
* Updated references to old drafts which have since been published. | * Updated references to old drafts which have since been published. | |||
* Fixed some typoes and simplified some language. | * Fixed some typoes and simplified some language. | |||
* Removed stray leading colon on mailboxexists (thanks Alexey) | * Removed stray leading colon on mailboxexists (thanks Alexey) | |||
* Added :fcc to the IANA registration description (thanks Alexey) | * Added :fcc to the IANA registration description (thanks Alexey) | |||
* Mentioned that variables can be expanded (thanks Alexey) | * Mentioned that variables can be expanded (thanks Alexey) | |||
11.2. draft-gondwana-sieve-mailboxid-02 | 11.3. draft-gondwana-sieve-mailboxid-02 | |||
* Update document date by a couple of years! Ooops, it got | * Update document date by a couple of years! Ooops, it got | |||
forgotten after a WGLC which got not dissent. | forgotten after a WGLC which got not dissent. | |||
* Create xml2rfc v3 output. | * Create xml2rfc v3 output. | |||
11.3. draft-gondwana-sieve-mailboxid-01 | 11.4. draft-gondwana-sieve-mailboxid-01 | |||
* Switch to :mailboxid tagged parameter value with fallback mailbox | * Switch to :mailboxid tagged parameter value with fallback mailbox | |||
name. | name. | |||
* Document interaction with "mailbox". | * Document interaction with "mailbox". | |||
* Document interaction with "special-use". | * Document interaction with "special-use". | |||
* Document interaction with "fcc". | * Document interaction with "fcc". | |||
* Document security considerations around :mailboxid and :create. | * Document security considerations around :mailboxid and :create. | |||
11.4. draft-gondwana-sieve-mailboxid-00 | 11.5. draft-gondwana-sieve-mailboxid-00 | |||
* Initial version. | * Initial version. | |||
12. Normative References | 12. Normative References | |||
[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>. | ||||
[RFC8474] Gondwana, B., Ed., "IMAP Extension for Object | ||||
Identifiers", RFC 8474, DOI 10.17487/RFC8474, September | ||||
2018, <https://www.rfc-editor.org/info/rfc8474>. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[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>. | ||||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC2342] Gahrns, M. and C. Newman, "IMAP4 Namespace", RFC 2342, | [RFC2342] Gahrns, M. and C. Newman, "IMAP4 Namespace", RFC 2342, | |||
DOI 10.17487/RFC2342, May 1998, | DOI 10.17487/RFC2342, May 1998, | |||
<https://www.rfc-editor.org/info/rfc2342>. | <https://www.rfc-editor.org/info/rfc2342>. | |||
[RFC8474] Gondwana, B., Ed., "IMAP Extension for Object | ||||
Identifiers", RFC 8474, DOI 10.17487/RFC8474, September | ||||
2018, <https://www.rfc-editor.org/info/rfc8474>. | ||||
[RFC8580] Murchison, K. and B. Gondwana, "Sieve Extension: File | ||||
Carbon Copy (FCC)", RFC 8580, DOI 10.17487/RFC8580, May | ||||
2019, <https://www.rfc-editor.org/info/rfc8580>. | ||||
13. Informative References | 13. Informative References | |||
[RFC5490] Melnikov, A., "The Sieve Mail-Filtering Language -- | [RFC5490] Melnikov, A., "The Sieve Mail-Filtering Language -- | |||
Extensions for Checking Mailbox Status and Accessing | Extensions for Checking Mailbox Status and Accessing | |||
Mailbox Metadata", RFC 5490, DOI 10.17487/RFC5490, March | Mailbox Metadata", RFC 5490, DOI 10.17487/RFC5490, March | |||
2009, <https://www.rfc-editor.org/info/rfc5490>. | 2009, <https://www.rfc-editor.org/info/rfc5490>. | |||
[I-D.ietf-extra-sieve-special-use] | ||||
Bosch, S., "Sieve Email Filtering: Delivering to Special- | ||||
Use Mailboxes", Work in Progress, Internet-Draft, draft- | ||||
ietf-extra-sieve-special-use-05, 24 January 2019, | ||||
<https://tools.ietf.org/html/draft-ietf-extra-sieve- | ||||
special-use-05>. | ||||
[RFC5229] Homme, K., "Sieve Email Filtering: Variables Extension", | ||||
RFC 5229, DOI 10.17487/RFC5229, January 2008, | ||||
<https://www.rfc-editor.org/info/rfc5229>. | ||||
[RFC8579] Bosch, S., "Sieve Email Filtering: Delivering to Special- | [RFC8579] Bosch, S., "Sieve Email Filtering: Delivering to Special- | |||
Use Mailboxes", RFC 8579, DOI 10.17487/RFC8579, May 2019, | Use Mailboxes", RFC 8579, DOI 10.17487/RFC8579, May 2019, | |||
<https://www.rfc-editor.org/info/rfc8579>. | <https://www.rfc-editor.org/info/rfc8579>. | |||
[RFC8580] Murchison, K. and B. Gondwana, "Sieve Extension: File | ||||
Carbon Copy (FCC)", RFC 8580, DOI 10.17487/RFC8580, May | ||||
2019, <https://www.rfc-editor.org/info/rfc8580>. | ||||
[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>. | |||
[RFC5229] Homme, K., "Sieve Email Filtering: Variables Extension", | ||||
RFC 5229, DOI 10.17487/RFC5229, January 2008, | ||||
<https://www.rfc-editor.org/info/rfc5229>. | ||||
[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>. | |||
[I-D.ietf-extra-sieve-fcc] | ||||
Murchison, K. and B. Gondwana, "Sieve Extension: File | ||||
Carbon Copy (Fcc)", Work in Progress, Internet-Draft, | ||||
draft-ietf-extra-sieve-fcc-09, 13 January 2019, | ||||
<https://tools.ietf.org/html/draft-ietf-extra-sieve-fcc- | ||||
09>. | ||||
Author's Address | Author's Address | |||
Bron Gondwana (editor) | Bron Gondwana (editor) | |||
Fastmail | Fastmail | |||
Level 2, 114 William St | Level 2, 114 William St | |||
Melbourne VIC 3000 | 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. 18 change blocks. | ||||
48 lines changed or deleted | 43 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |