Immer wieder fragen Kunden nach ActiveSync Unterstützung für ihre Mailbox. Bis anhin musste ich immer sagen: „Das wird leider nicht unterstützt“.

Doch heute Abend bin ich über Z-Push gestolpert und hab‘ das mal ausprobiert. Hier ist eine ganz kurze und rudimentäre Installationsanleitung (und hier ist die Originalanleitung):
1. Tarball in Verzeichnis /var/www/z-push entpacken
2. Die config.php anpassen:

    • Timezone auf Europe/Zurich anpassen
    • $BACKEND_PROVIDER = „BackendIMAP“;
    • Für den Fall, dass der IMAP Daemon auf dem gleichen Server läuft, brauchen wir kein TLS oder SSL:
      • define('IMAP_SERVER', 'localhost');
      • define('IMAP_PORT', 143);
      • define('IMAP_OPTIONS', '/notls/norsh');
    • Ist Courier IMAP auf einem Remote Server, dann ist allenfalls TLS oder SSL angesagt (ungetestet).
      • TLS:
      • define('IMAP_SERVER', 'remote.server.net');
      • define('IMAP_PORT', 143);
      • define('IMAP_OPTIONS', '/norsh/novalidate-cert'); # falls das Zertifikat self-signed oder sonstwie nicht trusted ist
      • SSL:
      • define('IMAP_SERVER', 'remote.server.net');
      • define('IMAP_PORT', 993);
      • define('IMAP_OPTIONS', '/notls/norsh/novalidate-cert'); # falls das Zertifikat self-signed oder sonstwie nicht trusted ist
  • Die Datei backend/ics.php nach backend/unused/ics.php verschieben (wird nicht benötigt. Directory unused muss vorher erstellt werden).
  • Die Apache Config wie folgt ergänzen:
    <Directory /var/www/z-push>
    php_flag magic_quotes_gpc off
    php_flag register_globals off
    php_flag magic_quotes_runtime off
    php_flag short_open_tag on
    </Directory>
    Alias /Microsoft-Server-ActiveSync /var/www/z-push/index.php
  • Apache neu starten/reloaden und ausprobieren.

Einige Tipps habe ich übrigens von diesem Artikel.

Mir persönlich passt nicht so, dass das state Directory und das Debug-Logfile debug.txt innerhalb des Apache Document Roots liegen. Deshalb verschiebe ich das nach ausserhalb.

In der config.php gibt es zusätzlich folgende Änderung:

  • define('STATE_DIR', '/var/lib/zpush-state');

Natürlich muss das Directory auch noch erstellt werden:

  • mkdir /var/lib/zpush-state && chown www-data:www-data /var/lib/zpush-state

Damit das Debug Logfile nach /var/log/zpush/debug.log schreibt, braucht es folgende Änderung in der Datei debug.php:

In der Funktion debugLog folgende Zeile ändern:

  • @$fp = fopen('/var/log/zpush/debug.log', "a");

und das Directory inklusive File erstellen:

  • mkdir /var/log/zpush/ && touch /var/log/zpush/debug.log && chown -R www-data:www-data /var/log/zpush

Damit das Logfile nicht irgendwann die Platte füllt, sollte man sich überlegen logrotate entsprechend zu konfigurieren.

Nun kann man endlich das iPhone für ActiveSync konfigurieren. Autodiscover ist momentan noch nicht verfügbar. Das werde ich in einem nächsten Schritt aktivieren.

***UPDATE*** Wie man Autodiscover einrichtet wird im Nachfolgeartikel „ActiveSync Autodiscover“ gezeigt.

« »