JSON Meta Application Protocol

Last updated
JSON Meta Application Protocol (JMAP)
International standard
  • Core: RFC   8620
  • Mail: RFC   8621
  • WebSocket: RFC   8887
  • MDN: RFC   9007
  • S/MIME: RFC   9219
  • Blobs: RFC   9404
  • Quotas: RFC   9425
Developed by
IntroducedJuly 18, 2019;4 years ago (2019-07-18)
IndustryNetwork communications
Website jmap.io

The JSON Meta Application Protocol (JMAP) is a set of related open Internet Standard protocols for handling email. JMAP is implemented using JSON APIs over HTTP and has been developed as an alternative to IMAP/SMTP and proprietary email APIs such as Gmail and Outlook. [1] Additional protocols and data models being built on top of the core of JMAP for handling contacts and calendar synchronization are meant to be potential replacements for CardDAV and CalDAV, and other support is currently in the works. [2]

Contents

Motivation

Developers Bron Gondwana and Neil Jenkins wrote on the Internet Engineering Task Force (IETF) news site that "the current open protocols connecting email clients and servers, such as IMAP, were not designed for the modern age." They cited IMAP's complexity, high resource use, poor adaptability to the network constraints of modern mobile devices, and complex interactions with other protocols like SMTP, CalDAV, and CardDAV. [3] They believe this has resulted in a stagnation in the quality of (especially free) email clients, and the creation of proprietary protocols to overcome these limitations, for instance MAPI, used by Microsoft's Exchange Server and Outlook email products. [1]

Design

Gondwana and Jenkins wrote, "JMAP is the result of efforts to address shortcomings [in existing protocols], providing a modern, efficient, easy-to-use API, built on many years of experience and field testing." [3]

The protocol was developed with the intention of providing a modern open, reliable, and easy-to-use solution, and as a result it relies heavily upon the commonly-implemented JSON (JavaScript Object Notation). According to Gondwana of Fastmail—which has been a leading developer of the protocol -- "The use of JSON and HTTP as the basis of JMAP was always a key point — it means that people wanting to build something on top of email don’t have to re-implement complex parsers or find a software library in order to get started." [4]

After atmail decided to implement JMAP, CEO Dave Richards wrote in 2018 that "the complexities required to implement IMAP in both user and server side software has resulted in user difficulties and a lack of software options, along with a rigid user experience...The new JMAP protocol solves the existing issues and is modular enough to take advantage of future technology. JMAP makes email better." [5]

Development

JMAP started around 2014 as an internal development project by the Australian-based email provider Fastmail. [6] Starting in 2017 a working group at the IETF has been leading the development and standardization process. [7] The core protocol and mail specifications were published in July and August 2019 by Neil Jenkins of Fastmail and Chris Newman of Oracle, as RFC 8620 and RFC 8621. [4] [8] [9] The WebSocket specification was later published in August 2020 as RFC 8887, and Message Disposition Notification (return receipts) in March 2021 as RFC 9007. [10] [11]

Other ongoing JMAP drafts at IETF are for dealing with calendars, contacts, tasks, and Sieve mail filtering. [2] The working group originally set milestones for these to be finalised by the end of 2020; [7] as of November 2023, two further JMAP extensions have been submitted to the IESG as proposed standards: blob management ( RFC   9404), and Quotas ( RFC   9425).

Implementations

See also

Related Research Articles

<span class="mw-page-title-main">Email</span> Mail sent using electronic means

Electronic mail is a method of transmitting and receiving messages using electronic devices. It was conceived in the late–20th century as the digital version of, or counterpart to, mail. Email is a ubiquitous and very widely used communication medium; in current use, an email address is often treated as a basic and necessary part of many processes in business, commerce, government, education, entertainment, and other spheres of daily life in most countries.

In computing, the Internet Message Access Protocol (IMAP) is an Internet standard protocol used by email clients to retrieve email messages from a mail server over a TCP/IP connection. IMAP is defined by RFC 9051.

In computing, the Post Office Protocol (POP) is an application-layer Internet standard protocol used by e-mail clients to retrieve e-mail from a mail server. Today, POP version 3 (POP3) is the most commonly used version. Together with IMAP, it is one of the most common protocols for email retrieval.

<span class="mw-page-title-main">Email client</span> Computer program used to access and manage a users email

An email client, email reader or, more formally, message user agent (MUA) or mail user agent is a computer program used to access and manage a user's email.

<span class="mw-page-title-main">Application Configuration Access Protocol</span>

The Application Configuration Access Protocol (ACAP) is a protocol for storing and synchronizing general configuration and preference data. It was originally developed so that IMAP clients can easily access address books, user options, and other data on a central server and be kept in synch across all clients.

WebDAV is a set of extensions to the Hypertext Transfer Protocol (HTTP), which allows user agents to collaboratively author contents directly in an HTTP web server by providing facilities for concurrency control and namespace operations, thus allowing Web to be viewed as a writeable, collaborative medium and not just a read-only medium. WebDAV is defined in RFC 4918 by a working group of the Internet Engineering Task Force (IETF).

An email address identifies an email box to which messages are delivered. While early messaging systems used a variety of formats for addressing, today, email addresses follow a set of specific rules originally standardized by the Internet Engineering Task Force (IETF) in the 1980s, and updated by RFC 5322 and 6854. The term email address in this article refers to just the addr-spec in Section 3.4 of RFC 5322. The RFC defines address more broadly as either a mailbox or group. A mailbox value can be either a name-addr, which contains a display-name and addr-spec, or the more common addr-spec alone.

The Internet Calendaring and Scheduling Core Object Specification (iCalendar) is a media type which allows users to store and exchange calendaring and scheduling information such as events, to-dos, journal entries, and free/busy information, and together with its associated standards has been a cornerstone of the standardization and interoperability of digital calendars across different vendors. Files formatted according to the specification usually have an extension of .ics. With supporting software, such as an email reader or calendar application, recipients of an iCalendar data file can respond to the sender easily or counter-propose another meeting date/time. The file format is specified in a proposed Internet standard for calendar data exchange. The standard and file type are sometimes referred to as "iCal", which was the name of the Apple Inc. calendar program until 2012, which provides one of the implementations of the standard.

A Service record is a specification of data in the Domain Name System defining the location, i.e., the hostname and port number, of servers for specified services. It is defined in RFC 2782, and its type code is 33. Some Internet protocols such as the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP) often require SRV support by network elements.

The Cyrus IMAP server is electronic mail server software developed by Carnegie Mellon University. It differs from other Internet Message Access Protocol (IMAP) server implementations in that it is generally intended to be run on sealed servers, where normal users cannot log in.

Calendaring Extensions to WebDAV, or CalDAV, is an Internet standard allowing a client to access and manage calendar data along with the ability to schedule meetings with users on the same or on remote servers. It lets multiple users in different locations share, search and synchronize calendar data. It extends the WebDAV specification and uses the iCalendar format for the calendar data. The access protocol is defined by RFC 4791. Extensions to CalDAV for scheduling are standardized as RFC 6638. The protocol is used by many important open-source applications.

In cryptography, CRAM-MD5 is a challenge–response authentication mechanism (CRAM) based on the HMAC-MD5 algorithm. As one of the mechanisms supported by the Simple Authentication and Security Layer (SASL), it is often used in email software as part of SMTP Authentication and for the authentication of POP and IMAP users, as well as in applications implementing LDAP, XMPP, BEEP, and other protocols.

A media type is a two-part identifier for file formats and format contents transmitted on the Internet. Their purpose is somewhat similar to file extensions in that they identify the intended data format. The Internet Assigned Numbers Authority (IANA) is the official authority for the standardization and publication of these classifications. Media types were originally defined in Request for Comments RFC 2045 (MIME) Part One: Format of Internet Message Bodies in November 1996 as a part of the MIME specification, for denoting type of email message content and attachments; hence the original name, MIME type. Media types are also used by other internet protocols such as HTTP and document file formats such as HTML, for similar purposes.

OAuth is an open standard for access delegation, commonly used as a way for internet users to grant websites or applications access to their information on other websites but without giving them the passwords. This mechanism is used by companies such as Amazon, Google, Meta Platforms, Microsoft, and Twitter to permit users to share information about their accounts with third-party applications or websites.

<span class="mw-page-title-main">Barry Leiba</span> American computer scientist and software researcher

Barry Leiba is a computer scientist and software researcher. He retired from IBM's Thomas J. Watson Research Center in Hawthorne, New York in February 2009, and now works for FutureWei Technologies as a Director of Internet Standards. His work has focused for many years on electronic mail and anti-spam technology, on mobile computing and the Internet of things, and on Internet standards.

<span class="mw-page-title-main">WebFinger</span> Protocol for the discovery of information about people and things identified by a URI

WebFinger is a protocol specified by the Internet Engineering Task Force IETF in RFC 7033 that allows for discovery of information about people and things identified by a URI. Information about a person might be discovered via an acct: URI, for example, which is a URI that looks like an email address.

<span class="mw-page-title-main">Fastmail</span> Australian email service provider

Fastmail is an email hosting company based in Melbourne, Australia. In addition to its Fastmail-branded services, the company also operates Topicbox, a mailing list service, and Pobox, an email service it acquired in 2015.

HTTP/2 is a major revision of the HTTP network protocol used by the World Wide Web. It was derived from the earlier experimental SPDY protocol, originally developed by Google. HTTP/2 was developed by the HTTP Working Group of the Internet Engineering Task Force (IETF). HTTP/2 is the first new version of HTTP since HTTP/1.1, which was standardized in RFC 2068 in 1997. The Working Group presented HTTP/2 to the Internet Engineering Steering Group (IESG) for consideration as a Proposed Standard in December 2014, and IESG approved it to publish as Proposed Standard on February 17, 2015. The HTTP/2 specification was published as RFC 7540 on May 14, 2015.

A mailbox provider, mail service provider or, somewhat improperly, email service provider is a provider of email hosting. It implements email servers to send, receive, accept, and store email for other organizations or end users, on their behalf.

System for Cross-domain Identity Management (SCIM) is a standard for automating the exchange of user identity information between identity domains, or IT systems.

References

  1. 1 2 "JSON Meta Application Protocol Specification (JMAP)". jmap.io. Fastmail . Retrieved 2020-05-03.
  2. 1 2 "Jmap Status Pages". IETF Tools. Internet Engineering Task Force.
  3. 1 2 Gondwana, Bron; Jenkins, Neil (6 May 2019). "JMAP: A modern, open email protocol". IETF Blog. Internet Engineering Task Force. Retrieved 25 September 2020.
  4. 1 2 Gondwana, Bron (27 December 2018). "JMAP is on the home straight". Fastmail Blog. Fastmail. Retrieved 25 September 2020.
  5. "Dear Mr Laguna, IMAP is Not the Right Protocol for Chat". atmail blog. 20 April 2018.
  6. "FOSDEM 2019: IMAP, JMAP, and the Future of Open Email Standards". Peer tube. Retrieved 2019-02-16.
  7. 1 2 "JSON Mail Access Protocol (jmap)". IETF Datatracker. Internet Engineering Task Force. Retrieved 25 September 2020.
  8. Jenkins, Neil; Newman, Chris (July 2019). "RFC 8620 - The JSON Meta Application Protocol (JMAP)". Internet Engineering Task Force. Retrieved 25 September 2020.
  9. Jenkins, Neil; Newman, Chris (August 2019). "RFC 8621 - The JSON Meta Application Protocol (JMAP) for Mail". Internet Engineering Task Force. Retrieved 25 September 2020.
  10. Murchison, Kenneth (August 2020). "RFC 8887 - A JSON Meta Application Protocol (JMAP) Subprotocol for WebSocket". Internet Engineering Task Force. Retrieved 25 September 2020.
  11. Ouazana, Raphaël (March 2021). "RFC 9007 - Handling Message Disposition Notification with the JSON Meta Application Protocol (JMAP)". Internet Engineering Task Force. Retrieved 10 April 2021.
  12. "Apache James Project – Apache James Server 3 - Release Notes" . Retrieved 2019-02-16.
  13. "Apache James Enterprise Mail Server Features".
  14. "OpenPaaS Documentation".
  15. "Cyrus IMAP 3.2.0 Release Notes". Cyrus IMAP. 4 May 2020. Retrieved 25 September 2020.
  16. "Ltt.rs for Android Github repository". GitHub .
  17. "Stalwart JMAP Server Github repository". GitHub .