I am developing an email client based on K-9 for public use, but currently it seems that K-9 does not have good support for the Exchange protocol. This limitation is very serious, as it means that features required by Outlook or Gmail cannot be used. However, I have noticed that the built-in email client on Android has good support for Exchange. I am now very hesitant whether to continue developing based on K-9 or switch to the Android built-in email client?
Can anyone give me some advice on making this decision?
You mentioned that it’s a problem with the code submission branch. I can submit to the main branch. Why doesn’t K-9 support Exchange until today? Is it because the development difficulty is too high? I don’t know enough about the protocol.
While both Outlook/Exchange and GMail support the IMAP protocol, their specific protocols are somewhat proprietary and may change on short or no notice.
There aren’t any good implementations against either that I know. It’s easier to stick with IMAP.
Exchange is a proprietary protocol, subject to the patents, trademarks and whims of m$ so likely rather tricky to develop and maintain in an open source environment. I wouldn’t spend (some might say “waste”) my time trying to make it work (with ongoing support) in a 3rd-party application.
While gmail does do some special things on the server side (e.g., tagging), their basic mail implementations are standards-based imap and pop, which is why most open-source imap/pop clients work fine with it.
Exchange does support some IMAP functionality as I noted earlier in this thread. Gmail also does a pile of server side extensions (snoozing, filters, stars, prioritization, categorization, etc) that can’t be done in IMAP.
There are a couple other email providers, Hey and OnMail come to mind, that don’t support IMAP due to their custom workflows.