mailcow / mailcow-dockerized

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

Synchronize CalDAV and CardDAV #3357

Open strarsis opened 4 years ago

strarsis commented 4 years ago

Is your feature request related to a problem? Please describe. When migrating to the mailcow mailserver sometimes one also wants to transfer/synchronize the calendars and address books.

Describe the solution you'd like A synchronization feature similar to the already existing mailbox synchronization (IMAP for mail items) for CalDAV and CardDAV.

Additional context If there are existing tools for synchronizing CalDAV and CardDAV to SoGo (CalDAV and CardDAV implementation in mailcow mailserver), I would like to know them.

mkuron commented 4 years ago

SOGo's calendars can be accessed via CalDAV and CardDAV. See https://mailcow.github.io/mailcow-dockerized-docs/client/ for connecting client applications to it.

andryyy commented 4 years ago

I think he asked for a tool like imapsync for DAV. That's not easy. You often want to remap fields as every software seems to do whatever it likes. I like the idea of a DAV sync, but it is probably not possible to implement hassle-free.

strarsis commented 4 years ago

vdirsyncer looks nice and had been recently updated, though the author looks for maintainers. And then there is cloudron-davsync which looks very lightweight but also seems to be quite unknown. As the address book and calendar can be very important for some people and businesses and with the open and simple standards of CalDAV and CardDAV, I am surprised that there are no well-maintained and professional suites for backing up/transferring/syncing such data.

dragoangel commented 3 years ago

SOGo allow you to import (and export) calendar as ICS file and contact as vCard and LDIF formats via web UI manually. To import you need:

Export even more easy - simply choose needed item, click 3 dots and export it to file on your PC.

Yes I understand that this not automated solution but still it allows migrate data.

IetIesAai commented 3 years ago

Yes I understand that this not automated solution but still it allows migrate data.

I think there are many more use cases then this, or example keeping a contacts list in sync with eg google. If you are using an android phone for example, it is much easier if all your contacts are stored there and kept in sync with eg mailcow. Same for calendaring - it would allow you tu use eg google calendar, well known by many people, while also somewhat integrating with mailcow. So it wouldn't be usefull just for migration.

I use a gamai laddress as a "front" for my own mailserver for example (people know it, I can be a bit more relaxed with uptime for incoming mail as google takes care of that for me, etc), while still ebing in posession of all my mail after it has been collected from there. Being able to do the same for contacts and calendar via some form of dav-sync would be great.

The above mentioned vdirsyncer looks promising, if that could be integrated with mailcow it could allow for some very flexible setups!

andryyy commented 3 years ago

I do not think it would help to integrate that. I also don't see a use case for having gmail forwarding mail to you etc.

That's not why mailcow exists. Use the sync tool for your own setup as external tool on your server or wherever else, please. I don't really want to modify mailcow for this special use case. :) That just doesn't fit in the concept.

You can also setup second or third MX' for reliability or get a managed service.

There will also be cluster docs in the future (with no community support!) to setup a HA mailcow. Again, this will not be supported by me in the community. :)

Am 21.11.2020 um 12:45 schrieb tristandegroof notifications@github.com:

 Yes I understand that this not automated solution but still it allows migrate data.

I think there are many more use cases then this, or example keeping a contacts list in sync with eg google. If you are using an android phone for example, it is much easier if all your contacts are stored there and kept in sync with eg mailcow. Same for calendaring - it would allow you tu use eg google calendar, well known by many people, while also somewhat integrating with mailcow. So it wouldn't be usefull just for migration.

I use a gamai laddress as a "front" for my own mailserver for example (people know it, I can be a bit more relaxed with uptime for incoming mail as google takes care of that for me, etc), while still ebing in posession of all my mail after it has been collected from there. Being able to do the same for contacts and calendar via some form of dav-sync would be great.

The above mentioned vdirsyncer looks promising, if that could be integrated with mailcow it could allow for some very flexible setups!

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

strarsis commented 3 years ago

@andryyy: Allowing some kind of plugin system for mailcow could help with that! Offering non-community supported or custom functionality via plugins that hook into the existing docker setup to setup proper HTTP proxying.

IetIesAai commented 3 years ago

Allowing some kind of plugin system for mailcow could help with that! Offering non-community supported or custom functionality via plugins that hook into the existing docker setup to setup proper HTTP proxying.

Plugin system sounds great!

That's not why mailcow exists. Use the sync tool for your own setup as external tool on your server or wherever else, please. I don't really want to modify mailcow for this special use case. :) That just doesn't fit in the concept.

Well, that concept isn't so different from what is described here, I think? Certainly don't want to claim this would be the main reason people would use this product, I just wanted to indicate there might be other reasons people would/could use this functionality :-)

strarsis commented 3 years ago

@tristandegroof: I hadn't been aware of the Exchange integration with mailcow, this is amazing!

andryyy commented 3 years ago

It is pretty different. That's a hybrid setup for when you don't want to buy 200 user cals for an Exchange and outsource some mailboxes.

Yes, the Exchange docs are indeed great, thanks to Justin.

IetIesAai commented 3 years ago

Well, I'd say the motivation is different (money vs convenience or so :-) ), but the principle is also using a different hosted mailsystem as a "front" for your own installation. But I don't want to sidetrack this question into a debate :-)

Wastus commented 2 years ago

I've looked at the two mentioned solutions from @strarsis. cloudron-davsync is a Node.js app and uses a very old version of the WebDAV library (version 1.x where 4.x is available), so that got me discouraged.

I then tried vdirsyncer for which an unofficial Docker image exists (bleala/vdirsyncer:latest). With that I got a synchronization setup, which transferred all my contacts and calendars from my old server to my VM where I'm currently testing my new server setup. vdirsyncer is based on Python and uses a ini-style configuration.

Basically you need to setup collections, which will get synced, quite similar to the synchronize feature for mails. It can also handle different folder structures (e.g. /personal in one place and /AE54-dfcs in the other place, both being "Personal Address Book") if setup correctly. For an one way import the source can also be handled read only and the auto discovery feature will more or less just copy everything over. I'm migrating from a SOGo installation, so I'm not surprised I haven't had issues with it moving to Mailcow (SOGo underneath).

strarsis commented 2 years ago

@Wastus: I would really want to have a turnkey solution for this. Preserving data is the most important task. I hope mailcow adds a fully integrated and stable solution for this. This also helps with getting more mailcow users.

andryyy commented 2 years ago

Open for PRs

Wastus commented 2 years ago

This is beyond my comfort zone of coding at the moment, so I'll leave it for someone else to pick up - I was just sharing my experiences, so that others might find a better starting point.

andryyy commented 2 years ago

I understand. My standpoint remains: we are open for PRs.

Am 09.01.2022 um 20:19 schrieb Bernhard Weller @.***>:

 This is beyond my comfort zone of coding at the moment, so I'll leave it for someone else to pick up - I was just sharing my experiences, so that others might find a better starting point.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.

strarsis commented 2 years ago

@andryyy: I am so glad that there is mailcow. Thank you very much for all your work! Not only for the code itself, but also for the documentation and community around it.

I would surely want to contribute a PR for this feature if I got more time and proficiency.

andryyy commented 2 years ago

Thank you! ☺️

I think it’s an interesting point. I don’t think we have enough resources at the moment. But I surely like the idea.

So PRs are very welcome for reviews. Perhaps it would be good to talk about the planned approach before coding it.

Thank you, girls and guys!

worryboy commented 7 months ago

SOGo allow you to import (and export) calendar as ICS file and contact as vCard and LDIF formats via web UI manually. To import you need:

  • create new calendar or contact book
  • give it uniq name
  • click on 3 dots and choose import
  • choose needed file to import
  • done

Export even more easy - simply choose needed item, click 3 dots and export it to file on your PC.

Yes I understand that this not automated solution but still it allows migrate data.

Works , but pictures will not be migrated