# JSON Meta Application Protocol

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 Google's Gmail and Microsoft's MAPI (used by Outlook). 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.

## 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. 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.

## 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."
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."
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."

## Development

JMAP started around 2014 as an internal development project by the Australian-based email provider Fastmail. Starting in 2017 a working group at the IETF has been leading the development and standardization process. 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. The WebSocket specification was later published in August 2020 as RFC 8887, and Message Disposition Notification (return receipts) in March 2021 as RFC 9007.
Further JMAP extensions have been submitted to the IESG as proposed standards: blob management (RFC 9404), Quotas (RFC 9425), Contacts (RFC 9610), Sharing (RFC 9670) and Sieve mail filtering (RFC 9661). Other ongoing JMAP drafts at IETF are for dealing with calendars, tasks, implementation profiles, file storage, and use of VAPID with WebPush. The working group originally set milestones for some of these to be finalised by the end of 2020.

## Implementations

Servers:
* Since its release of version 3.6.0 in 2021, Apache Software Foundation’s free mail-server Apache James has included support for the JMAP RFCs. The OpenPaas collaboration platform implements its email and webmail UI using James and JMAP.
* Cyrus IMAP provisionally supports the JMAP protocol standards as of version 3.8.3, released in May 2024, when built with this functionality.
* Stalwart Mail Server is a scalable open-source mail server written in Rust with full support for JMAP Core, JMAP Mail, JMAP over WebSocket at IMAP4rev2.
Clients:
* Mailtemi is a JMAP/MS Graph/IMAP email app for iOS and Android. It supports multiple email accounts, contacts, and calendars.
* Ltt.rs is a proof of concept email client for Android that supports only JMAP.
* Twake Mail is an open source app client for iOS and Android developed by Linagora.