Mailserver with ldap tutorial – step 7: mobile access

Although almost all smartphones support IMAP I’ve decided to setup the Exchange-ActiceSync (EAS) protocol. I’m planning to setup calendaring and shared contacts later and some smartphones (as my Palm Pre) only support this via EAS. There is an open source implementation of this protocol called z-push which is originally designed to work with the zarafa gropupware server. This implementation is designed to work with the zarafa groupware server only. There also is an inoffical version which supports multiple backends. Unfortunatly this will not become part of the official releases due to licensing problems.
My setup described here is based on the unofficial release by

This is a post from my old blog It has been moved here and slightly edited for better readability. It's also been adjusted to the new layout.
The content however is old and might be outdated.

This is step 1 of the 8 step tutorial for setting up a mailserver with openldap, postfix and dovecot using virtual users. You can find the overview here.


Download the code to a directory of your wish eg /var/www/z-push

wget /var/www

and unpack

tar -xvzf /var/www/z-push-1.3_fabit-4.tar.gz

Set permissions on /var/www/z-push/ to read and write for the webserver, eg

chown www-data:www-data /var/www/z-push

Configure apache

Active sync devices will contact your server under so you will have to tell apache to direct this URI to /var/www/z-push. In your site-config file in /etc/apache2/sites-enabled/ simply put an alias:

Alias /Microsoft-Server-ActiveSync /var/www/z-push/index.php

and add some php configuration for that directory:

    # Some apache settings
    Options -Indexes +FollowSymLinks

    # Register globals must be off
    php_value register_globals off

    # Magic quotes must be off
    php_value magic_quotes_gpc off
    php_value magic_quotes_runtime off
    # Short open tags must be on
    php_value short_open_tag on

    # Allow passing variable by reference
    php_value allow_call_time_pass_reference on

    <Files "debug.txt">
        Deny from All

You probably will want to use ssl encryption for active sync connections…

Configure z-push

The configuration of z-push is pretty straightforward. Just activate the services you need in /var/www/z-push/config.php.
Before setting your device up as EAS-Client you can test the server using a browser and go to It should give you an error as your browser is not a device capable of ActiveSync.
Please note that Exchange-ActiveSync is not Exchange so this will not work with any mail client on your PC!

Further information on configuration and debugging you will find in the INSTALL file in the z-push folder.

Edited on Jan 9th 2015 for better readability although I’m not using z-push any more.
Edited on Aug 27th 2017 for better readability.

Leave a Reply

Your email address will not be published.