Open Source Mobile Push Mail
You might also be interested in the Funambol solution:
Open_Source_Mobile_Calendar_and_Contact_Synchronization
http://www.zimbra.com/forums/zimbra-mobile/23988-zimbra-funambol-sync4j-code.html
I'm doing this as a gateway, please see the following articles for ideas about running this on the same machine, for purposes of this article a separate VM is a good demo.
Zimbra_with_Apache_using_mod_jk_-_mod_proxy_-_mod_proxy_ajp
Using_Tomcat_with_Apache_(mod_jk)
Hosting_other_sites_with_Zimbra
Apologies for it's current un-formatted and simplistic state:
Istall OS (CentOS 5.2 32b on push.domain.com) yum install httpd yum install php yum install php-imap service httpd restart wget http://z-pushURL http://z-push.sourceforge.net tar -xvf z-push-1.x.tar.gz -C /var/www/html/ chown -R apache.apache /var/www/html/z-push/state chmod 755 var/www/html/z-push/state nano /etc/httpd/conf.d/z-push.conf [code] Alias /Microsoft-Server-ActiveSync /var/www/html/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 [/code] service httpd reload nano /var/www/html/z-push/conf.php Change the line that by default reads date_default_timezone_set("Europe/Amsterdam"); to your desired. Change the Badkend provider to $BACKEND_PROVIDER = "BackendIMAP"; Change define('IMAP_SERVER', 'localhost'); to define('IMAP_SERVER', 'zimbra.domain.com'); Change define('IMAP_DEFAULTFROM', ''); to define('IMAP_DEFAULTFROM', '@domain.com'); service httpd reload
Note that z-push still polls your ZCS IMAP server for E-mails on regular intervals, but once it has has received an email it will send it instantly (assuming a healthy ActiveSync device connection, also set 'as items arrive' on the mobile device).
Next up: Performance testing, deploying on localhost, certs, SSL, & misc security for this...and other items besides mail if I get a chance.