Z-Push : Avoir un serveur ActiveSync avec Postfix (ou comment faire du push mail)

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Le serveur push est vraiment dans l'air du temps, surtout avec l'iPhone qui permet maintenant de se connecter (tout comme un Windows Mobile) sur un serveur Push à la Exchange. Le problème c'est que pour le monde libre, Exchange c'est pas possible. J'ai donc trouvé un petit projet sur sourceforge fort bien fini appellé Z-Push qui fonctionne a merveille avec Postfix.


1204022285.png

2 Installation

Nous allons télécharger la dernière version qui va bien sur ce site http://z-push.sourceforge.net et le décompresser dans /var/www :

Command tar
tar zxvf z-push-<version>.tar.gz -C /var/www

On va y appliquer les bons droits :

Command
chmod 777 /var/www/z-push/state
chmod 755 /var/www/z-push/state
chown www-data. /var/www/z-push

3 Configuration

3.1 Apache

Il va falloir configurer Apache afin de faire une redirection de /Microsoft-Server-ActiveSync vers /var/www/z-push/index.php. 2 solutions s'offrent à vous :

  • L'alias :
Configuration File /etc/apache2/apache2.conf
Alias /Microsoft-Server-ActiveSync /var/www/z-push/index.php

  • Le VirtualHost

Rajoutez ceci dans votre virtualhost :

Configuration File /etc/apache2/sites-enabled/000-default
       <Location /z-push>
               Options Indexes FollowSymLinks MultiViews
               Order allow,deny
               allow from all
               RedirectMatch ^/Microsoft-Server-ActiveSync /var/www/z-push/index.php
       </Location

3.2 PHP

Maintenant il va falloir faire quelques petites modifications dans votre config PHP :

Configuration File /etc/php5/apache2/php.ini
php_flag magic_quotes_gpc off
register_globals off
magic_quotes_runtime off
short_open_tag on

Redémarrez maintenant le serveur apache :

Command
/etc/init.d/apache2 restart

3.3 Z-Push

Maintenant il ne nous reste plus qu'a éditer quelques champs dans la config :

Configuration File /var/www/z-push/config.php
...
date_default_timezone_set("Europe/Paris"
...
$BACKEND_PROVIDER = "BackendIMAP";
...
define('IMAP_SERVER', 'deimos.fr');
...

Maintenant, il ne reste plus qu'a tester votre conf en vous connectant sur votre serveur : http://<serverip>/Microsoft-Server-ActiveSync
Si vous obtenez une demande de login/mot de passe, entrez ceux de votre compte IMAP, et si vous obtenez ce message c'est que c'est bon :-) :

GET not supported
This is the z-push location and can only be accessed by Microsoft ActiveSync-capable devices.

4 FAQ

4.1 J'ai des problèmes, mais je ne sais pas d'ou ca vient, comment puis-je débugger ?

Créez simplement un fichier de debug :

Command
touch /var/www/z-push/debug.txt
chmod 777 /var/www/z-push/debug.txt