Filter by topic and date
JMAP: A modern, open email protocol
6 May 2019
The new JMAP protocol addresses shortcomings of previous open protocols connecting email clients and servers were not designed for the modern age. JMAP is the result of efforts to address shortcomings, providing a modern, efficient, easy-to-use API, built on many years of experience and field testing.
![JMAP: A modern, open email protocol](../../media/images/future-of-email_n6Z2TCa.original.jpg)
Everybody uses email. However, the current open protocols connecting email clients and servers, such as IMAP, were not designed for the modern age. IMAP is resource hungry, difficult for developers to learn, and does not work well for network-constrained mobile devices. The combination of IMAP with other protocols, such as SMTP, CalDAV, and CardDAV, for a full email client experience with calendars and contacts is even more complicated for developers to learn and creates user difficulty with partial authentication failures.
![JMAP email protocol in use](../../media/images/JMAP-code-screenshot_xFi2Hs5.original.png)
This environment has led to a stagnation in good email clients and limited innovation from email developers. Many new clients and extensions are just for selected large email providers. Proprietary protocols have become the alternative to IMAP, but they are walled gardens, limiting both users and developers. We feel an open solution is necessary.
JMAP is the result. It is a modern, efficient, easy-to-use API, built on many years of experience and field testing at FastMail, and refined with the collective expertise of many email developers at the IETF. Its robust data synchronization model is flexible enough to go beyond email, so we can standardize contacts and calendar sync via the same method in the future to fully match the capabilities of proprietary groupware protocols..
We believe this free and open standard will help developers around the world work together to make email better for everyone.
JMAP and IETF
The IETF process has made JMAP a better and more robust protocol more regular, more general, and more easily implemented in a wide range of existing servers. We appreciate all the effort that members of the JMAP working group have put into improving the protocol. To have it standardized properly gives us the stability and the support needed to build momentum and help us to bring it to others.
The collective industry representation of members of the IETF ensured that JMAP was refined to handle a wider collection of use cases beyond those that the initial authors had experience with. More consistent and in many ways simpler than the initial draft, we hope this gives it the power to truly replace IMAP.
We collaborated with developers who work on the Cyrus IMAP open-source email server, which we run ourselves. The Cyrus team has fully implemented JMAP as an open source server. The Perl developers at FastMail built a Perl JMAP server framework, and we created a simple implementation of a proxy server for the JMAP protocol.
We have also built a test framework for testing JMAP servers, and an initial set of tests which exercise many of the features in a standard JMAP server. This should assist developers in getting their own implementations right the first time.
Overcoming obstacles
A significant challenge was working out a structured JSON format for email that was easy for clients to work with, but flexible enough to represent RFC5322 fully. The initial representation was great for common client functionality, but didnt provide access to all elements of an email without forcing the client to fetch and parse the raw message, which negated many of the benefits of the new protocol.
After brainstorming and experimenting with some ideas, we came up with a way where clients could request pseudo-properties. Pseudo-properties told the server which email header to fetch and how to parse it. Combined with aliases for common properties, this gave us a format that retained simplicity in the common case, but was flexible enough to do just about anything a client might need to do (while still avoiding a considerable amount of complex, error-prone parsing and decoding).
How JMAP benefits users
JMAP recognizes how mail clients should talk to services in the context of how people use email today. For web and mobile use, it can offer remote access to your entire, potentially massive email archive nearly as fast as if you had the whole dataset already on your device, making super-efficient use of the network.
On mobile, one of our most concrete examples is how fast an immediate push notification works with the JMAP-powered FastMail app. Instead of waiting for a refresh, users get instant notification on their phone when the server receives an email. Of course, notifications are optional, allowing users to choose whether they prioritize immediacy or would prefer to handle their email in batches.
The Internet is moving towards APIs and microservices. This allows new entrants to a market to build on top of existing services. JMAP makes it very easy to add a subset of information from a mailbox or a calendar to a new service.
As an email provider, were seeing more and more customers calling for greater transparency from big technology companies, and they are getting excited about open standards as a key to providing that good. Consumers are becoming more aware of the disadvantages of being locked into a single vendor. Discerning customers not only enjoy the features that JMAP provides, but they can also rally behind the importance of a healthy, open Internet. We look forward to continuing work in the IETF to build on the capabilities JMAP provides.
About the authors
Bron Gondwana is a technologist with over 20 years of experience building email products who lives in Melbourne, Australia with his wife and two children. Bron is a member of the open-source Cyrus email server board and co-chair of the JMAP and EXTRA working groups at the Internet Engineering Task Force (IETF). He is the primary author of the IMAP extension for object identifiers (RFC8474). Bron is CEO of FastMail.
Neil Jenkins is the editor of the specification for JMAP, the new open email, calendar, and contacts synchronization protocol, and is an active contributor in the Internet Engineering Task Force (IETF). He is a Director and User Experience Architect at FastMail.