[2. Update] Z-Push – Open Source Push-Mail Lösung

Push Mail ist was feines, seine Mails direkt bekommen wenn sie eintrudeln. Da ich ein iPhone habe und dies seit der Firmware 2.0 auch “Push” kann, würde ich es natürlich gerne nutzen. Das geht aber leider nur mit einem Exchange Konto über ActiveSync von Microsoft oder über MobileMe von Apple. MobileMe scheidet aufgrund der Jährlichen Kosten aus. Ein Exchange Konto gibt es im Internet bei diversen Anbietern zwar kostenlos, hat aber, ebenso wie MobileMe, einen großen Nachteil: Man muss seine Mails dorthin weiterleiten um sie aufs Handy gepusht zu bekommen. Da ich aber nicht alle Mails die ich im Laufe des Tages bekomme habe am Abend noch mal neu sortieren und löschen möchte, ist es eher unpraktikabel.

Durch einen Kommentar in meinem Blog wurde ich auf das Projekt Z-Push aufmerksam gemacht (Danke tisp!). Z-Push ist eine Open Source Implementierung des ActiveSync-Protokolls von Microsoft. Es braucht dazu allerdings im Hintergrund keinen Exchange Server. Als Backends für Z-Push gibt es im Moment die Groupware Zarafa (kostenpflichtig (stimmt nicht mehr ganz, siehe hier: Zarafa-Server jetzt als Open Source Variante verfugbar , bietet aber vollen MAPI Zugang für Microsoft Outlook), sowie Imap Server für E-Mails und das vCard Backend für Kontakte.

Z-Push ist eine Sammlung von PHP-Scripten. Die Anbindung an den lokalen Imap Server klappte bei mir bereits mit den Standardeinstellungen. Das einzige was ich ändern musste, war die Umstellung in der Konfigurationsdatei vom Backend Zarafa auf Imap. Genauere Infos und weitere Hinweise zur Konfiguration des Webservers werden mit den PHP-Scripten geliefert.

Ist das erledigt richtet man auf seinem iPhone (oder jedem beliebigen ActiveSync Fähigem Gerät, zum Beispiel Windows Mobile Smartphones) einen Exchange Zugang ein und nimmt als Anmeldedaten seine Imap Zugangsdaten. Fertig. Nun sollte man in den Genuss von Push-Mail kommen, welcher auf dem eigenen Imap Zugang aufbaut :)

[Update]:

In der Standardausführung von Z-Push ist es nicht Möglich auf dem iPhone Mails zu verschieben bzw. zu löschen. Sie werden zwar auf dem iPhone dann nicht mehr angezeigt in beiden Fällen, aber leider auch nur auf dem iPhone. Beim abendlichen Mailclient öffnen sind sie immer noch im Posteingang. Für dieses Problem gibt es auch eine inoffizielle Lösung, die bei mir sehr gut funktioniert. Gefunden im Forum zu Z-Push:

Dies ist allerdings nicht offiziell und wird von den Machern von Z-Push im Moment noch nicht ins Programm aufgenommen. Es können unvorhergesehene Fehler auftreten, was wohl an den Verschiedenen Methoden der Mailbehandlung beim Löschen und Verschieben vom ActiveSync Protokoll bzw. Imap liegt. Also nicht beschweren wenn am Ende Mails verloren gehen!

In der Datei backends/diffbackend.php muss folgender Eintrag:

function ImportMessageMove($id, $newfolder) {
        return true;
    }

in Folgendes geändert werden:

function ImportMessageMove($id, $newfolder) {
        //do nothing if it is in a dummy folder
        if ($this->_folderid == SYNC_FOLDER_TYPE_DUMMY)
           return true;
 
        // See if there's a conflict
        $conflict = $this->isConflict("move", $this->_folderid, $id);
 
        // Update client state
        $change = array();
        $change["id"] = $id;
        $change["newfolder"] = $newfolder;
        $this->updateState("move", $change);
 
        // If there is a conflict, and the server 'wins', then return OK withou$
        // this will cause the exporter to 'see' the overriding item as a chang$
        if($conflict && $this->_flags == SYNC_CONFLICT_OVERWRITE_PIM)
            return true;
 
        $this->_backend->MoveMessage($this->_folderid, $id, $newfolder);
        return true;
    }

Nun funktioniert auch das Löschen und Verschieben der Mails. Was weiterhin nicht klappt: Die Mails werden nicht als gelesen markiert im Posteingang. Werden sie allerdings verschoben, sind sie als gelesen markiert. (Ich muss mir den Code mal ansehen, kann ja so schwer nicht sein ;) )

[2. Update]:

Um Mails auch versenden zu können musste ich noch das PHP PEAR Mail Packet installiert werden. Das geht, in dem der Ordner “Mail” aus dem Packet, in dem die Datei “RFC822.php” liegt, einfach in den Z-Push Ordner auf dem Webserver kopiert wird.

15. September 2008 von Jan
Kategorien: iPhone, Linux, Planet | 8 Kommentare

Änliche Artikel:

Kommentare (8)

  1. Toller Tipp! Habs gerade selbst probiert, ist ja gleich eingerichtet. Funktioniert tadellos, jedoch verschwinden Mails die ich im z-push-Account lösche nicht im IMAP Ordner. Somit steht abends erneutes löschen an.

    Vielleicht gibts dafür aber auch eine Lösung?

  2. Und da ist das Update und die Lösung ;-)

  3. habs ungefähr eine Sekunde nachdem du es gelesen hast geupdatet mit genau dem Problem und seiner Lösung :)

  4. argh :) zu langsam

  5. Kann`s nur bestätigen. Es funktioniert einwandfrei!

  6. Hallo! Ich habe deinen Beitrag schon vor ein paar Tagen gelesen, musste mir jedoch bisher auf die Zunge beissen!

    Geh doch mal auf http://www.zarafa.com und click dann auf “Community Edition” ;-)

    Viele Grüße, Sebastian (Z-Push dev team)

  7. Danke für die Info Sebastian, das klingt ja sehr vielversprechend.. sollte sich damit etwa meine iPhone-Linux-Sync-Problematik in Rauch auflösen? :) Ich werds rausfinden!

  8. Hi Jan,

    superinteressant, vielen Dank für den Artikel!

    Da der Artikel von Herbst 2008 ist: Nutzt Du Z-Push noch?

    Weißt Du , ob eine Lösung für das E-Mail-Problem mittlerweile in Z-Push eingearbeitet wurde?

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert