ActiveSync avec Z-Push, le mail

, par  Florent Peterschmitt , popularité : 2%

Z-Push est une implémentation en PHP du protocol ActiveSync de Microsoft. Il permet de synchroniser ses mails, calendriers et contacts. Pour l’instant je ne couvrirai que le mail, le calendrier viendra plus tard éventuellement.

Le guide d’installation est assez spartiate.

Comme d’hab, je fais mes install sur CentOS 7 et avec PHP-FPM. 

PHP

Déjà, installez PHP 5.6. Ça ne fonctionnera pas du tout avec PHP 7, pour le moment en tout cas. J’ai testé, laissez tomber l’idée. À moins d’avoir du temps pour dev, mais si eux n’ont pas encore sorti une version “PHP 7 proof”, c’est que ça n’est sans doute pas si simple.

https://webtatic.com/packages/php56/

IMAP et SMTP

Avoir un serveur IMAP et SMTP disponible et déjà configuré.

Normalement ces deux bouzins là sont assez connus pour qu’Internet soit truffé de tutos…

Paquets

Les paquets ne sont pas signés malheureusement :/

/etc/yum.repos.d/z-push.repo [z-push] name=Z-Push noarch Enterprise Linux 7 - $basearch baseurl=http://repo.z-hub.io/z-push:/final/RHEL_7 failovermethod=priority enabled=1 gpgcheck=0 yum makecache yum install z-push-common z-push-backend-imap z-push-ipc-sharedmemory

On pourra utiliser z-push-ipc-memcached à la place de sharedmemory.

Nginx et PHP-FPM

/etc/nginx/conf.d/peterschmitt.fr.conf server server_name peterschmitt.fr ; location /Microsoft-Server-ActiveSync fastcgi_split_path_info ^(.+ ?\.php)(/.*)$ ; include fastcgi_params_z-push ; fastcgi_param SCRIPT_FILENAME /usr/share/z-push/index.php ; fastcgi_param DOCUMENT_ROOT /usr/share/z-push/ ; fastcgi_pass unix :/srv/php-fpm/socks/z-push ;

La configuration automatique tente de joindre le domaine de l’adresse mail à configurer, sur la location détaillée ici.

J’ai récupéré cette information depuis la configuration Apache de Z-Push.

/etc/php-fpm.d/z-push.conf [z-push] access.log = access.log listen = /srv/php-fpm/socks/z-push listen.owner = nginx listen.group = nginx listen.mode = 0660 user = z-push group = z-push pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 slowlog = www-slow.log chdir = /usr/share/z-push catch_workers_output = yes php_flag[display_errors] = on php_admin_value[error_log] = php-error.log php_admin_flag[log_errors] = on php_value[session.save_handler] = files php_value[session.save_path] = /session

Système

Les paquets sont configurés pour l’utilisateur apache, car il existe un paquet embarquant de la conf Apache. On adapte tout ça : useradd z-push chgrp z-push /etc/z-push/* chown -R z-push:z-push /var/log/z-push/ chown -R z-push:z-push /var/lib/z-push/ systemctl restart php-fpm systemctl restart nginx

Configuration

Faire in tour dans /etc/z-push/imap.conf.php et adapter les dossiers IMAP en fonction de ce qui est actif sur le serveur IMAP, puis passer la define IMAP_FOLDER_CONFIGURED à true.

Configurez-y aussi la connexion au serveur IMAP.

Pour SMTP, cherchez la variable $imap_smtp_params. Le fichier de configuration est très bien documenté, l’idéal étant une configuration du type : < ?php $imap_smtp_params = array( ’host’ => ’ssl ://smtp.peterschmitt.fr’, ’port’ => 465, ’auth’ => true, ’localhost’ => ’smtp.peterschmitt.fr’, ’username’ => ’imap_username’, ’password’ => ’imap_password’) ;

Test

Accéder à http://localhost/Microsoft-Server-ActiveSync et tester l’authentification.

Si déjà ça a fonctionné, vous pouvez passer à la suite, à savoir configurer un client mail voulant causer ActiveSync, comme un client mail mobile par exemple.

Enfin, testez l’envoi de mail en scrutant les logs de votre serveur mail.

Voir en ligne : http://florent.peterschmitt.fr/acti...

Sites favoris Tous les sites

84 sites référencés dans ce secteur