I wanted push mail on my iPhone from my Virtualmin setup, and found Z-push to get the job done. This is a small guide on setting it up. At least it works for me on a debian box.
I've installed Z-Push (d-push on debian) using:
apt-get install d-push
Edit: /etc/d-push/config.php and modify these lines
// connecting to default port (143) define('IMAP_PORT', 993); // best cross-platform compatibility (see http://php.net/imap_open for options) define('IMAP_OPTIONS', '/ssl/novalidate-cert');
I have added this in my apache2.conf:
<Directory /usr/share/d-push> php_flag magic_quotes_gpc off php_flag register_globals off php_flag magic_quotes_runtime off php_flag short_open_tag on Order allow,deny Allow from all AddType application/x-httpd-php .php </Directory> Alias /Microsoft-Server-ActiveSync /usr/share/d-push/index.php
I'm using mod_php for the domain as this is required by Z-Push.
In virtualmin I copied the SSL certificate to dovecot. In Dovecot networking and mail protocol options (under Webmin servers) I've set Accept SSL connections to Yes.
That's it... now I have push on my phone using exchange mail :-)
Remember to restart postfix
service postfix restart