cypht-org / cypht

Cypht: Lightweight Open Source webmail aggregator [PHP, JS]
http://cypht.org
GNU Lesser General Public License v2.1
976 stars 153 forks source link

EWS support #247

Open hartois opened 6 years ago

hartois commented 6 years ago

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.

dumblob commented 6 years ago

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).

hartois commented 6 years ago

Also I found https://github.com/Garethp/php-ews

jasonmunro commented 6 years ago

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

hartois commented 6 years ago

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)

jasonmunro commented 6 years ago

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!

jasonmunro commented 6 years ago

New issue for a "skeleton" module set: https://github.com/jasonmunro/cypht/issues/258

marclaporte commented 4 years ago

A new release today: https://github.com/Garethp/php-ews/releases/tag/v0.9.7

marclaporte commented 3 years ago

It is active: https://github.com/Garethp/php-ews/releases/tag/v0.9.9

alfureu commented 1 year ago

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.

marclaporte commented 1 year ago

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.

marclaporte commented 1 year ago

Now at version 0.10.1: https://github.com/Garethp/php-ews/releases

marclaporte commented 11 months ago

Another approach: https://davmail.sourceforge.net/

marclaporte commented 3 weeks ago

Great news! You can expect some progress here soon!

marclaporte commented 3 weeks ago

@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: https://github.com/cypht-org/cypht/issues/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!