4 ms·
JMAP is a server protocol, so that the account's email server should provide JMAP endpoint instead of (or in addition to) IMAP, SMTP or ActiveSync. JMAP has alm
by andris9 5y ago
JMAP is a server protocol, so that the account's email server should provide JMAP endpoint instead of (or in addition to) IMAP, SMTP or ActiveSync. JMAP has almost no support at all, so if you are connecting to an email server there is a great chance that the server supports IMAP, fewer servers support Exchange ActiveSync and almost no server (except Fastmail and maybe some others) support JMAP.
EmailEngine on the other hand is not an email server but more like a reverse proxy, it takes REST commands from the client and sends IMAP/SMTP commands to the account's email server. So for the email server it looks like that the client is speaking IMAP/SMTP and for the client it seems that the server is speaking REST/JSON.
Additionally EmailEngine performs tasks that are hard to do when dealing with a regular IMAP server. For example it tracks changes on the account, so if something is added or deleted, then EmailEngine sends a webhook notification for it.
If you are interacting with an IMAP server directly then usually you see that a folder has fewer emails stored in it than during the previous check but there is no indication which messages were actually deleted.
- anilgulecha 5y agoIsn't any API a "server protocol"? There are client libraries like (https://github.com/linagora/jmap-client-ts https://github.com/linagora/jmap-client-ts) which allow you to perform all mailbox actions. I'm trying to understand what I can do better as a client - does emailengine enable something that JMAP API will not? You called out webhook as one.
- andris9 5y agoIf your email server supports JMAP (for example if you are a Fastmail user) then that's great – most probably you'd not need anything like EmailEngine at all and can use the JMAP clients. The problem is that almost no email server in the world supports JMAP at this point. It might change in the future, though anything related to changes in email take years if not decades. If you want to communicate with an existing email server then you either have to use IMAP, POP3 or a service specific API (eg Gmail API or O365 API). Using IMAP seems easy at first, and it is, if all you need to do is to list current contents of a mailbox folder. As soon as you want to start tracking changes, everything gets really messy. If it would be possible to use JMAP instead, it wouldn't be so hard but, as I stated, email servers do not actually support JMAP.