JMAP is sane, performant and easy to implement.
To check for new email and resync email state with IMAP should make separate call for each folder.
Even if the app tries to sync multiple folders simultaneously, the server often has a limit of max 2 connection.
With JMAP this can be done in a single call.
Microsoft's MSGraph API is similar but riddled with inner HTTP (429) errors in batch calls.
This needs extra logic to handle all cases.
My email app _Mailtemi_ actually does HTML -> Markdown.
Still curious, is it worth going this direction?
I'm using Markdown for email preview, local search, etc.
In the future I think about experimenting with voice mail.
Something like "Read all important emails", which will skip all marketing, updates, or forums.
Also I have an experimental feature email to be viewed always in Markdown.
Totally agree. More than happy with the performance.
I would worry about it if I can pair a 4K monitor to the iPhone , and it becomes a Mac, or at least an iPad.
Until this killer feature, I prefer longer time between re-charge.
Have you tried "explicit template instantiation"? If the library templates have good separation, you can just add a cpp file so the compiler doesn't need to deduce the type each time.
What a miss! 10x,
I remember when I searched for an http2 / http1.1 Proxygen hadn't HTTP 2 support yet, at least client-side. So I'made a little hack into nghttp2 to fall back for 1.1 connections.
But still, the most notable library exception is the HTTP library.
And nowadays this is the "lingua franca" for most of the internet.
There a few such libraries like nghttp2 (but it is version 2 only), boost.beast, and many others, (but they are HTTP 1.1 only). And it is not easy to combine them.
Their site(use case) looks almost similar to stackoverflow.com.
The stackoverflow.com has few MS SQL servers with a Memcached as cache.
I guess if reads are the heavy load it makes perfect sense just to continue with your current SQL DB + sharding.
If submit an app to Apple with IDLE support I would bet will be rejected. JMAP has PushSubscription which will play nice with Apple / Google push services.
Too many network hops!
Imagine if an account has an account with 3 folders and want to synchronize all of them.
Then need at least to select each folder examine is there something new and fetch needed data. This is at least 6 network calls.
You can do that with just one call in JMAP.
Some server support only basic IMAP and do not offer QResync and Condstore extensions. So to detect deleted move email you need to select entire email UIDs to see is it still there. A lo of unneeded network call just to fully synchronize client state.
I even do not want to start that some providers like Outlook don't offer UTF8 extension, so the cannot implement a good search for different languages.
Hi, the service looks neat.
As others found the verification is a bit clunky and delete email address doesn't work.
I'm working on an email app, which converts HTML/plain text to markdown. Not yet released :)
As far as see the plain/text is written markdown. I would suggest you modify content type to be
"Content-Type: text/plain; charset=utf-8; format=flowed; markup=markdown"
In this case, an email client will know it is markdown and can use it without conversion.
"Mail Mate" mac app support it, hopefully, my app for iOS soon.
Chat over IMAP seem a bit misleading title.
Their proposition is to add additional info in MIME headers. Or later some of them like Message-Id with chat info.
So seem more related to MIME and SMTP.
A client app can get those headers with different protocols too. MAPI, EWS, JMAP, etc.
I'm implementing mobile client too :)
To sync all mailboxes, not just Inbox need a lot of commands (request/response). Which add a lot of latency which is not very user-friendly on mobile.
For example currently, I' exploring JMAP and for the same amount of functionally, the API calls a just 1/10th of what needed with IMAP.
It is very difficult to build a decent email client with IMAP. So initially thought it is a no-sense. But after reading the while proposition seem very intriguing. Although it is based on email adoption will be very difficult.
The apps are not allowed to do background process. But can register a callback to be called when is in background. But there is no guarantee it will be called for sure.
ActiveSync is the best email protocol but as far as I know is very costly. JMAP is comparable to ActiveSync but will see will gain enough adoption when RFC is finished.
It is just a transport protocol.
If email is SMIME/PGP encrypted the server will return for the email that has only one attachment with mime type "application/pkcs7-mime smime-type=enveloped-data". How this blob is processed is managed by the client if support SMIME or PGP.
Do not forget email is a federated set of protocols, so the encryption cannot rely on servers, except if they are a walled garden as Proton for example.
Doesn't exist yet.
Hopefully, once the standard is finalized and has a server to offer public JMAP support will be adopted by email clients.
I'm currently working on adding support for JMAP, but to have reference server I need to build and setup latest Cyrus from scratch which was a challenging experience.
JMAP client and the protocol impresses a lot.
Just 1 to few calls, you can re-sync entire emails state in all folders.
With IMAP need to select each folder to inspect its state. Moreover, just a few IMAP servers support fast synchronization extensions like QRESYNC or CONDSTORE.
I have the project which compiles for ios, Windows, and Linux.
The best feature is that you do not need to edit source files, but just load projects for the XCode, Visual Studio IDEs, etc.
And it works well with c, c++,obj-c, swift, etc.
IMAP Search support only ASCII and you cannot search non-English content. There is an extension for utf-8, but Some of the major emails services as Outlook/Ofiice365 doesn't support it.
Also, you can search only a particular folder instead entire mailbox.
C# look like a dead end, though much better than first WinPhone with "SilverLight." If you have written c/ or c++ engine, you need just a good bridge to OS UI language. Well, also platform + tools that work well on each Unix/Linux.
Just to mention I used to like MS technologies.
Least problems I had with ASP 2 / AJAX web app which works for nine years without significant problems.