Twake Mail JMAP

Pourquoi Linagora a opté pour JMAP, l’e-mail 2.0

L’IMAP est un vestige du passé. Avec des couches de protocoles complexes qui se sont ajoutées au fil des ans, ce protocole inefficace dominait l’e-mail. Puis vint JMAP. Dans cet article, Benoit Tellier, responsable produit de Twake Mail, nous explique pourquoi Linagora mise sur JMAP pour sa suite souveraine Twake Workplace.

L’IMAP a été formidable, il a permis aux e-mails de rester sur les serveurs et d’être classifiés. Il a poussé les fournisseurs d’accès internet à acheter à prix fort du stockage NetApp lors du passage du monde POP3. L’IMAP a fait son temps !

Aujourd’hui, les utilisateurs s’attendent à une synchronisation fluide, en temps réel sur tous leurs appareils, utilisent leur messagerie sur tous leurs dispositifs, et veulent que tout aille vite. Les développeurs, quant à eux, attendent un protocole facile à utiliser, basé sur des transports et des formats bien connus. L’exotisme de JMAP n’est pas le bienvenu.

Les grands GAFAM n’ont pas attendu et ont poussé/imposé leurs solutions (propriétaires) à l’IMAP. L’API Gmail en est un exemple. MAPI/ActiveSync en est un autre. Gouverner par les protocoles, c’est une source d’avantage compétitif par nature.

C’est dans cette pénombre que LINAGORA a commencé à chercher un protocole pour implémenter son webmail. Et alors la lumière fut : JMAP.

Tout ce qu’il faut savoir sur le protocole JMAP

JMAP (JSON Mail Application Protocol => JSON Metadata Application Protocol) est une proposition novatrice pour lire les e-mails. Basé sur le transport HTTP et le modèle de données JSON, comme le suggère son nom, il offre toutes les primitives pour récupérer rapidement et efficacement vos e-mails et les garder synchronisés.

Les mécanismes techniques en jeu ici : un journal d’événements est conservé pour une resynchronisation rapide, et des notifications PUSH (WebPush / WebSocket / Server Sent Events) sont utilisées pour informer les applications clientes de ces changements. JMAP utilise une syntaxe identique à GraphQL, qui permet de charger toutes vos données en une seule fois. Enfin, la compression HTTP ainsi que les caches s’appliquent automatiquement. Cela se traduit par une expérience utilisateur ultrarapide et efficace, même sur des réseaux dégradés.

La complexité des messages MIME (avez-vous déjà appuyé sur CTRL+U dans Thunderbird ?) est cachée par un schéma JSON intelligent qui mappe ce que vous voulez dans votre webmail.

Cette efficacité signifie également moins de charge sur le serveur back-end et les ressources réseau : nous avons observé une réduction x20 du nombre de requêtes et une diminution x5 de la charge par rapport à l’IMAP.

Apache James : implémentation de référence de JMAP

Dès 2016, LINAGORA a contribué à une implémentation préliminaire de JMAP pour Apache James, le serveur de messagerie de la Fondation Apache, et a adopté ce protocole comme base de son webmail. En 2020, après la publication officielle des spécifications JMAP, LINAGORA a contribué à la mise à jour du code Apache James, en faisant la première véritable implémentation JMAP open source (le code de soumission n’étant ni open source ni disponible parallèlement à l’implémentation Cyrus IMAP). Cet effort représente 8 années-hommes de travail.

Rédaction des spécifications au sein de l’IETF

Notre équipe a rencontré des obstacles et des limitations dans les spécifications existantes. Ces fonctionnalités manquantes étaient souvent suffisamment génériques pour être partagées au sein de la communauté JMAP et ont donné lieu à des RFC :

  • RFC-9007 : Envoi d’accusés de réception avec JMAP
  • RFC-9425 : Consultation des quotas avec JMAP

Notre équipe passe en revue les documents de l’IETF avec soin et participe aux événements normatifs comme les réunions de l’IETF et des événements parallèles comme Make Better Email.

Twake Mail : frontend interopérable et multiplateforme

Twake-Mail est le frontend de la suite collaborative de Linagora. Développé avec Flutter, il offre une expérience native de la messagerie sur téléphones et tablettes, appareils iOS et Android.

Nous l’utilisons également pour construire notre webmail. Avec son design moderne et attrayant, Twake Mail saura charmer vos utilisateurs.

Twake Mail
Twake Mail

Lorsqu’il est utilisé avec le serveur Twake Mail, il offre la meilleure expérience utilisateur, car il prend en charge les extensions Twake Mail (filtres, transferts, délégations, auto-complétion, etc.), mais une expérience minimale conforme à la norme JMAP est prise en charge avec d’autres serveurs comme Stallwart.

Benoit Tellier
Benoit Tellier

L’auteur : Benoit Tellier est aujourd’hui directeur général de LINAGORA Vietnam, responsable produit de Twake Mail et Président du projet Apache James.

Cet article a été publié à l’origine sur Medium.

Retour en haut