Most active commenters
  • calvinmorrison(4)
  • jeffbee(4)
  • rmccue(3)
  • camgunz(3)
  • superkuh(3)
  • mjl-(3)
  • Aloisius(3)
  • Avamander(3)

227 points michidk | 77 comments | | HN request time: 2.067s | source | bottom
1. therein ◴[] No.43532935[source]
Interesting no attempt has been made to make it at least be less heavy on networked bytes. Especially since it is old and was meant to be used on a connection with no compression or encryption.

HasChildren could have been Parent, HasNoChildren could have been Leaf or Child. And so many more things.

replies(9): >>43533215 #>>43533340 #>>43533359 #>>43533375 #>>43533379 #>>43534129 #>>43534618 #>>43535965 #>>43537720 #
2. philipwhiuk ◴[] No.43533215[source]
The protocol has ossified and been entrenched. In general more efficient usage of IMAP relies on extensions to the protocol.

A modern replacement (JMAP) hasn't been adopted by major providers.

If you really cared about data transfer size you'd use something like Protobuf.

replies(4): >>43533521 #>>43535069 #>>43535169 #>>43538005 #
3. avar ◴[] No.43533340[source]
Networked bytes generally don't matter, networked packets do. Would your proposed change move the needle on that?
4. shiandow ◴[] No.43533359[source]
It could have, but for stuff you only do once per session that seems excessive. Better to have names that need no explanation, especially for stuff that I think is completely optional.
5. zaik ◴[] No.43533375[source]
Despite people always complaining about their perceived inefficiencies, standard protocols like IMAP or XMPP always seem to work on a crappy connection, when most of the modern web doesn't.
replies(2): >>43535181 #>>43545484 #
6. nirui ◴[] No.43533379[source]
Probably wrong context, but the more code I wrote, more I like the these `Has`+Noun style naming than just Noun. Reading `HasChildren` will give you a clearer expectation of what the function would do and return, while `Parent` gives far weaker indication.

Maybe they thought the same when they were designing the protocol.

Also, in the context of email, given the size of each mail (including headers and body), these bytes "waste" maybe insignificant.

7. rmccue ◴[] No.43533504[source]
I started writing a guide to IMAP back when I was working on an email client: https://github.com/rmccue/griffin/tree/master/docs/imap

Pulling large amounts of data for things like threading can be difficult on certain servers; my preferred approach ended up being to pull every ID and thread ID to maintain an in-memory tree. (This was, iirc, partially because Gmail’s implementation was slightly crippled with relation to threading.)

(I never finished the guide because I stopped on the project, alas - if IMAP were easier to work with, I might have finished it! And sadly, no JMAP support on Gmail, and the gateway was broken.)

replies(2): >>43535532 #>>43538067 #
8. jgalt212 ◴[] No.43533521{3}[source]
IMAP COMPRESS?
9. camgunz ◴[] No.43533803[source]
I've been working on some email stuff and I think probably four things are vexing about IMAP:

- The grammar is hard. I built a parser using lpeg and I'm incredibly glad I did--doing it ad hoc won't lead to good results.

- It's an asynchronous protocol. You can send lots of requests to a server and you have to tag them so you can match them up with responses later. You don't generally want to do that in a client; i.e. you don't want to do these transactional things over an async connection and track state across all of it. You want to like, block on deleting things, renaming things, sending things, etc.

- IMAP is multi-user--it's built around the idea of multiple clients accessing the same mailbox at the same time and streaming updates. Another thing you really don't want to deal with when building an email client.

- There's functionality that you basically shouldn't use; the big one is search. Even the specs more or less say "good luck using this".

You can group all this under the a heading of "we thought people would use this over telnet", but attachments and non-plain-text email I think made that non-viable.

I think this all means probably every non-web email client treats IMAP like POP and keeps its own store. I haven't done a survey or anything, but I'd be surprised if that weren't true.

replies(5): >>43533865 #>>43533989 #>>43535295 #>>43537072 #>>43539698 #
10. mr_mitm ◴[] No.43533865[source]
> I think this all means probably every non-web email client treats IMAP like POP and keeps its own store. I haven't done a survey or anything, but I'd be surprised if that weren't true.

Pretty sure mutt doesn't. It only caches the headers.

replies(4): >>43533968 #>>43534820 #>>43536330 #>>43537989 #
11. ldite ◴[] No.43533968{3}[source]
same for alpine (https://alpineapp.email/)
12. pferde ◴[] No.43533989[source]
I've found the server-side search functionality works very well, if you have good server implementation. Dovecot's, for example.

And as for treating IMAP like POP, yes, there are clients that only pay lip service to "having IMAP support", only so that they can have one more green checkbox in feature list that their present in their marketing. But there are also more serious clients.

13. throw0101d ◴[] No.43534129[source]
> Interesting no attempt has been made to make it at least be less heavy on networked bytes.

Kind of a surprising observation given the first spec (IMAP2) was released in 1998, when dial-up was still a thing:

* https://datatracker.ietf.org/doc/html/rfc1064

IMAP4 was in 1994:

* https://datatracker.ietf.org/doc/html/rfc1730

ITU V.32 gave us 9.6 kbit/s in 1998, and V.34 was 28.8 kbit/s in 1994:

* https://en.wikipedia.org/wiki/List_of_ITU-T_V-series_recomme...

replies(1): >>43535650 #
14. bpev ◴[] No.43534483[source]
For the extra interested… reminded me of this one: https://explained-from-first-principles.com/email/
15. ocdtrekkie ◴[] No.43534618[source]
When every new Gmail client ships with an entire web browser embedded to load their hundred megabytes of JavaScript, I think we've long jumped the shark on caring about brevity in the length of information in the protocol itself.

It might have mattered back then but now it would be less than a rounding error.

16. nashashmi ◴[] No.43534731[source]
Can IMAP be used as a file server system? Outlook has this functionality, where files can be stored directly outside of emails.
replies(2): >>43535885 #>>43538125 #
17. camgunz ◴[] No.43534820{3}[source]
Oh, yeah I guess that's what I mean, and then your connection can be used basically (again) like POP
replies(1): >>43537529 #
18. superkuh ◴[] No.43534900[source]
Of course these days the mega-corp walled garden email providers don't really follow standards like IMAP. IMAP will not work with, say, Google's gmail or Microsoft office365, or AT&T ISP email, etc, etc. They have each implemented their own proprietery out-of-band authentication system that only works over HTTPS using the OAuth2.0 toolkit to build it. Any email client that does not explicitly design for each particular OAuth2.0 implementation (each megacorp's is slightly different) will not be able to connect over IMAP (unless they login via HTTPS using a web browser and set up "app passwords" for google, or similar for others).
replies(4): >>43535154 #>>43535551 #>>43536258 #>>43544796 #
19. FuriouslyAdrift ◴[] No.43535069{3}[source]
JMAP is fully supported (since 2019) for Fastmail

https://www.fastmail.com/dev/

replies(1): >>43535193 #
20. calvinmorrison ◴[] No.43535154[source]
When I worked at fastmail there was of special fix code. You see it with firefox and chrome too, oh this popular site is breaking lets put a hardcoded if statement in. I specifically remember magic fixes for iCal.
21. calvinmorrison ◴[] No.43535169{3}[source]
Well and you could of course server JMAP over something like Protobuf, JSON is used for ease of use but it's not like thats required feature.

The bigger benefit of JMAP is it's well designed for dealing with deltas and changes and syncing data requiring less roundtripping than IMAP.

replies(1): >>43537029 #
22. Loudergood ◴[] No.43535181{3}[source]
Back in the day when I worked at a WISP with 2.4Ghz mountain top antennas the one thing that would work when we were having massive icing issues was email. It was very impressive how it would get through even with massive packet loss and transfer rates measuring in bytes per second.
23. n3storm ◴[] No.43535193{4}[source]
Jmap was developed by Fastmail, meanwhile all primary FLOSS mail servers do not support it and just new projects like Stalwart are starting to bring it up.
24. jcranmer ◴[] No.43535295[source]
> - There's functionality that you basically shouldn't use; the big one is search. Even the specs more or less say "good luck using this".

Message sequence numbers. Every folder in IMAP has its emails numbered from 1-N, with no holes, so if you delete a message, everything after it has its message sequence number decremented to close the hole. Except IMAP is multiclient, and the message can be deleted by other connections than the one you're currently on. But the server is only allowed to tell you about message deletions at certain points, so now the server has to keep essentially per-client message sequence number state and carefully make sure that everyone is kept in sync... and it's a recipe for disasters in practice. Any sane client will instead use UIDs for everything (and any sane server will implement all the UID extensions to let UIDs be used for everything).

The other fun corner case I recall is that IMAP part numbering is a little unclear what happens around body parts of content-type message/rfc822. So I crafted a message that had a multipart/mixed with one leg being a message/rfc822 whose body was a message/rfc822, and tested the output on all 4 IMAP server implementations I had accounts on at the time to see how they handled the part numbering. I got back 4 different results. None of them were considered correct by the IMAP mailing list discussion on the experiment.

> I think this all means probably every non-web email client treats IMAP like POP and keeps its own store.

The distinction I would use is thin client versus thick client. Most clients like Outlook or Thunderbird are thick clients, which need to maintain their own local database for other reasons (like supporting offline mode or having database features not necessarily supported by an IMAP server, like arbitrary tagging). If you've got a local database, it's much saner to use IMAP essentially as a database synchronization protocol rather than trying to build a second implementation of all of your features on top of IMAP's native features, especially given that IMAP server implementation of these features is generally questionable at best.

IMAP was originally designed, it seems to me, to make thin clients easy to write (I can see how something like pine would be a very thin veneer over the protocol itself). But it's been clear over the past few decades that most clients are of the thick variety; things like QRESYNC and CONDSTORE were added to make the database synchronization steps a lot easier.

replies(1): >>43537257 #
25. tiahura ◴[] No.43535481[source]
I've been looking to migrate from Exchange-Outlook, but there really aren't any options. There just isn't an open source solution to have an integrated email / tasks / events / contacts, with consistent labels across item types and reminders.

With Outlook, i can use a custom view to see every item in a category flagged for follow-up. I can also set a reminder on a contact, or drag an email or contact onto my calendar to create an event.

replies(1): >>43536230 #
26. jeffbee ◴[] No.43535532[source]
> Gmail’s implementation was slightly crippled

Gmail is not "crippled". A tiny but vocal community of old nerds have a petrified mental model of email that they associate with unix IMAP software from the 1990's, but those concepts do not appear in the IMAP standards anywhere.

replies(3): >>43536205 #>>43536798 #>>43537704 #
27. jeffbee ◴[] No.43535551[source]
Struggling to think of a way in which "IMAP will not work with gmail". Please explain.
replies(1): >>43537792 #
28. throw0101d ◴[] No.43535650{3}[source]
s/1998/1988/
29. SSLy ◴[] No.43535885[source]
most servers would reject entries without any headers as malformed
30. lotharcable2 ◴[] No.43535965[source]
IMAP had its day in the sun, but the advent of big webmail providers (especially gmail) has killed off the advancement of email clients. Now all major development is focused on trying to recreate Gmail to varying degrees of success. It all ends up internal to one or another corporation so they are just all endlessly reinventing the wheel with IMAP just being relegated to a afterthought front end to some sort of search-based backend.

Actually having a email client software running on your machine is extremely nitch and is mostly in the realm of self-hosters and legacy holdouts that won't let their clients go.

A most advanced modern approach is to just use POP3 to download your emails to a local Maildir and have them indexed there non-destructively. And then sync between your various machines that you want your email accessible using some sort of file sync or P2P solution.

I use notmuch for this. It automatically indexes and tags emails and thus enables much more advanced email management solutions then what can be offered over something like IMAP.

The main advantage of this is that 'folders' are managed virtually. There is no shuffling or copying or editing of emails done normally. I only have to worry about backing up my emails and notmuch config as all the rest can be regenerated relatively quickly.

This is more or less replicating what Gmail and other webmail providers do server side.

Where as the traditional approach shuffling and moving and deleting of emails on some imap server is fairly dangerous and expensive operation. Mistakes can lead to data loss and are often very difficult to reverse.

31. dbcurtis ◴[] No.43536205{3}[source]
That is an immature view on how real products and real standards work. The standard document may say one thing, but what people do in the real world is the real standard.

For context: I spent 11 years at Intel managing pre-silicon and post-silicon processor validation. No processor that does only and exactly what the Programmers Reference Manual says, and takes the phrase "undefined behavior" seriously, will be successful. Google would do well to adjust their philosophy.

replies(3): >>43536447 #>>43536486 #>>43537541 #
32. beagle3 ◴[] No.43536230[source]
Thunderbird has it all. I don’t like the way thunderbird does it, but I like outlook even less… so thunderbird it is.
replies(2): >>43536495 #>>43536845 #
33. slightwinder ◴[] No.43536258[source]
> IMAP will not work with, say, Google's gmail or Microsoft office365

Except they do, to some degree. It works well enough that my Thunderbird allows me fetching or moving of mails. Not sure about advanced features like search or server-side filtering, never tried them, but this seems to be a bit more wacky with other clients & servicers too.

> They have each implemented their own proprietery out-of-band authentication system that only works over HTTPS using the OAuth2.0 toolkit to build it.

True. Gmail at least had a long while application-passwords. I think they changed this only recently? Or are they still a thing?

replies(2): >>43539730 #>>43547057 #
34. throw0101c ◴[] No.43536330{3}[source]
> Pretty sure mutt doesn't. It only caches the headers.

Seem like it can cache message bodies:

* http://www.mutt.org/doc/manual/#message-cachedir

* https://neomutt.org/guide/optionalfeatures.html#body-caching

35. jeffbee ◴[] No.43536447{4}[source]
If an x86 implementation was imperfectly compatible with Intel CPUs, nobody would buy it. Gmail, on the other hand, is a massive market success. It is those who shout that IMAP must be exactly and only whatever mutt+uw was doing in 1997 who are on the wrong side of history.
replies(1): >>43539668 #
36. rprospero ◴[] No.43536486{4}[source]
It's been an odd running theme for me today that I've misinterpreted posts. Up until your final sentence, I thought that the thesis of your post was:

The standard document may say one thing, but what people do in the real world is the real standard. If your software has issues with the world's most popular IMAP server, you need to adjust your software to be compliant with the standard.

I'm personally more sympathetic to your actual conclusion, but it's odd how often a single argument can be used to support two conflicting beliefs.

replies(1): >>43537741 #
37. ◴[] No.43536495{3}[source]
38. ptx ◴[] No.43536798{3}[source]
Which concepts are you referring to?

RFC 9051 says that it was "developed for" RFC 822 and that one should now refer to RFC 5322 instead. And RFC 5322 does discuss threading, which is the what the comment you're replying to was talking about, so that concept does appear (by reference) in the IMAP standards.

Are there other parts of the community that implement IMAP using the same "mental model of email" that Gmail is using? Or are you saying that anyone using IMAP with anything but Gmail is an old nerd and a tiny minority?

39. tiahura ◴[] No.43536845{3}[source]
Thunderbird doesn’t do most of this. It uses tags for emails and categories for events. Also, no way to view all items with same category. Can’t drag contact to calendar or task list. Can’t set specific reminder times. …
40. Mailtemi ◴[] No.43537029{4}[source]
Can confirm that (implemented JMAP). Deltas and asking for the entire mailbox instead of folder by folder is really good. And as a side effect: 1. Less client-side logic for sync. 2. There are many JSON parsers compared to IMAP, making it way easier to use. For example, in C++, you only need a JSON headers-only library, whereas IMAP is meh—only Linux, or clunky usage. Btw, I made one from scratch (IMAP Parser). 3. Goodies like offloading HTTP to the mobile network stack, which supports TLS 1.3 and offline (background) sync, compared to manually extracting certificates from an IMAP connection to validate against the device keychain. It's just 10x easier.
replies(1): >>43542512 #
41. mjl- ◴[] No.43537072[source]
> You can send lots of requests to a server and you have to tag them so you can match them up with responses later

Yes, you can match the final OK/NO/BAD responses with the original command based on the tag. The annoying thing is that each command typically sends most of its data in "untagged responses". And IMAP servers can send unsolicited untagged responses at any time too. It's quite tricky to handle all those responses correctly in email clients. Indeed, normally you just want to send a command, and get all the data for that command back until the finishing response. IMAP clients typically open multiple connections to isolate commands.

replies(1): >>43539411 #
42. mjl- ◴[] No.43537257{3}[source]
> Any sane client will instead use UIDs for everything

Yes! Since last year there's the experimental UIDONLY extension that allows clients & servers to operate entirely without message sequence numbers. Saves quite a bit of accounting and possibly memory (for large mailboxes). It's a bit surprising the RFC so recent.

> [... thick vs thin clients ...]

For some programmatic email access, IMAP seems quite easy to use. Just write a programmer-readable line of text as command (eg fetch/search/store/etc) and parse the response lines (that's a bit trickier in many cases, probably needing a library, but you may be able to get away without it some of the time) and you're done.

About thick clients: Storage capacity is growing much harder than my email, also on mobile. I would be fine with thick clients that sync all messages. Allows for simpler protocols and simpler implementations. An email access protocol is then not much more than a two-way sync of email message files and associated "dynamic data" like flags/keywords.

But IMAP and JMAP are doing many things at once: synchronization for thick clients, and online access for thin clients. JMAP is specifically targeting the web (thin clients), so what was old is new again (although base IMAP isn't too helpful to (web-based) thin clients either).

43. azhenley ◴[] No.43537378[source]
I've been trying to get approval from Google for the sensitive scopes to use IMAP, and they classified us as needing "CASA Tier 3 Security Assessment". It looks like it is going to be a long, tedious, opaque, and expensive process.
replies(1): >>43540596 #
44. mr_mitm ◴[] No.43537529{4}[source]
Ah, now I see what you mean. True.
45. donnachangstein ◴[] No.43537541{4}[source]
If history has taught us anything, it's that Google is happy to willfully ignore, rewrite, and use their market dominance to snuff out any existing standards if they see a way to seize control and make money off something.
replies(1): >>43544927 #
46. rmccue ◴[] No.43537704{3}[source]
My memory is hazy on it, _but_ from memory, there were some issues around IDs and persistence which don't occur on other servers, as well as the auth being a bit funky. (Gmail also uses its own extension to the protocol for IDs instead of using eg OBJECTID.)

To be clear, I have no opinion on IMAP or what things _should_ do; I certainly was not using IMAP software in the 1990s :) However, trying to implement a client that works across providers does mean trying to operate per the standards, which was a struggle and why I started documenting it :)

replies(1): >>43544896 #
47. accrual ◴[] No.43537718[source]
That was a pretty interesting read. I didn't realize one could interact directly with an IMAP server like we can with FTP and telnet + HTTP.
replies(1): >>43538259 #
48. csb6 ◴[] No.43537720[source]
There is an extension that adds compression. [0] I think most widely-used servers implement it (at least Gmail and Dovecot do)

[0] https://www.rfc-editor.org/rfc/rfc4978.html

49. rmccue ◴[] No.43537741{5}[source]
Yeah, agreed! I titled my guide "Practical IMAP" for reason (and almost called it "IMAP As She Is Spoke"). The standards are useful to a point, but actually to jeffbee's point the internet has evolved a lot since then, and how to actually work with modern email is a pretty underdocumented - including by Google themselves on the Gmail-specific parts.
50. Aloisius ◴[] No.43537792{3}[source]
It can, but it does require doing a lot of Google-specific things (set up a google cloud account, create a consent screen, get a security review, justify your usage of the IMAP API instead of the web APIs to them, find the right scopes, etc) or instruct users to go through multiple screens in their google settings to create an app password.

Google really doesn't want you to use IMAP. They're trying to push everyone to their neutered web apis instead.

replies(1): >>43537971 #
51. jeffbee ◴[] No.43537971{4}[source]
You seem to be taking the perspective of an application developer or something like that? Certainly for users all they need to do is roll in with their favorite IMAP client and use it. All of what you said applies not at all to users.
replies(2): >>43538359 #>>43547068 #
52. ◴[] No.43537989{3}[source]
53. Aloisius ◴[] No.43538005{3}[source]
IMAP 4rev2 merged in a most of the common extensions into the base protocol. Sadly they left out the THREAD, QRESYNC and OBJECTID, though they reference them.

Of course, major providers like Gmail don't support that as well.

54. mjl- ◴[] No.43538067[source]
> I started writing a guide to IMAP back when I was working on an email client

I would be very interested in hearing from developers about how they write email clients that need to work with all the servers out there, with the varying levels of IMAP4 (original, rev1, rev2, combinations of at least a dozen extensions) and various levels of buggy behaviour.

I'm assuming a client developer would implement various "profiles". With an "advanced" profile for servers that implement things like CONDSTORE/QRESYNC, and a "very basic" profile that only do the absolute minimum. And probably a profile or two in between. When you encounter unexpected behaviour (eg bad syntax in protocol), you would downgrade the profile for that server for a while (it may get fixed)? If it works like this, I'm curious to the profiles developer choose. If it's not like this, I wonder how client developers work around compatibility issues (can't just keep reconnecting and trying the same if it results in an error!).

replies(1): >>43539669 #
55. thesuitonym ◴[] No.43538125[source]
This is one of those questions where the answer is technically `yes', but for all practical purposes should be considered `no'.
56. chasil ◴[] No.43538259[source]
POP is a little simpler, but IMAP is designed for concurrent access by multiple clients to the same account.

What this article doesn't address is OAUTH, which is required more often now.

replies(1): >>43538295 #
57. kazinator ◴[] No.43538295{3}[source]
That's a hugely important use case, especially nowadays. People have mail clients running at the same time from multiple devices; e.g. desktop and mobile. Also multiple browser tabs with an instance of their webmail.
58. Aloisius ◴[] No.43538359{5}[source]
> roll in with their favorite IMAP client and use it

That's just it. Lots of client developers, especially open source ones, balked.

So to use something like mutt with gmail requires a user go into their google settings, set up 2fa then create an app-specific password. And if a user is on a Google Workspace account with "insecure" passwords turned off, they either have to do all the gcloud/consent/etc. stuff themselves or steal a client secret from another client.

Oauth client secrets aren't really compatible with open source and oauth flows don't work well in terminals. Google's onerous process didn't help and on top of that, using oauth means getting hit by Google's quotas.

Who knows how long Google will support app-specific passwords? Or perhaps they'll start forcing 2fa via their own gmail app every login.

59. camgunz ◴[] No.43539411{3}[source]
Oh shit, of course. The main thing is you can't rely on a double \r\n to terminate a response; you have to track the tag, and yeah it's mega annoying. But multiple connections fixes that, wow.
60. XorNot ◴[] No.43539668{5}[source]
It's a free email account, it is not at all clear that "weird IMAP" is core to that success?

Certainly I moved away to Fastmail, which has better IMAP support (but mostly because Google having full control of my email address was becoming too big of a risk and Google Apps is expensive for your own domain).

61. csb6 ◴[] No.43539669{3}[source]
As someone currently working on an IMAP client, my strategy has been to start by implementing the base IMAPrev2 specification and checking that it still works with a rev1 server. RFC 9051 has guidance on how to handle servers that use older IMAP protocol versions and is largely backwards compatible.

The goal is to have the client work without any extensions. E.g., if the server doesn’t have the UNSELECT capability it falls back to selecting a nonexistent mailbox (which has the same effect). Obviously there are some very useful extensions that the client needs to support, but those can be viewed as optimizations to reduce network traffic or add extra features if the server supports them.

62. userbinator ◴[] No.43539698[source]
You can group all this under the a heading of "we thought people would use this over telnet"

No, the grammar is too convoluted for that. It's more like "we thought text-based protocols are better".

POP3 and SMTP are relatively easy to use manually. IMAP is not.

63. XorNot ◴[] No.43539730{3}[source]
OAuth works fine for major providers in Thunderbird...unless you're using hard tokens with pin number requirements right now (the entry form doesn't display).
64. steeeeeve ◴[] No.43540001[source]
This is the kind of thing I would have expected to read in 2600 back in the day. And why I _always_ looked for 2600 at the bookstore.
65. isaachinman ◴[] No.43540596[source]
What are you building?
replies(1): >>43540705 #
66. azhenley ◴[] No.43540705{3}[source]
An email client for Gmail.
replies(1): >>43546351 #
67. calvinmorrison ◴[] No.43542512{5}[source]
It's designed well, from the ground up with a lot of lessons learned from some pretty serious email junkies. Anyone hemming and hawing about JSON being selected as the transport encoding or whatever is just raising silly points. You could do JMAP over protobuf too probably if you cared, but the whole point (IMO) is to get the hell away from unstructured protocols.
replies(1): >>43543050 #
68. Mailtemi ◴[] No.43543050{6}[source]
Yep, there's always someone ranting about JSON inefficiencies, which I don't observe at all :)
replies(1): >>43548802 #
69. Avamander ◴[] No.43544796[source]
> Of course these days the mega-corp walled garden email providers don't really follow standards like IMAP.

Not really true. It's usually the client implementations that violate the standard in some way or another, like Outlook. But there are way more bespoke rare clients that have poor implementations.

> They have each implemented their own proprietery out-of-band authentication system that only works over HTTPS using the OAuth2.0 toolkit to build it.

Well, no. They have implemented OAuth and that's not proprietary. They do it because plain login has massive downsides.

70. Avamander ◴[] No.43544896{4}[source]
> Gmail also uses its own extension to the protocol for IDs instead of using eg OBJECTID.

When was OBJECTID introduced and when did gmail roll their own implementation, do you happen to know?

71. Avamander ◴[] No.43544927{5}[source]
Absolutely, but in the context of IMAP, it's already a mess of special cases. Gmail having a weirdness, an extension or two changes basically nothing. Not to mention the fact that what they offer over the web is more flexible than what IMAP usually allows, it simply does not and can not map directly to IMAP.

It's really dumb that one message has* to exist in only one location for example, labels are so much better.

72. andrewshadura ◴[] No.43545484{3}[source]
Is this a joke? Both XMPP and IMAP are terrible over an unreliable connection.
73. isaachinman ◴[] No.43546351{4}[source]
Interesting. I take it you've seen Notion's new product?

Are you aiming to directly compete with Notion/Superhuman?

Edit: I see you're an academic, perhaps my questions are irrelevant

74. superkuh ◴[] No.43547057{3}[source]
Look in the thunderbird source. The devs had to make a many hundreds of lines config for each mega-corp. So, yeah, the mega-corps are covered by major workarounds in major email clients. But for normal email clients it's very hit and miss.

And while OAuth2 is open it is a toolkit for making protocols, not a protocol. And each megacorps implementation is different and handled differently.

75. superkuh ◴[] No.43547068{5}[source]
It does. Gmail disabled imap login for everyone. You explicitly have to find and set up a special "app password" to enable just IMAP now. Many major corporate email clients (like thunderbird) have implemented these corporation-mail-company specific work arounds though so the user doesn't notice them.
76. calvinmorrison ◴[] No.43548802{7}[source]
oh i mean i rant about it too but its like, a byproduct of the real goal, and since most clients are running some type of webapp it makes sense. you could definitely use something like messagepack or protobuf if you had an extension that negotiates it.