I'm currently in the process of setting up something like this.
Kolab is a FOSS groupware server that can synchronize emails, to do lists, calenders, notes, etc. across multiple devices. You can access it from the included web interface (roundcube), the recommended client (Kontact), or via Outlook with the connector installed. Android support is available via ActiveSync, and I believe Kontact Touch will be ported to Android now that Qt 5 supports it.)
If you're not interested in running your own server, there're also sites like this which sell accounts.
Here are some notes on my experiences setting it up, for anyone interested:
- Make sure you read the documentation first, because Kolab is too complex to just jump right in and hit the ground running. In particular, make sure you have a FQDN
- Kolab pulls in a bunch of different daemons, including apache2, cyrus, mysql, postfix, slapd, clamav. It's a fairly heavy-weight solution, since it was developed with enterprise users in mind.
- Multiple users can use a single installation. Users can be added/removed from a web interface.
- By default, nothing uses SSL. This is undesirable if you're planning on connecting to it over the internet. The LDAP server uses a different SSL stack to the rest of the daemons (NSS), and you'll definitely want to run it over SSL because it sends passwords in plaintext. The easiest solution I found was to create a CA cert with certutil, use that to create the certificate for use with LDAP, then export that certificate to PEM format and use it for everything else. LDAP needs to be configured online, but all the other daemons just have configuration files with entries for the path to the certificates.
- On some distros, Kontact may not be compiled with Kolab support. (e.g. Sabayon)
- RSS syncing is currently the only feature in Kontact that doesn't sync with Kolab (AFAIK), although you can embed tt-rss in the web interface.