JSON Meta Application Protocol
The JSON Meta Application Protocol (JMAP) is an Internet protocol for handling the submission and access/synchronization of email, developed as an alternative to IMAP/SMTP and proprietary email APIs that only work with 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 WebSocket and other support is currently in the works.[2]
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 wrote that "IMAP is resource hungry, difficult for developers to learn, and does not work well for network-constrained mobile devices." And they noted that it interfaces in a complicated way with other protocols like SMTP, CalDAV, and CardDAV, and with calendars and contacts.[3]
They believe that IMAP and SMTP are ill-suited to modern mobile networks and in high-latency scenarios, and as a result, this has led to a stagnation in the quality of (especially free) email clients, and to a proliferation of proprietary protocols for instance for Google's Gmail and Microsoft's Outlook, all of which are meant to mitigate the major drawbacks of using the current generation of popular protocols.[4]
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."[5]
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."[6]
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."[7]
Development
JMAP started around 2014 as an internal development project by the Australia-based email provider Fastmail.[8]
Starting in 2017 a working group at the IETF[9] has been leading the development and standardization process[10]. The documents for the main protocol were completed in July[11] and August[12] of 2019 by Neil Jenkins of Fastmail and Chris Newman of Oracle.[13][14]
Other ongoing drafts at IETF[15] are for Calendars[16], Message Disposition Notification[17] (return receipt), quotas[18], S/MIME signature verification[19], and WebSocket[20].
Implementations
- As of version 3.0 Apache Software Foundation’s free mail-server Apache James has “experimental” support for JMAP.[21][22] (See also the OpenPaas collaboration platform[23], which provides a webmail implementation supporting James and JMAP.[24])
- Cyrus IMAP is adding JMAP as of 3.1.x. In July of 2018 the documentation stated that "future Cyrus stable releases will implement JMAP" once the specs became standardized, and some versions 3.0.x implemented a preliminary version of the protocol.[25] JMAP support was added to the stable release in May 2020 with version 3.2.0 [26]
- Ltt.rs is a proof of concept email client for Android that only supports JMAP.[27]
See also
- List of mail server software
- Comparison of email clients
- Comparison of mail servers
- Fastmail (which also discusses it on its blog[28])
- IMAP
- Post Office Protocol (POP)
- Push-IMAP
- Simple Mail Access Protocol
- Simple Mail Transfer Protocol
- Webmail
References
- ^ "JSON Meta Application Protocol (JMAP)". Retrieved 2020-05-03.
- ^ "Jmap Status Pages". Internet Engineering Task Force.
- ^ "JMAP: A modern, open email protocol". IETF News.
- ^ "JMAP".
- ^ "JMAP: A modern, open email protocol". IETF News.
- ^ "JMAP is on the home straight". Fastmail blog.
- ^ "Dear Mr Laguna, IMAP is Not the Right Protocol for Chat". atmail blog.
- ^ "FOSDEM 2019: IMAP, JMAP, and the Future of Open Email Standards". Peer tube. Retrieved 2019-02-16.
- ^ "JSON Mail Access Protocol (jmap)". Internet Engineering Task Force.
- ^ "JSON Mail Access Protocol (jmap)". Retrieved 2019-02-16.
- ^ "The JSON Meta Application Protocol (JMAP)". Internet Engineering Task Force.
- ^ "The JSON Meta Application Protocol (JMAP) for Mail". Internet Engineering Task Force.
- ^ "The JSON Meta Application Protocol (JMAP)". Internet Engineering Task Force.
- ^ "JMAP is on the home straight". Fastmail blog. 2018-12-27.
- ^ "Jmap Status Pages". Internet Engineering Task Force.
- ^ "draft-ietf-jmap-calendars". Internet Engineering Task Force.
- ^ "draft-ietf-jmap-mdn". Internet Engineering Task Force.
- ^ "draft-ietf-jmap-quotas". Internet Engineering Task Force.
- ^ "draft-ietf-jmap-smime". Internet Engineering Task Force.
- ^ "draft-ietf-jmap-websocket". Internet Engineering Task Force.
- ^ "Apache James Project – Apache James Server 3 - Release Notes". Retrieved 2019-02-16.
{{cite web}}
: Cite has empty unknown parameters:|day=
and|month=
(help) - ^ "Apache James Enterprise Mail Server Features".
- ^ "OpenPaaS Documentation".
- ^ "Open source JMAP compliant servers?". Stack Overflow.
- ^ "JMAP support Cyrus Docs v3.0.7 (stable)".
- ^ "Cyrus Release Notes version 3.2.0".
- ^ "Ltt.rs for Android Github repository".
- ^ "Fastmail blog".