La messagerie
Les WebMails
8.1 Squirrelmail
Squirrelmail est un webmail très simple à metre en place
8.1.1 Installation et configuration
Téléchargez la dernière version stable sur le site officiel : http://www.squirrelmail.org
Décompressez l'archive et lancer le script de configuration
luser@localhost$ tar jxf squirrelmail-1.4.3a.tar.bz2
luser@localhost$ cd squirrelmail-1.4.3a/
luser@localhost$ ./configure
Via ce script, vous allez pouvoir configurer Squirrelmail.
Allez dans Server Settings (2) puis Domain (1) pour modifier votre nom de domaine
Vous pouvez modifier d'autre opptions comme le theme ou les ports de connections aux serveurs SMTP et IMAP.
8.1.2 Acces au Webmail
Vous avez 2 possibilités :
Copier le dossier contenant les fichiers de Squirrelmail dans le repertoire DocumentsRoot de Apache
Créer un Alias dans Apache comme ceci :
Alias /squirrelmail /chemin/vers/squirrelmail
Et relancer Apache
8.2 IMP
8.2.1 Présentation
IMP (Internet Messaging Program) est un webmail très puissant utilisant le framework Horde.
IMP peut utiliser un grand nombre de sous-systèmes pour gérer l'authentification des utilisateurs et le stockage de leurs préférences :
LDAP : annuaire LDAP pour l'authentification et/ou le stockage des préférences utilisateur.
MySQL : base de donnée MySQL pour l'authentification et/ou stockage des préférences utilisateurs.
PostgreSQL : base de donnée PostgreSQL pour l'authentification et/ou stockage des préférences utilisateurs.
IMAP : serveur IMAP uniquement pour l'authentification.
Mcal
FTP
Samba
Kerberos 5
Radius
Il est possible de séparer l'authentification et la gestion des préférences dans deux sous-systèmes différents, comme par exemple LDAP pour l'authentification et PostgreSQL pour le stockage des préférences.
Si il n'y a qu'un module d'authentification, tous les utilisateurs utiliseront les options par défaut.
8.2.2 Installation
L'installation d'IMP (actuellement en version 3.2) nécessite l'installation de plusieurs autres composants; parmis eux on notera :
Apache : version 1.3 ou 2.
PHP : version 4.1.0 ou supérieure, avec pas mal d'options suplémentaires.
Horde : le framework utilisé par IMP et Turba.
Turba (optionnel) : un module de gestion de carnet d'adresses.
MySQL / PostgreSQL / OpenLDAP : au minimum l'un de ces composants.
Dans la suite on suposera que vous avez déja un serveur Apache, PHP, et que vous disposez d'au moins un des composants nécessaire à l'authentification / au sotckage des préférences utilisateurs.
On suposera aussi que vous savez déja utiliser un minimum ces composants.
8.2.2.1 PHP
PHP doit être compilé avec le support de beaucoup de modules, recompilez donc php avec la commande suivante (ou en ajoutant ces options à vos paramètres habituels) :
user@localost$ ./configure --with-apxs --with-ldap --with-gettext --with-xml \
--with-dom --with-mcal --with-mcrypt --with-pgsql \
--with-pspell --with-pear --with-zlib \
--with-imap=../imap-2004a
Finissez ensuite l'installation avec les commandes habituelles :
user@localhost$ make
root@localhost# make install
Verifiez ensuite que Pear dispose des modules nécessaires :
root@localhost# pear install log
root@localhost# pear install Mail_Mime
root@localhost# pear install Net_Socket
root@localhost# pear install date
root@localhost# pear install HTML_Common
Vous devriez maintenant avoir tous les modules nécessaires, redémarrez Apache pour prendre en compte le modifications :
root@localhost# apachetcl restart
8.2.2.2 Horde
Passons maintenant à l'installation de Horde. Téléchargez le à l'adresse http://ftp.horde.org/pub/horde/.
Décompressez le ensuite simplement à l'emplacement ou vous voulez les mettre sur votre serveur web :
root@localhost# tar -zxpvf horde-2.2.6.tar.gz
Renommez ensuite le dossier :
root@localhost# mv horde-2.2.6 horde
Vous pouvez vous rendez sur votre serveur web au fichier horde/test.php pour vérifier que votre cofiguration est correcte.
8.2.2.3 Turba
Turba s'installe de la même façon que Horde.
Téléchargez le à l'adresse : http://ftp.horde.org/pub/turba/.
Décompressez le ensuite simplement à l'emplacement dans le répertoire où vous avez installé Horde :
root@localhost# tar -zxpvf turba-1.2.2.tar.gz
Renommez ensuite le dossier :
root@localhost# mv turba-1.2.2 turba
8.2.2.4 IMP
IMP s'installe de la même façon que Turba.
Téléchargez le à l'adresse : http://ftp.horde.org/pub/imp/.
Décompressez le ensuite simplement à l'emplacement dans le répertoire où vous avez installé Horde :
root@localhost# tar -zxpvf imp-3.2.6.tar.gz
Renommez ensuite le dossier :
root@localhost# mv imp-3.2.6 imp
Vous pouvez vous rendre sur votre serveur web au fichier horde/imp/test.php pour vérifier que votre configuration est correcte.
8.2.3 Configuration
Maintenant tout est installé, nous allons passer à la configuration.
8.2.3.1 Horde
Sauvegardez tout d'abord les fichiers de configuration originaux; placez vous dans horde/config/ et exécutez :
root@localhost# for foo in *.dist; do cp $foo `basename $foo .dist`; done
Nous allons maintenant configurer l'authentification; pour cela nous allons faire en sorte que Horde utilise l'authentification de IMP.
Il faut donc décommenter les lignes suivantes dans horde/config/registry.php
$this->registry['auth']['login'] = 'imp';
$this->registry['auth']['logout'] = 'imp';
Il faut maintenant activer le support de IMP et Turba dans Horde; pour cela, cherchez les blocs $this->applications['imp'] = array( et $this->applications['turba'] = array( et mettez l'argument status à active.
8.2.3.1.1 Avec OpenLDAP
Pour utiliser Horde avec OpenLDAP (ou un autre annuaire LDAP), editiez le fichier horde/config/horde.conf et modifiez les lignes suivantes :
$conf['auth']['driver'] = 'ldap';
$conf['prefs']['driver'] = 'ldap';
$conf['prefs']['params']['hostspec'] = 'localhost';
$conf['prefs']['params']['port'] = '389';
$conf['prefs']['params']['basedn'] = 'dc=exemple,dc=net';
$conf['prefs']['params']['uid'] = 'mail';
Copiez ensuite le schema scripts/ldap/horde.schema dans /etc/openldap/schemas/ et ajoutez la ligne suivante dans /etc/openldap/slapd.onf :
include /etc/openldap/schema/horde.schema
Ajoutez ensuite la classe hordePerson à chacun de vos utilisateurs, et remplissez le champs mail.
8.2.3.1.2 Avec PostgreSQL
Pour utiliser Horde avec PostgreSQL, editez le fichier horde/config/horde.conf et modifiez les lignes suivantes :
$conf['prefs']['driver'] = 'sql';
$conf['prefs']['params']['phptype'] = 'pgsql';
$conf['prefs']['params']['hostspec'] = 'localhost';
$conf['prefs']['params']['username'] = 'horde';
$conf['prefs']['params']['password'] = '*****';
$conf['prefs']['params']['database'] = 'horde';
$conf['prefs']['params']['table'] = 'horde_prefs';
Les préférences des utilisateurs seront donc stockées dans une base de donnée PostgreSQL. Il faut donc créer cette base en utilisant les scripts disponibles dans horde/scripts/db/.
Exécutez les scripts suivant dans l'ordre : pgsql_create.sql, auth.sql, category.sql, prefs.sql, après avoir modifié la commande ALTER du fichier pgsql_create.sql pour mettre un mot de passe à l'utilisateur horde.
8.2.3.1.3 Avec MySQL
L'utilisation de MySQL se fait de la même façon que celle de PostgreSQL, mais en remplaçant pgsql par mysql dans horde/config/horde.conf, et en utlisant le script mysql_create.sql au lieu de pgsql_create.sql.
8.2.3.2 Turba
Vous pouvez éventuellement editer les fichiers horde/turba/conf/conf.php et horde/turba/conf/source.php et modifier les options, mais les paramètres par défaut sont suffisants.
Le fichier conf.php contiens la configuration principale, et le fichier source.php contiens la liste des annuaires utilisés pour stocker les carnets d'adresse.
8.2.3.3 IMP
Pour configurer IMP, vous devez au minimum modifier le fichier horde/imp/config/servers.php pour indiquer l'adresse des serveurs IMAP et SMTP.
IMP est donc normalement maintenant opérationnel. Connectez vous au serveur web dans le répertoire où se trouve horde pour le tester.
8.2.4 Tests
Pour tester IMP, c'est très simple :
Listez les mails et essayez de vous envoyer un mail,
Créez un dossier sur le serveur IMAP,
Modifiez vos préférences, déloguez vous et re-loguez vous pour vérifier qu'elles ont bien été sauvegardées.
Si tous ces tests marchent, votre serveur est opérationnel.