EWS support
hartois opened this issue · 16 comments
Hello.
Have you any plans about EWS (Eschange Web Services) support?
Office 365 accounts with F1 (prev K1) license does not support IMAP but support EWS.
I known that Office 365 has web interface) But it very very stupid and heavy!
Many of my workstations with 2 GB RAM cannot use it.
On Linux desktop I use Evolution and I'll be happy to have an adequate web interface for the O365.
Well, this proposal makes sense. But on the other hand Cypht is quite bound to IMAP and I guess, that adding EWS support would take a lot of effort. I'm curious what @jasonmunro thinks.
Btw I've taken a look at the glossary for all the specs (see https://msdn.microsoft.com/en-us/library/office/hh285607(v=exchg.140).aspx ) and it's really long and complicated.
Then I've search for "exchange web services" on Github and the very first link was https://github.com/jamesiarmes/php-ews which seems feasible to use, but I'm not sure about security concerns etc. There are also other PHP libs on GitHub (e.g. https://github.com/rileydutton/Exchange-Web-Services-for-PHP ) and of course many libs in other languages - a good place to study (rather than reading all the specs).
Also I found
https://github.com/Garethp/php-ews
Oh boy, Email over SOAP, thanks Microsoft! :)
Seriously though, at it's core Cypht is a data aggregator. While our main focus is Email, specifically IMAP, this could be implemented as it's own module set similar to POP3. While I think this would be cool to support (same with jmap), the big obstacle is the time it would take to code up. Not too mention I really don't care for XML based protocols having just built an ABAC XACML system in python. shivers
The ability to leverage an existing lib for the heavy lifting would make it easier for sure, but as @dumblob correctly points out any third party project we incorporate means we inherit all the potential problems of that project (I'm not against that, it just is a concern).
With all that said, as of right now I don't have plans to implement EWS, but I'm definitely not against it. I'm happy to leave this request open. You never know - maybe someday somebody will want to contribute code to get this done, or I will find time to do it. I appreciate the feedback and suggestion @hartois
I understand.
If I can find free time, I'll try to implement a module that uses a third-party php-ews library. I do not think that it should be included in the upstream.
Maybe I need help writing a module - I will ask questions here)
I am willing to help with any questions. Currently the best resource for module set development is here:
https://cypht.org/modules.html
We have a "hello world" module set example that explains the basics, but now that I think of it, I could put together a skeleton module set for new data sources that share some or all of the features of IMAP (it's by far the most complicated data source Cypht supports). It would not actually do anything, but it would have all the settings and classes defined to support another E-mail like protocol.
I think this would help you integrate a third party EWS module set, and I think I could whip something up pretty quickly. I will create a new issue for it. Thanks again for the feedback!
New issue for a "skeleton" module set: #258
A new release today:
https://github.com/Garethp/php-ews/releases/tag/v0.9.7
It is active: https://github.com/Garethp/php-ews/releases/tag/v0.9.9
I would also love to see an EWS support, including calendars and contacts.
The scenario: if you work for multiple organizations, one using Google services, another Microsoft, there are very very limited means to merge calendars and be able to schedule things somewhere centrally. Some clients exist, but support is poor. It would be amazing if an EWS support could be implemented alongside the existing ones.
It's unlikely an Open Source developer will be motivated to volunteer/contribute for interoperability to a proprietary solution. Realistically, we'll need a sponsor for this to happen. If someone out there can make that happen, please reach out to me and let's make it happen.
Now at version 0.10.1: https://github.com/Garethp/php-ews/releases
Another approach:
https://davmail.sourceforge.net/
Great news! You can expect some progress here soon!
@hartois @dumblob @alfureu: Great news! Over the next few weeks, we will integrate https://github.com/Garethp/php-ews/ into Cypht.
The focus will be email but once that works, it will be easy enough {famous last words? :-)} to extend to contacts and calendars. Although calendar support in Cypht is pretty basic, Cypht within Tiki provides more advanced calendaring: https://doc.tiki.org/Calendar-Invitations-by-email
Cypht already supports JMAP: #180 so I predict that Cypht will be the first Open Source standalone webmail that supports all three: IMAP and JMAP and EWS. So this will be a quite interesting unified inbox!
We need testers!
1st contribution to upstream: Garethp/php-ews#266
We still need testers!