JMAP

From Coopernix
Revision as of 17:24, 11 December 2020 by Sysop (Talk | contribs)

Jump to: navigation, search

Why is JMAP better than IMAP?

Pourquoi JMAP est-il meilleur que IMAP?

JMAP is not a conversion of IMAP to JSON; it is a new protocol. It was designed to make much more efficient use of network resources, to be easier for developers to work with, and hopefully to make the best protocol for email an open standard once more. It's based on years of experience and real-world experimentation at Fastmail, and on talking to other major MUA/MTA developers to make sure we understand the common needs of the industry.

JMAP n'est pas une conversion d'IMAP en JSON; c'est un nouveau protocole. Il a été conçu pour faire une utilisation beaucoup plus efficace des ressources réseau, pour être plus facile à travailler pour les développeurs et, espérons-le, pour faire du meilleur protocole de courrier électronique un standard ouvert une fois de plus. Il est basé sur des années d'expérience et d'expérimentation dans le monde réel chez Fastmail, et sur des discussions avec d'autres grands développeurs MUA / MTA pour nous assurer que nous comprenons les besoins communs de l'industrie.

Some important attributes that help achieve these goals:

Quelques attributs importants qui aident à atteindre ces objectifs:

  • The protocol is stateless. It doesn't need a persistent connection, which is better for mobile use, which may have intermittent network access and where battery life must be conserved by turning the radio off whenever possible.
  • Le protocole est sans état. Il n'a pas besoin d'une connexion persistante, ce qui est préférable pour une utilisation mobile, qui peut avoir un accès réseau intermittent et où la durée de vie de la batterie doit être conservée en éteignant la radio chaque fois que possible.
  • Ids are immutable and not intended to be user visible. So folder naming becomes less messy - more like NFS or filesystems with inodes rather than a name-based hierarchy, and renaming is easy to detect and cheap to sync.
  • Les identifiants sont immuables et ne sont pas destinés à être visibles par l'utilisateur. Ainsi, la dénomination des dossiers devient moins compliquée - plus comme NFS ou des systèmes de fichiers avec des inodes plutôt qu'une hiérarchie basée sur les noms, et le changement de nom est facile à détecter et peu coûteux à synchroniser.
  • It has a flexible set of commands, which can be batched in arbitrary ways. Single JMAP operations could be batched or pipelined over a stream protocol easily enough if desired, but we're mostly envisaging JMAP being used for stateless batch operations to make disconnection less painful.
  • Il dispose d'un ensemble flexible de commandes, qui peuvent être regroupées de manière arbitraire. Les opérations JMAP uniques pourraient être regroupées ou mises en pipeline sur un protocole de flux assez facilement si vous le souhaitez, mais nous envisageons principalement d'utiliser JMAP pour des opérations par lots sans état afin de rendre la déconnexion moins douloureuse.
  • With IMAP you can set two messages to both have the same flag `(. STORE 1,2 +FLAGS (aflag))` but you can't store two different flags to two different messages in the same action. JMAP allows multiple create, update and destroy actions on different messages in a single `Email/set` command. Pipelining also has the problem that if the connection drops at just the wrong moment, the first change could be applied but not the second.
  • Avec IMAP, vous pouvez définir deux messages pour qu'ils aient tous les deux le même drapeau `(. STORE 1,2 + FLAGS (aflag))` mais vous ne pouvez pas stocker deux indicateurs différents pour deux messages différents dans la même action. JMAP permet plusieurs actions de création, de mise à jour et de destruction sur différents messages dans une seule commande `Email / set`. Pipelining a également le problème que si la connexion tombe juste au mauvais moment, le premier changement pourrait être appliqué mais pas le second.
  • You can use backreferences to other objects created in the same batch - allowing you to, for example, create a folder tree by referencing previous parents created in the same request.
  • Vous pouvez utiliser des références arrière à d'autres objets créés dans le même lot - vous permettant, par exemple, de créer une arborescence de dossiers en référençant les parents précédents créés dans la même demande.
  • Clients can efficiently fetch updates from their current state a-la QRESYNC. This can be implemented effectively using the MODSEQ data already in modern IMAP servers, or by using a transaction log data structure. The server can always indicate to the client if it cannot calculate updates from a particular client state (for example, because it is too old).
  • Les clients peuvent récupérer efficacement les mises à jour de leur état actuel à la QRESYNC. Cela peut être mis en œuvre efficacement en utilisant les données MODSEQ déjà présentes dans les serveurs IMAP modernes, ou en utilisant une structure de données de journal de transactions. Le serveur peut toujours indiquer au client s'il ne peut pas calculer les mises à jour à partir d'un état client particulier (par exemple, parce qu'il est trop ancien).
  • It provides flood control. The client can always restrict how much data the server should send. For example, a command might return a `tooManyChanges` error if it exceeds the client's limit, rather than returning a million `* 1 EXPUNGED` lines as can happen in IMAP. Sometimes it's just more efficient to throw away cached data and refetch, especially in the case of a mobile/webmail interface with only a partial cache of the server's data.
  • Il permet de contrôler les inondations. Le client peut toujours limiter la quantité de données que le serveur doit envoyer. Par exemple, une commande peut renvoyer une erreur `tooManyChanges` si elle dépasse la limite du client, plutôt que de renvoyer un million de lignes` * 1 EXPUNGED` comme cela peut se produire dans IMAP. Parfois, il est simplement plus efficace de supprimer les données mises en cache et de les récupérer, en particulier dans le cas d'une interface mobile / webmail avec seulement un cache partiel des données du serveur.
  • It doesn't require a custom parser. There's a longer explanation to the HTTPS/JSON question below, but having an encoding format that is well understood and has widespread support among all programming languages makes it far easier for developers to get started, especially if they don't want to build a whole MUA but just integrate something with email.
  • Il ne nécessite pas d'analyseur personnalisé. Il y a une explication plus longue à la question HTTPS / JSON ci-dessous, mais avoir un format d'encodage bien compris et pris en charge par tous les langages de programmation permet aux développeurs de se lancer beaucoup plus facilement, surtout s'ils ne veulent pas créer un tout MUA mais intégrez simplement quelque chose avec le courrier électronique.
  • The data model is backward compatible with both IMAP folders and Gmail-style labels. Servers that implement JMAP are likely to want to support IMAP as well for the foreseeable future, so it's important to be able to have data structures that support both. Messages are similarly immutable other than keywords/mailboxes.
  • Le modèle de données est rétrocompatible avec les dossiers IMAP et les libellés de style Gmail. Les serveurs qui implémentent JMAP voudront probablement également prendre en charge IMAP dans un avenir prévisible, il est donc important de pouvoir disposer de structures de données prenant en charge les deux. Les messages sont également immuables autres que les mots-clés / boîtes aux lettres.
  • Email can be sent using the same protocol, reducing confusing failure modes for users (again, there is more about this below). There are also essentially complete specifications for calendaring and contacts via JMAP, but we're not pushing for them to be standard yet because the object format is still undergoing a lot of work in the CalConnect group. We think a single consistent protocol for all of these has a lot of advantages though, and we hope to get there in the future.
  • Les e-mails peuvent être envoyés en utilisant le même protocole, ce qui réduit les modes d'échec déroutants pour les utilisateurs (encore une fois, il y en a plus à ce sujet ci-dessous). Il existe également des spécifications essentiellement complètes pour l'agenda et les contacts via JMAP, mais nous ne les poussons pas encore à être standard car le format d'objet subit encore beaucoup de travail dans le groupe CalConnect. Nous pensons qu'un protocole unique et cohérent pour tous ces aspects présente cependant de nombreux avantages, et nous espérons y arriver à l'avenir.

Why use HTTPS/JSON?

Pourquoi utiliser HTTPS / JSON?

The short answer is it's good enough, it's widely understood, and it's by far the easiest thing for developers to adopt. There's support in basically all OSes and programming languages. And it's easy to read and debug.

La réponse courte est que c'est assez bon, c'est largement compris, et c'est de loin la chose la plus facile à adopter pour les développeurs. Il existe un support dans pratiquement tous les systèmes d'exploitation et langages de programmation. Et c'est facile à lire et à déboguer.

HTTP doesn't tend to run into firewall issues, and is so commonly used that it has integrations which can help with optimisation (for example, iOS has built-in support for optimising radio usage by batching HTTP calls from different apps where possible, which their mail team have told us they would like to be able to use). This isn't an innate advantage of HTTP, but rather an advantage of its ubiquity.

HTTP n'a pas tendance à rencontrer des problèmes de pare-feu et est si couramment utilisé qu'il a des intégrations qui peuvent aider à l'optimisation (par exemple, iOS a un support intégré pour optimiser l'utilisation de la radio en regroupant les appels HTTP à partir de différentes applications lorsque cela est possible, ce qui leur équipe de messagerie nous a dit qu'ils aimeraient pouvoir utiliser). Ce n'est pas un avantage inné de HTTP, mais plutôt un avantage de son ubiquité.

With GZIP, JSON data is reasonably compact and fast enough to serialise/parse. However, the encoding/transport part of JMAP is not core to its operation, so future specifications could easily add alternatives (e.g. WebSocket instead of HTTPS, CBOR instead of JSON). For the initial version though, HTTPS+JSON makes the most sense.

Avec GZIP, les données JSON sont raisonnablement compactes et suffisamment rapides pour être sérialisées / analysées. Cependant, la partie encodage / transport de JMAP n'est pas au cœur de son fonctionnement, de sorte que les futures spécifications pourraient facilement ajouter des alternatives (par exemple WebSocket au lieu de HTTPS, CBOR au lieu de JSON). Pour la version initiale cependant, HTTPS + JSON est le plus logique.

Binary data

Données binaires

Binary data is not transported in the JSON, and indeed it can't be without base64 encoding or similar, which is inefficient. Instead, attachments are referenced by a blobId, and uploaded/downloaded separately via HTTPS. Clients can reference the blobId elsewhere to, for example, attach the same file to a new message without having to download and upload it again, a big win on slower internet connections.

Les données binaires ne sont pas transportées dans le JSON, et en effet, elles ne peuvent pas être sans encodage base64 ou similaire, ce qui est inefficace. Au lieu de cela, les pièces jointes sont référencées par un blobId et chargées / téléchargées séparément via HTTPS. Les clients peuvent référencer le blobId ailleurs pour, par exemple, joindre le même fichier à un nouveau message sans avoir à le télécharger et à le télécharger à nouveau, une grande victoire sur des connexions Internet plus lentes.

This also means that regularly saving drafts (a common client behaviour) does not mean sending the same full multi-megabyte attachments over the network every 60s or so.

Cela signifie également que l'enregistrement régulier des brouillons (un comportement client courant) ne signifie pas l'envoi des mêmes pièces jointes complètes de plusieurs mégaoctets sur le réseau toutes les 60 secondes environ.

As it's out-of-band with the API calls, uploading/downloading files can easily be parallelised, and other API operations aren't blocked.

Comme il est hors bande avec les appels d'API, le chargement / téléchargement de fichiers peut facilement être parallélisé et les autres opérations d'API ne sont pas bloquées.

Representation of email

Représentation du courrier électronique

JMAP defines a JSON structure that represents in a consistent and structured way all the information that the vast majority of clients need from an RFC5322 message. The server deals with the complexities of MIME, encoding issues, parsing headers, etc. The intention is that the server will still operate with RFC5322 messages for storage and certainly transmission; the JSON representation is not intended to replace RFC5322, just relieve client authors from having to deal with it.

JMAP définit une structure JSON qui représente de manière cohérente et structurée toutes les informations dont la grande majorité des clients ont besoin à partir d'un message RFC5322. Le serveur traite les complexités de MIME, les problèmes de codage, l'analyse des en-têtes, etc. L'intention est que le serveur continue de fonctionner avec les messages RFC5322 pour le stockage et certainement la transmission; la représentation JSON n'est pas destinée à remplacer la RFC5322, mais évite simplement aux auteurs clients de s'en occuper.

Clients that want to or need to (for example those doing PGP in the client) can still fetch the RFC5322 if needed. The message is represented by a blobId, and the raw bytes can be fetched using the binary download mechanism mentioned above.

Les clients qui le souhaitent ou qui en ont besoin (par exemple ceux qui font PGP dans le client) peuvent toujours récupérer le RFC5322 si nécessaire. Le message est représenté par un blobId et les octets bruts peuvent être récupérés à l'aide du mécanisme de téléchargement binaire mentionné ci-dessus.

Message submission

Soumission de message

Having the same protocol for message sync and submission is a huge win for usability; we see a lot of support tickets where users can receive but not send, or vice versa, because one of these is misconfigured. This is always very confusing for regular users.

Avoir le même protocole pour la synchronisation et la soumission des messages est un énorme avantage pour la convivialité; nous voyons beaucoup de tickets d'assistance que les utilisateurs peuvent recevoir mais pas envoyer, ou vice versa, car l'un d'entre eux est mal configuré. Ceci est toujours très déroutant pour les utilisateurs réguliers.

Clients can use the same JSON structure for sending messages as they get from the server for received messages, allowing the server to deal with MIME encoding. This allows clients to be much simpler and easier to write. (Of course, they can also upload a raw RFC5322 message instead, if they want.)

Les clients peuvent utiliser la même structure JSON pour envoyer des messages que celle qu'ils obtiennent du serveur pour les messages reçus, ce qui permet au serveur de gérer le codage MIME. Cela permet aux clients d'être beaucoup plus simples et plus faciles à écrire. (Bien sûr, ils peuvent également télécharger un message RFC5322 brut à la place, s'ils le souhaitent.)

The submission API adds capabilities for servers to expose to the client information on the status of the email in the submission queue, and whether a successful response was received from the receiving server.

L'API de soumission ajoute des fonctionnalités permettant aux serveurs d'exposer au client des informations sur l'état du courrier électronique dans la file d'attente de soumission et si une réponse réussie a été reçue du serveur de réception.

Push mechanism

Mécanisme de poussée

Immediate updates is an important feature to many users. IMAP IDLE has two big problems: firstly, it only notifies of changes in one folder, so doesn't inform you of all changes unless you open a connection for every folder and, secondly, it requires a persistent network connection, which is bad for mobile (and not even allowed on iOS).

Les mises à jour immédiates sont une fonctionnalité importante pour de nombreux utilisateurs. IMAP IDLE a deux gros problèmes: premièrement, il ne notifie les modifications que dans un dossier, donc ne vous informe pas de tous les changements sauf si vous ouvrez une connexion pour chaque dossier et, deuxièmement, il nécessite une connexion réseau persistante, ce qui est mauvais pour mobile (et même pas autorisé sur iOS).

JMAP defines two push mechanisms to support the two common use cases. In both cases the data transferred is simply an edge trigger: a new state string letting the client know something has changed within a particular datatype. The client then fetches the new data using the standard synchronisation methods.

JMAP définit deux mécanismes push pour prendre en charge les deux cas d'utilisation courants. Dans les deux cas, les données transférées sont simplement un déclencheur de front: une nouvelle chaîne d'état informant le client que quelque chose a changé dans un type de données particulier. Le client récupère ensuite les nouvelles données à l'aide des méthodes de synchronisation standard.

For desktop clients and webmail, there's an event source interface. This requires a persistent HTTP connection.

Pour les clients de bureau et la messagerie Web, il existe une interface de source d'événements. Cela nécessite une connexion HTTP persistante.

For mobile, and web integrations, you can set a callback handler, which conforms with the use of a push endpoint by an Application Server as defined in RFC8030. This makes the mail store server do a callback to a server defined by the client when something changes; the client's server can then send out-of-band push events using the native push mechanism of the mobile client. JMAP itself doesn't require any particular mobile push technology.

Pour les intégrations mobiles et Web, vous pouvez définir un gestionnaire de rappel, qui est conforme à l'utilisation d'un point de terminaison push par un serveur d'applications tel que défini dans RFC8030. Cela oblige le serveur de banque de courrier à effectuer un rappel vers un serveur défini par le client lorsque quelque chose change; le serveur du client peut alors envoyer des événements push hors bande en utilisant le mécanisme push natif du client mobile. JMAP lui-même ne nécessite aucune technologie de poussée mobile particulière.

End-to-end encryption

Chiffrement de bout en bout

A lot of the optimisations for efficient client-server sync require the server to be able to read the message. If everything were encrypted, the server would basically be a dumb blob store. This is particularly bad for mobile, where you only want to sync partial information. Users expect to be able to search their whole archive, so either you need all the data in the client, or the server needs to have access to the data.

De nombreuses optimisations pour une synchronisation client-serveur efficace nécessitent que le serveur soit capable de lire le message. Si tout était chiffré, le serveur serait essentiellement un magasin d'objets blob stupide. Ceci est particulièrement mauvais pour les mobiles, où vous ne souhaitez synchroniser que des informations partielles. Les utilisateurs s'attendent à pouvoir rechercher l'ensemble de leurs archives, donc soit vous avez besoin de toutes les données du client, soit le serveur doit avoir accès aux données.

JMAP is therefore not introducing any new measures to address end-to-end encryption. The best advice is probably to run your own "JMAP server" on trusted hardware; otherwise you need to sync the entire multi-gigabyte mail spool to all your devices. JMAP is also simple enough that you could run the server on multiple machines with an underlying replication protocol over encrypted links and have that do your smarts.

JMAP n'introduit donc aucune nouvelle mesure pour traiter le cryptage de bout en bout. Le meilleur conseil est probablement d'exécuter votre propre "serveur JMAP" sur du matériel fiable; sinon, vous devez synchroniser l'intégralité du spool de courrier de plusieurs gigaoctets sur tous vos appareils. JMAP est également suffisamment simple pour que vous puissiez exécuter le serveur sur plusieurs machines avec un protocole de réplication sous-jacent sur des liens chiffrés et que cela fasse votre intelligence.

Why is it not REST based?

Pourquoi n'est-il pas basé sur REST?

JMAP is actually more REST-like than most "RESTful" APIs. It is stateless, highly cacheable, supports transparent intermediaries and provides a uniform interface for manipulating different resources. However, it doesn't use HTTP verbs to implement this.

JMAP est en fait plus semblable à REST que la plupart des API "RESTful". Il est sans état, hautement cache, prend en charge les intermédiaires transparents et fournit une interface uniforme pour manipuler différentes ressources. Cependant, il n'utilise pas de verbes HTTP pour implémenter cela.

When you have a high latency connection (such as on a mobile phone, or even wired connections from the other side of the world), the extra round trips required for an HTTP REST-based protocol can make a huge impact on performance. This is especially an issue when you have an order-dependency in your API calls and you need to make sure one has finished before the other can be run (for example when you mutate the state of a message then want to fetch the changes to a mailbox containing the message). In the JMAP protocol, this can be done in a single round trip. An HTTP REST-based version would require two full round trips for the same operation.

Lorsque vous avez une connexion à latence élevée (comme sur un téléphone mobile, ou même des connexions filaires de l'autre côté du monde), les allers-retours supplémentaires requis pour un protocole HTTP REST peuvent avoir un impact énorme sur les performances. C'est particulièrement un problème lorsque vous avez une dépendance d'ordre dans vos appels d'API et que vous devez vous assurer que l'un est terminé avant que l'autre puisse être exécuté (par exemple, lorsque vous modifiez l'état d'un message, vous souhaitez récupérer les modifications apportées à un boîte aux lettres contenant le message). Dans le protocole JMAP, cela peut être fait en un seul aller-retour. Une version basée sur HTTP REST nécessiterait deux allers-retours complets pour la même opération.

The JMAP protocol is transport agnostic and can be easily transported over a WebSocket, for example, as well as HTTP.

Le protocole JMAP est indépendant du transport et peut être facilement transporté sur un WebSocket, par exemple, ainsi que sur HTTP.

Why do keywords/mailboxes apply to messages, not threads?

Pourquoi les mots-clés / boîtes aux lettres s'appliquent-ils aux messages et non aux fils?

Mutable state has to be stored per-message; for example, the `$seen` keyword (unread status) must apply on a per message basis, and it's very useful to be able to flag a particular useful message rather than just the whole thread. To be able to delete a particular message to the Trash out of a thread, you need to be able to change the mailbox of that message. Sent messages should belong to the sent mailbox, but not messages you receive.

L'état mutable doit être stocké par message; par exemple, le mot-clé `$ vu` (statut non lu) doit s'appliquer sur une base par message, et il est très utile de pouvoir marquer un message utile particulier plutôt que seulement le fil de discussion entier. Pour pouvoir supprimer un message particulier de la corbeille d'un fil de discussion, vous devez pouvoir modifier la boîte aux lettres de ce message. Les messages envoyés doivent appartenir à la boîte aux lettres envoyée, mais pas aux messages que vous recevez.

Meanwhile, it is simple to aggregate the information of the messages in the thread. So, for example, if any message in the thread is unread, then the thread can be considered unread. There is no need to store mutable state as a property of a thread, therefore, and the less mutable the state, the easier it is to manage. Finally, all known existing IMAP implementations, plus Gmail, store this state per-message, not per-thread, so it makes it easier for implementers to migrate to JMAP.

Pendant ce temps, il est simple d'agréger les informations des messages dans le fil. Ainsi, par exemple, si un message du fil n'est pas lu, le fil peut être considéré comme non lu. Il n'est donc pas nécessaire de stocker l'état mutable en tant que propriété d'un thread, et moins l'état est modifiable, plus il est facile à gérer. Enfin, toutes les implémentations IMAP existantes connues, ainsi que Gmail, stockent cet état par message et non par thread, ce qui facilite la migration des implémenteurs vers JMAP.

Why are there keywords (for example, $seen) separate from mailboxes?

Pourquoi y a-t-il des mots clés (par exemple, $ vu) séparés des boîtes aux lettres?

In IMAP, you can only have one mailbox but you can have multiple keywords/flags on a single message. In other systems (where you have labels), these are really the same thing and you can have a single message in multiple mailboxes. JMAP aims to support both, so it has to be able to specify whether a mailbox can be used in combination with other mailboxes on a message, or must be the only mailbox with the message (but does allow different keywords). The clearest way of specifying what is allowed by the server is to keep the mailboxes separate from keywords in JMAP as well.

Dans IMAP, vous ne pouvez avoir qu'une seule boîte aux lettres, mais vous pouvez avoir plusieurs mots-clés / indicateurs sur un seul message. Dans d'autres systèmes (où vous avez des étiquettes), ce sont vraiment la même chose et vous pouvez avoir un seul message dans plusieurs boîtes aux lettres. JMAP vise à prendre en charge les deux, il doit donc être capable de spécifier si une boîte aux lettres peut être utilisée en combinaison avec d'autres boîtes aux lettres sur un message, ou doit être la seule boîte aux lettres avec le message (mais autorise des mots clés différents). La manière la plus claire de spécifier ce qui est autorisé par le serveur est de séparer également les boîtes aux lettres des mots-clés dans JMAP.

I want to get involved with JMAP. What do I need to know?

Je veux m'impliquer avec JMAP. Que dois-je savoir?

First of all, you should join the JMAP mailing list. Feedback is welcome: send your thoughts or comments on anything that is imprecise, incomplete, or could simply be done better in another way. Or if you're working on something JMAP related, this list is a good place to let other people know and to raise any issues you come across.

Tout d'abord, vous devez rejoindre la liste de diffusion JMAP. Les commentaires sont les bienvenus: envoyez vos réflexions ou commentaires sur tout ce qui est imprécis, incomplet ou qui pourrait simplement être amélioré d'une autre manière. Ou si vous travaillez sur quelque chose en rapport avec JMAP, cette liste est un bon endroit pour informer les autres personnes et soulever les problèmes que vous rencontrez.

The specification itself is hosted on GitHub. If you've found a typo or other minor change, feel free to just submit a pull request. Otherwise, discussion on the mailing list first is preferred.

La spécification elle-même est hébergée sur GitHub. Si vous avez trouvé une faute de frappe ou un autre changement mineur, n'hésitez pas à simplement soumettre une demande d'extraction. Sinon, la discussion sur la liste de diffusion en premier est préférable.

I want to implement it. What do I need to know?

Je veux le mettre en œuvre. Que dois-je savoir?

That's great! There are lots of resources on this website to help you. Counter-intuitive though it may seem, I recommend starting with the guide for client authors to get a good feel for how the JMAP spec works. After that though, the spec is your bible and the advice for implementors is your friend.

C'est génial! Il existe de nombreuses ressources sur ce site Web pour vous aider. Aussi contre-intuitif que cela puisse paraître, je recommande de commencer par le guide destiné aux auteurs clients pour avoir une bonne idée du fonctionnement de la spécification JMAP. Après cela, la spécification est votre bible et le conseil aux réalisateurs est votre ami.

If you're implementing the spec and suddenly find there's an externally visible behaviour that's not specified, please email the mailing list so we can update the spec to nail down this corner.

Si vous implémentez la spécification et constatez soudainement qu'il existe un comportement visible de l'extérieur qui n'est pas spécifié, veuillez envoyer un e-mail à la liste de diffusion afin que nous puissions mettre à jour la spécification pour clouer ce coin.

I want to use it to build a client. What do I need to know?

Je veux l'utiliser pour créer un client. Que dois-je savoir?

Have a read through the client guide to get an idea of how it works. Then you'll want to find a JMAP server to test against.

Lisez le guide du client pour avoir une idée de son fonctionnement. Ensuite, vous voudrez trouver un serveur JMAP pour tester.





Announcing Topicbox – our new product for teams

13 September 2017 / Bron Gondwana

Email is important to everybody. Email is your electronic memory, your archive of immutable truth. It is built on open standards, and it's the one truly global and interoperable written communication network. While instant messaging is great for immediacy, email is best for considered thought and permanence.

FastMail provides a great product for individuals and individual team members, and we're justifiably proud of that. FastMail staff use our own email archives every day to check whether our memories are correct or to answer questions like "what were the specifications for those servers we discussed 3 months ago and what did the various suppliers quote for them".

That email history – the team memory – gets locked away in individual mailboxes. New team members start from scratch with no easy way to look back on past decisions or discussions. This became very clear to us as our own company grew, and we had to forward important emails to new hires to help them understand our history. Or not! Nobody has time to go back and curate their email to forward every possibly relevant message to the new hire. They either asked around, interrupting others, or did without information that could have helped with their jobs.

With our company values firmly in mind we set out to solve this problem (which is common to all teams with changing membership) and redefine what a mailing list can be.

Topicbox is our new group email product which makes team history discoverable, email archives searchable, and collaboration easier – we know because we used the product ourselves as we were building it!

Many websites and services are designed to keep your eyeballs on their properties for the longest possible time. We are not like that. Our goal is to solve your email needs as quickly as possible so you can get on with everything else in your life.

I'm not going to list all the features here – you can read all about them on the Topicbox site, or sign up for a free trial straight away if you prefer doing rather than reading.

We have deliberately designed Topicbox so you don't need to be an existing FastMail customer – just start sending group emails to your team's Topicbox address instead of CCing individuals. It is effortless to add Topicbox to your existing workflow, and you can start with a single team from your organisation.

Later when you add new members to a team, they come on board with access to all the best information in your archives from day one – as discoverable and searchable as the email in an individual's account.

Try it out, we'd love to hear what you think.

Email us at support@topicbox.com or tweet @Topicboxer.

Introducing Topicbox

We are excited to launch our new platform to help teams supercharge their group email discussions – Topicbox.

Email has remained popular all these years because it just works. Topicbox makes it better for businesses, professional organizations and other teams.

The problem with it is most people’s inbox is a terrible place to categorize things or find important information later.

With Topicbox, you create groups for every topic area – teams, projects or events. Each group has its own email address, and each group’s discussions are housed in one place – your Topicbox archive.

Topicbox archives let you share your best information

Screen-Shot-2017-08-22-at-4.59.49-PM-2

The reality is, most people put their best information in email every day. Most messages only go to one or two people – no one wants to be the person who is drowning their co-workers in email! That information gets locked in private mailboxes, never to be seen again.

So much of that information could be valuable to their team. But how do you avoid information overload?

Your Topicbox archive lets your team share their best information in a central place. People still get their own copy of messages, but they can easily store a copy for their team. Team members choose which groups have information important enough to get immediately, which groups should be summarized, and which they just need to be able to search later.

Topicbox builds on the parts of email you love, and puts the power to control message flow in its users' hands with a host of features that make it really exciting for teams:

• All your discussions in one place – by moving your most valuable information away from individual inboxes you can have group discussions in your Topicbox groups. All your discussions are categorized by group and searchable.

• Unlimited groups - discuss your teams, projects and events. Over time your groups help form a growing, searchable archive. You can also retire groups if you no longer need them; they will still remain searchable so that history isn’t lost as projects end.

• No more CC or BCC – there’s just one email address to reach every member of your Topicbox group. For example, set up your group ‘Office move’ and all group members simply send and reply to messages using one address: officemove@yourorganization.topicbox.com

You can invite, add and remove members at any time and members can also leave groups that are no longer relevant.

• Control access and privacy - You determine and share access, from who can see groups to who can create them. Add members yourself, or let them join the groups they want.

• Find what you need - Refine as you go search lets you zero in on what you need, and groups make it easy to browse, too.

• Easy to use - Email is a robust, inclusive platform that works no matter whether you’re a staffer, a contractor, or a client. Topicbox works with your existing email accounts, or can be used exclusively through the web interface.

• Great support – Topicbox is brought to you by the teams behind FastMail, Pobox and Listbox. We love our customers and pride ourselves on bringing the best email experience to all of our users. We’re here for you at any time.

• Avoid the hassle and cost of self-managed applications

Move away from expensive, in-house email systems and complicated wikis. Topicbox is budget friendly with account management not reliant on individual staffers. Your information and discussions can weather any change in IT providers and resource management.

Topicbox has been a passion of ours and we truly hope you enjoy using Topicbox as much as we do. We’ll be working hard to bring even more features to Topicbox in the coming months.

Developed from an impressive email pedigree

With Listbox joining the FastMail family in 2015, one of our shared goals was to join forces in creating a better group email platform – taking the best features from Listbox and marrying these with the interface design and powerful email infrastructure of FastMail.

We love email. We don't think it is going away, and we wanted to bring more ways for teams and organizations to unleash the power of this communication medium.

As our respective teams have grown over the last year and a half, we have also been able to draw upon our expanding resources and today we’re proud to say that Topicbox powers all of our global teams.

Topicbox has been a labour of love and we truly hope you enjoy using Topicbox as much as we do. We’ll be working hard to bring even more features to Topicbox in the coming months.

We also value your feedback so be sure to share your thoughts with us too.

In the meantime, happy Topicboxing!

Topicbox vs traditional email

Topicbox versus traditional email

Topicbox works just like using your regular email, but takes your messages further. Instead of sending an email one-to-one, or CCing a whole group of people, you send it to your Topicbox group.

With a focus on using email for team communication, Topicbox makes your messages easier to find and use, and puts the flow of messages into the hands of the people who receive it.

  • Topicbox – single email address.
  • Generic email interface – CC/Reply All.
  • No more CC or Reply All

When you’re dealing with a group of people – or multiple groups – CC/Reply All gets messy and leads to a poor user experience. Messages get lost in a sea of sharing with seemingly endless responses from a multitude of email addresses.

With Topicbox:

  • Simply send a message to a group and everyone receives it.
  • Group members can reply to existing messages within the group or create a new topic thread.

Move away from manual lists of people’s email addresses and worrying if you’ve forgotten to include someone, every time you send a message. Topicbox avoids the issue of people being included on some messages and not others, ensuring you have a complete history for everyone to see, even if people end up joining a group later.

Simpler contact management

Traditional email programs are great for one-to-one communication; however, trying to maintain contact and distribution lists for frequent larger-scale group communication quickly becomes inefficient and frustrating.

Using Topicbox means you can easily add or invite group members when you need to. Users can also leave groups or pause email delivery, giving people greater control over their communication and ensuring contact lists stay relevant.

Depending on a group’s settings, people can add themselves to other groups within an organization, which can be great for new team members or use as a staff onboarding tool.

Segment communication by groups

With a Topicbox group, all information is stored in one place, not locked up in individual inboxes.

Using a group lets you sort discussions in a way that makes sense for your team. And if you bring new people on or transition someone out of a project or organization, messages stay available, even when staff changes. You can also integrate clients and vendors into a group to improve communications across organizations.

Share and search your history

We know that with traditional email, valuable information gets locked up in individual mailboxes, making team information hard to find. Messages get deleted or simply lost amongst an ever-growing amount of email.

Topicbox segments and stores messages by groups into your organization’s shared archive, making messaging history easy to find. A URL for every message lets you link to discussions, making them more shareable than ever before.

And with the News Center and organization-wide search, it’s easy to find discussions and keep up-to-date. You can further refine search by date, additional search terms, and attachments, making information sharing easy.

Easy access to messages

Topicbox’s modern, clean interface works together with your existing email account in your web browser, including mobile devices.

There’s no software to download; simply log in to your organization’s account to view, post, reply to and search messages. You can also continue to send and receive Topicbox messages from within your preferred email program.

Every message in your organization’s Topicbox gets its own link – included in both the message footer and the Topicbox archive. Refer to an email in your ticketing system, chats, or other tools, and see it in the context of its original conversation!

Get a daily summary

With traditional email, you open your inbox and you’ll immediately see any new emails.

With Topicbox, you can control when and how you digest information. We understand that ‘real-time’ isn’t always the best time, so we created the daily summary feature – a snapshot of all your groups’ activity in one easy-to-read digest.

You can choose to receive a daily summary for any Topicbox group you’re a member of, making it a great way to get insight into what’s happening across your organization.


Topicbox ❤️ Email Transparency

14 February 2018 / Helen Horstmann-Allen

Your team is full of experts, who are constantly sharing information. If you've ever gone digging through your old messages to find something you've already written, you know that tons of great information goes into email.

Imagine if you didn't just have the information you wrote, but an easy-to-search archive built by everyone who worked on a project or handled a client, now and in the past. How many gems would it include?

Introducing the concept of email transparency – the radical idea that teams do their best work if they default to sharing information.

Sharing is caring (and easy)

Topicbox makes sharing your knowledge practical. It's not asking you to write new information – it's making better use of the information your team is already producing, every time you send an email.

Of course, sharing your email indiscriminately is easy! You could just CC your mail to everyone on your team. But you would quickly drown the quality information in a sea of noise, and your team would run you out of town for exploding their inboxes. And new people joining a project still couldn't find answers to what they need.

Topicbox gives everyone the tools to share information the right way. Your organization can have as many groups as it needs – for every team, project, client or interest area, and then you just email (or CC) the group relevant to your message. The groups act as a filter – automatically categorizing the messages as they are sent, into separate caches for every project.

Every staff member can create new groups as needed. They can also manage which groups they want to join. Then Topicbox provides the delivery options that make it easy for teams to stay on top of this flow of information:

  • Important groups can have their messages sent immediately.
  • Interesting, but not urgent, groups can go into a Daily Summary, one email that lets members skim all the groups they want to see.
  • Information just needed for reference is kept out of email, but it's always available within your organization's Topicbox site.

Your organization's Topicbox site helps everyone find what they need quickly – people can scan recent messages in the News Center, review all the topics for a particular group, or search for a piece of information across all the organization's groups.

So start sharing your information without worrying about overwhelming or drowning people in a sea of CCs.

Topicbox lets your staff share their best information effortlessly, and build a robust, searchable archive for the future. Whether your organization is looking for full email transparency or a more translucent solution, Topicbox is here to help!

P.S. Thanks to Stripe for popularizing email transparency. You really inspired us.


Topicbox Says It’s the Slack of Group Email

Topicbox Group Email Discussion Tool Says It's the Slack of Group Email

Small business teams that struggle with keeping up with all the internal email communication involved in running daily operations may be happy to learn about a new tool that aims to curtail those emails.

Topicbox Group Email Discussion Tool

Topicbox is meant for teams that utilize a lot of group email chains but who want a better way to organize those chains. Email hosting service FastMail is the company behind Topicbox.

FastMail COO Helen Horstmann-Allen said in an email interview with Small Business Trends, “Instead of CCing a list of people (which has its own list of headaches!), Topicbox gives each team, project, client or event its own group email address. Everyone in the group can choose their own preferences as to how or when they receive messages sent to the group — immediately, in a once-a-day wrap-up, or just leave it archived on the web to browse or search later. Individual senders don’t have to make sure that all the appropriate people see their messages.”

Of course, there are already plenty of other options for team communication outside of email, including apps like Slack and Basecamp. But the Topicbox group email discussion tool differentiates itself because users can still access the full functionality of the tool right in their email accounts, rather than having to sign up for yet another platform. This can be especially useful for teams that already use a lot of email for outside communications or those with worldwide teams that can’t really benefit from the real-time features of those communication apps.

That was the case for the team at FastMail. Horstmann-Allen says, “Because our team is located in both Australia and the US, we know how easily key information can be lost in chat. And because so many people on staff are programmers, they tell us all the time about the cost of distractions to their productivity. Topicbox was a chance for us to both scratch our own itch, and support the many, many organizations out there for whom email is already a critical part of their workflow, but they wish there was a better way.”

The team at FastMail launched Topicbox this year after doing a lot of its own testing in-house. And now it’s available for everyone to use. You can sign up online and get started with a free one-month trial. Then it’s $10 a month for up to ten users, and $3 for each additional users above that.