mailcow / mailcow-dockerized

mailcow: dockerized - 🐮 + 🐋 = 💕
https://mailcow.email
GNU General Public License v3.0
9.09k stars 1.19k forks source link

ActiveSync notes synchronization #2723

Closed immanuelfodor closed 5 years ago

immanuelfodor commented 5 years ago

Is your feature request related to a problem? Please describe. I tried out Nine with ActiveSync connecting to a mailcow-dockerized instance, and it works great!

However, there is a small annoyance, the app says the server doesn't support syncing notes which would be indeed a desirable feature to leave Google Keep behind.

Screenshot_20190624-065313

Describe the solution you'd like I would like to have the notes syncing feature working over ActiveSync even if there is no web interface to access them. There is a feature request open for SOGo but I can imagine we don't need to wait for them. Is it possible to add a new notes-supporting docker container to the compose file, linking them together, and then adding a new Nginx location to support it? I might be able to do a PR if you point me to the right direction. Please advise with an explanation why it can't be done otherwise.

Additional context For example, Kopano supports notes. How they do it?

mkuron commented 5 years ago

This feature is still missing in SOGo. There is no way to connect SOGo and Kopano together because EAS is more than just different URLs, sorry.

immanuelfodor commented 5 years ago

@mkuron thanks for the quick reply. I don't want to connect SOGo and Kopano, and I wrote that I'm aware notes are missing in SOGo. I asked about how could I make notes work in Android app Nine through ActiveSync with mailcow-dockerized - is there a third party tool which I could integrate to have notes sync? I could make another Nginx server/location to proxy there the notes, or anything like that. I would be happy even if there is no frontend to it on the web interface, just the mobile sync works. Or SOGo is the only way to have notes sync because ... (insert explanation here)?

immanuelfodor commented 5 years ago

Here is the MS-ASNOTE protocol description, this is pure XML, I imagine there are other tools out there that are capable handling it. SOGo can do its thing with all other supported sync items in mailcow-dockerized, but maybe another tool can live besides it to handle only notes. Would it be possible to do such? If not, why? https://docs.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-asnote/21801d6c-000e-413c-8591-50430a8e9fd9

mkuron commented 5 years ago

That's the payload, inside the EAS XML requests. You would need to write a proxy that reads the XML and distributes requests accordingly, manage the combined sync state, etc. Essentially you would write half an EAS server.

immanuelfodor commented 5 years ago

Okay, so it doesn't work like /contacts is handled by SOGo and /notes is by app X sharing the same /auth endpoint but with different payload schema on each endpoints. Thank you for the explanation, I can accept it then that we need to wait for SOGo support notes later.

danbo commented 4 years ago

For example, Kopano supports notes. How they do it?

It looks like they are using z-push. https://wiki.z-hub.io/display/ZP/Compatibility