Internet-Draft IMAP JMAPACCESS January 2023
Gulbrandsen Expires 7 July 2023 [Page]
Workgroup:
EXTRA
Internet-Draft:
draft-ietf-extra-jmapaccess-00
Published:
Intended Status:
Standards Track
Expires:
Author:
A. Gulbrandsen
ICANN

The JMAPACCESS Extension for IMAP

Abstract

This document defines an IMAP extension to let clients know that the messages in this IMAP server are also available via JMAP, and how. It is intended for clients that want to migrate gradually to JMAP.

Status of This Memo

This Internet-Draft is submitted in full conformance with the 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 and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 7 July 2023.

Table of Contents

1. Introduction

A few IMAP client maintainers have asked for ways to use features that are available in JMAP without having to drop their expensively tested IMAP code.

This document provides a server with a way to declare that the messages in its mailstore are also available via JMAP. For simplicity, only a complete equivalence is supported (the same set of messages are available via both IMAP and JMAP).

2. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

3. Details

By advertising the JMAPACCESS capability, the server asserts that if a message has a particular object ID when accessed via either IMAP or JMAP (see [RFC9051] and [RFC8620] respectively), then the same message is accessible via the other protocol, and it has the same ID.

The server MUST also advertise the OBJECTID extension, defined by [RFC8474]. The JMAP session resource that allows access to the same messages is called "the JMAP server" below.

This specification does not affect message lifetime: If a client accesses a message via IMAP and half a second later via JMAP, then the message may have been deleted.

The client requests the URL of the JMAP server by issuing ENABLE JMAPACCESS while in authenticated or selected state.

When the server issues ENABLED JMAPACCESS, the server considers the way the client authenticated. If the same authentication would work with the JMAP server, then the server MUST also send an untagged OK response with a JMAPACCESS response code containing a link to the JMAP server.

If the authentication would not succeed with the JMAP server, then the server SHOULD send an untagged OK response with human-readable text to help client developers understand why this authentication would not work with the JMAP server. In this case, the human-readable text MUST NOT contain any personal data, or other data that cannot be forwarded to the client developers.

Servers are encouraged to report the same message flags and other data via both protocols, as far as possible.

Note that all JMAP servers support internationalized email addresses (see [RFC6530]). If this IMAP server does not, or the IMAP client does not issue ENABLE UTF8=ACCEPT (see [RFC6855]), then there is a possibility that the client receives accurate address fields via JMAP and downgraded fields via IMAP (see (see [RFC6857] and [RFC6858] for examples).

Open issue: What about MAILBOXID?

4. The JMAPACCESS Response Code

The JMAPACCESS response code is followed by a single link to a JMAP session resource. The server/mailstore at that location is referenced as "the JMAP server" in this document.

The formal syntax in [RFC9051] is extended thus:

resp-code-jmap = "JMAPACCESS" SP string

resp-text-code =/ resp-code-jmap

Open issue: This means that the link cannot contain a "]" character. This seems like a nonissue in practice but difficult as a matter of protocol hygiene.

5. IANA Considerations

The IANA is requested to add the JMAPACCESS response code to the IMAP Response Codes registry.

6. Security Considerations

This extension reveals to clients why they cannot auhenticate to the JMAP server. One normally does not want to reveal anything about why a client cannot authenticate, for fear of giving useful information to an intruder.

However, in this case the client has already authenticated via IMAP. By doing so the client already gained access to all of the same mail. The authors believe that the debugging value of the OK response far outweighs its security concerns.

7. References

7.1. Normative References

[RFC8474]
Gondwana, B., Ed., "IMAP Extension for Object Identifiers", RFC 8474, DOI 10.17487/RFC8474, , <https://www.rfc-editor.org/info/rfc8474>.
[RFC9051]
Melnikov, A., Ed. and B. Leiba, Ed., "Internet Message Access Protocol (IMAP) - Version 4rev2", RFC 9051, DOI 10.17487/RFC9051, , <https://www.rfc-editor.org/info/rfc9051>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.

7.2. Informative References

[RFC6530]
Klensin, J. and Y. Ko, "Overview and Framework for Internationalized Email", RFC 6530, DOI 10.17487/RFC6530, , <https://www.rfc-editor.org/info/rfc6530>.
[RFC6855]
Resnick, P., Ed., Newman, C., Ed., and S. Shen, Ed., "IMAP Support for UTF-8", RFC 6855, DOI 10.17487/RFC6855, , <https://www.rfc-editor.org/info/rfc6855>.
[RFC6857]
Fujiwara, K., "Post-Delivery Message Downgrading for Internationalized Email Messages", RFC 6857, DOI 10.17487/RFC6857, , <https://www.rfc-editor.org/info/rfc6857>.
[RFC6858]
Gulbrandsen, A., "Simplified POP and IMAP Downgrading for Internationalized Email", RFC 6858, DOI 10.17487/RFC6858, , <https://www.rfc-editor.org/info/rfc6858>.
[RFC8620]
Jenkins, N. and C. Newman, "The JSON Meta Application Protocol (JMAP)", RFC 8620, DOI 10.17487/RFC8620, , <https://www.rfc-editor.org/info/rfc8620>.

Author's Address

Arnt Gulbrandsen
ICANN
6 Rond Point Schumann, Bd. 1
1040 Brussels
Belgium