ActiveSync für Kalender/Kontakte mit ownCloud, IMAP mit Dovecot


Ich habe es heute geschafft – die Ent-Googleung ist einen großen Schritt weiter! Heute habe ich mein Kontakte und meinen persönlichen Kalender , sowie das erste Mailkonto auf meinen eigenen Server umgezogen. Wichtig ist mir dabei immer die Kompatibilität mit webOS. Eigentlich ist das ganze sehr einfach:

Ich habe einen Virtual Server bei einem Webhoster, der mit Ubuntu 10.04 läuft – jedes andere Linux sollte aber genau so konfigurierbar sein. Auf meinem Server laufen Postfix und Dovecot (mit diversen Werkzeugen drumherum, um Viren und Spam zu reduzieren) für die E-Mailverarbeitung, ein Apache2 mit php5 und ein selbstsigniertes Wildcard-Zertifikat für alle Dienste, die man auf diesem Weg absichern kann. ownCloud habe ich in Version 4.0.1 installiert.

Das Problem: ownCloud bietet eine akzeptable Kontakverwaltung und einen brauchbaren Kalender, spricht allerdings nur CarDAV und CalDAV nach außen. Außer iOS von Apple spricht allerdings kein anderes der relevanten Smartphone-Betriebssysteme diese Protokolle – teilweise kann eine Synchronisation über kommerzielle “Apps” erreicht werden – das finde ich allerdings eher unbefriedigend. Was ist der gemeinsame Nenner? Alle für mich relevanten Systeme können Microsofts Activesync-Protokoll sprechen, mit Z-Push exisitiert eine erprobte Open Source-Implementierung. Z-Push kann verschiedene Backend-Systemenutzen. Zum Glück hat sich nicht nur jemand die Mühe gemacht, eine Backend für die von ownCloud genutzten Protokolle zu schreiben (das kann z.B. sogosync), es exisitiert sogar eine Implementierung, die spezifisch für ownCloud erstellt und weitgehend vorkonfiguriert wurde.

Die Installation und Basiskonfiguration ist sehr einfach zu bewerkstelligen – man braucht keine Serverdienste, nur einen Webserver mit php-Support! In dieser Konfiguration ist allerdings Mail-Push (via IMAP) nicht aktiviert. Um das auf einfachen Wege zu machen, tragt Ihr zuerst in der Datei config.php im Hauptordner Eure IMAP-Server-Verbindungsdaten ein:

// ************************
//  BackendIMAP settings
// ************************
// Defines the server to which we want to connect
define('IMAP_SERVER', 'mail.DeinServer.de');
// connecting to default port (143)
define('IMAP_PORT', 993);
// best cross-platform compatibility (see http://php.net/imap_ope$
define('IMAP_OPTIONS', '/notls/norsh/ssl/novalidate-cert');
// overwrite the "from" header if it isn't set when sending emails
// options: 'username'    - the username will be set (usefull if $
//        'domain'    - the value of the "domain" field is used
//        '@mydomain.com' - the username is used and the given st$
define('IMAP_DEFAULTFROM', '');
// copy outgoing mail to this folder. If not set z-push will try $
define('IMAP_SENTFOLDER', 'Sent');
// forward messages inline (default false - as attachment)
define('IMAP_INLINE_FORWARD', true);
// use imap_mail() to send emails (default) - if false mail() is $
define('IMAP_USE_IMAPMAIL', false);

Danach müsst ihr noch in der Datei config.php diese Zeile einkommentieren, um Mailfunktionen zu aktivieren:

//define('OC_MAIL', 'i');

In webOS hatte ich noch ein Problem mit meinem selbstsignierten Zertifikat, aber Dank des guten Palm Supports weiß ich: Ich muss eine mit dem Zertifikat versehene Seite aufrufen. Wenn ich bei der Abfrage bestätige, dass ich dem Zertifikat vertraue, wird es permanent auf dem webOS-Gerät hinzugefügt und auch der Exchange ActiveSync meckert nicht mehr!