Hacker News new | past | comments | ask | show | jobs | submit login

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.



> It is very difficult to build a decent email client with IMAP

Why do you say that? I've implemented a couple of embedded IMAP clients over the years and I always found it pretty OK to work with?


Once you try to integrate with different systems, you'll find one of the major difficulties of IMAP: nobody really cares. Every player is different. Even gmail has its own issues, like creating "folders" for each tag and duplicates the same message to each folder, so your little simple client now has custom de-duplication logic.

Working with IMAP at a large company was my first "meh, how hard could it be" hubris moment. Their implementation must've had a decade of work put into it. Seemed bizarrely complex to me, so I started a side project of building my own. My little hero developer saves the day fantasy. Could've made your same HN comment early on when my PoC integrated with its first service. My side project never advanced beyond weekendware after I started seeing why it was hard.

Eventually, the guy that worked on it all that time quit over some political drama. They asked me if I wanted to maintain the project. I tried and basically quit over it.

Also, IMAP itself sucks. Did you know the spec doesn't require emails to have a message id? Also, no servers have to return your commands in order, and they don't have ids. So you'll code shit like "if the response looks like this, it must've matched up with this one command." I could go on and on about the nickel and diming that will happen to an IMAP client that you thought would once be simple.

Fun times.


> Also, no servers have to return your commands in order, and they don't have ids. So you'll code shit like "if the response looks like this, it must've matched up with this one command."

I'm sure you know, but in case someone reads it and doesn't know it this is perfectly as intended: IMAP isn't a request-response protocol, it's more of a pub/sub protocol.


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.


One issue is that not everyone uses IMAP. What's with POP3 users (they still exist) and Exchange users?


It's not unusual for Exchange servers to have IMAP support enabled. Many organizations have bought into Microsoft's subscription model, use O365 for email instead of running Exchange servers themselves, and typically won't disable IMAP access.


POP-only mailboxes are pretty rare these days. A lot of users still use POP, but I guess mostly because they configured the mail client a decade or two ago and are not touching it again.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: