LinuxÉdu-Québec

Accueil À propos de nous Contact Plan du site
Accueil du site > Applications > Logiciels serveurs > Installation d’un WebMail avec IMP

Le vendredi 4 avril 2003, par Cédric Deschamps

Installation d’un WebMail avec IMP

Vous pourrez trouver un équivalent en anglais pour RedHat 7.3 à l’adresse suivante http://www.geocities.com/oliversl/imp/ (en anglais)

Dans ce document, nous allons décrire étape par étape les instructions nécessaires pour configurer une interface graphique pour un serveur local de messagerie, basé sur postfix, sur un serveur Mandrake Linux 9.0 (ça devrait aussi bien fonctionner sur 9.1, sur RedHat, ...)

Vous devez auparavant récupérer les paquetages nécessaires à l’installation de l’interface web HORDE 2.1 (Architecture PHP), IMP 3.1 (Client IMAP pour Horde), TURBA 1.1 (Gestionnaire de contacts pour Horde) et PEAR 1.0.1 sur le site de Horde. Le tout est diffusé sous licence libre GNU/GPL.http://www.horde.org

L’équipe de développement de horde, imp et turba développe aussi un calendrier et organiseur journalier nommé "kronolith", un gestionnaire de tâches nommé "nag" et un mémo électronique nommé "mnemo". Le tout est interfaçable avec l’interface web, et aussi disponible sur le site de Horde.

Si vous souhaitez autoriser le changement en ligne de mot de passe pour la boîte à lettres, ce guide décrit aussi l’installation de poppassd, téléchargeable sur rpmfind et de passwd, téléchargeable ici.

Ce guide vous aidera à configurer une installation standard, uniquement testée pour un réseau local, non relié à Internet. Cela doit vous permettre de réaliser un petit serveur de messagerie interne, pour une petite structure, avec une interface graphique ergonomique accessible depuis un navigateur Internet.

Il est ensuite possible de "tuner" votre configuration pour qu’elle corresponde à vos souhaits, ou/et pour réaliser un serveur de messagerie Internet (Le webmail de Free est basé sur horde/imp), mais cela sort du cadre de ce guide et de mes compétences : une attention particulière doit être notamment accordée à la sécurité.

Pré-requis

Pour suivre les instructions ci-dessous, vous aurez besoin d’un minimum de connaissances relatives à Linux, notamment sur l’usage de la console, si vous installez un serveur de messagerie minimum (sans interface graphique type KDE ou Gnome). Il y a aussi quelques saisies d’écran pour ceux qui travaillent en interface graphique et des indices sur cette utilisation.

Nous utiliserons un serveur Mandrake Linux 9.0 avec Apache, Mysql, Php et Postfix fonctionnant correctement. Le nom de domaine du serveur est : mail.domaine.qc.ca

Vous pouvez vérifier le nom de domaine de votre machine avec l’instruction : hostname

Les paquetages suivants doivent être présents :
apache-1.3.26-6mdk
php-4.2.3-1mdk
php-imap-4.2.3-1mdk
php-ldap-4.2.3-1mdk
php-mysql-4.2.3-1mdk
php-xml-4.2.3-1mdk
mysql-3.23.47-5mdk
mysql-client-3.23.47-5mdk
imap-2001a-9mdk
postfix-1.1.11-4mdk
tcp_wrappers-7.6-22mdk
poppassd-ceti-1.8-3mdk
xinetd-2.3.7-3mdk

Les numéros de version des paquetages correspondent à ceux par défaut sur Mandrake 9.0 . Nous vous conseillons de faire des mises à jour (par exemple, même sur Mandrake 9.0, apache est à la version 1.3.27).

Pour visionner les paquetages installés sur votre système :rpm -qa | less (Taper q pour quitter)

Si vous n’avez pas tout, il faut installer les paquetages manquants : rpm -Fvh nom_du_paquetage.rpm pour mettre à jour un paquetage déjà installé rpm -ivh nom_du_paquetage.rpm pour installer un nouveau paquetage * Vous devez avoir les services httpd, mysql, sendmail, xinetd activés. Pour visionner les services fonctionnant : chkconfig -list | less

Pour mettre en marche un service (exemple avec apache) : service httpd stop (Arrêt d’Apache) service httpd start (Mise en marche d’Apache) service httpd restart (Redémarrage d’Apache) Pour faire en sorte qu’à chaque démarrage de votre poste, le service Apache fonctionne :
chkconfig apache on

Il faut notamment veiller à bien lancer le service dépendant de xinetd imap :
chkconfig imap on
service xinetd restart
Pour avoir une documentation sur une instruction Linux :
man instruction (exemple : man chkconfig). A propos de la configuration des services, consulter également l’article sur la gestion des démons.

Pour savoir où vous vous situez dans l’arborescence de linux :pwd

Enfin, n’oubliez pas que l’appui sur la touche de tabulation "tab" permet de compléter un nom :
cd /v "tab" donne automatiquement cd /var

Configurer Apache

Le répertoire d’installation sera : /var/www/html/mail/
Fichiers de configuration

Ajouter les lignes suivantes dans le fichier /etc/httpd/conf/httpd.conf. Je ne sais pas si c’est la bonne méthode de procéder mais tout ce que je sais c,est que ça fonctionne. Asserez-vous cependant que vous avez les entrées dns correspondantes au domaine mail.domaine.qc.ca et www.domaine.qc.ca ainsi que les entrées mx pour pouvoir recevoir du courrier sur le nom du domaine. Pour vérifier si vous avez les entrées dns, tapez host www.domaine.qc.ca en ligne de commande ainsi que host mail.domaine.qc.ca pour vérifier si le nom de domaine est bien enregistré. Notez qu’en tappant mail.domaine.qc.ca dans un navigateur, cela nous renvoit dans le dossier /var/www/html/mail et lorsque l’on tappe www.domaine.qc.ca cela nous envoit dans le dossier /var/www/html
NameVirtualHost 111.222.111.222:80


DocumentRoot /var/www/html/mail
ServerName mail.domaine.qc.ca
Port 80

NameVirtualHost 111.222.111.222:80

DocumentRoot /var/www/html/
ServerName www.domaine.qc.ca
Port 80


mkdir -p /var/www/html/mail
Tester Apache

Rdémarrer Apache pour que les changements prennent effet :
service httpd restart

créer un fichier temporaire :
touch /var/www/html/mail/essai.html

puis à l’aide d’un navigateur, aller à l’adresse Internet :
http://mail.domaine.qc.ca.com/essai.html

Remarque : On peut utiliser un navigateur texte comme Lynx pour tester la configuration, si l’on n’a pas installé d’interface graphique sur le serveur ou si aucun poste distant n’est connecté au serveur :
lynx mail.example.com/essai.html

Configurer Horde

Une fois Apache configuré, vous avez besoin d’installer et de configurer Horde.
Installer Horde

A partir du répertoire où vous avez stocké le paquetage Horde, récupéré sur le site Internet de Horde :
tar zxvf horde-2.1.tar.gz -C /var/www/html/mail
cd /var/www/html/mail
mv horde-2.1 horde
Installer Pear

A partir du répertoire où vous avez stocké le paquetage Pear :
cd /usr/share
rm php
tar zxvf pear-1.0.1.tar.gz -C /usr/share
cd /usr/share
mv pear-4.1.0 php
chown root.root -R php
Configurer mysql

Tester si mysql est lancé :
service mysql restart
cd /var/www/html/mail/horde/scripts/db

choisissez un mot de passe pour la base Horde :
vi mysql_create.sql

Créer la base Horde :
mysql < mysql_create.sql

Tester si vous pouvez vous connecter à la base :
mysql -h localhost -u horde -p

Un mot de passe vous est demandé : rentrer celui choisi ci-dessus.
Quitter mysql avec la commande ’exit’
Modifier les fichiers de config Horde

cd /var/www/html/mail/horde/config
Renommer tous les fichiers :
for fichier in *.dist ; do cp -v $fichier $(basename $fichier .dist) ; done

Modifier le fichier /var/www/html/mail/horde/config/horde.php :
// utiliser la compression. Mandrake PHP supporte zlib
$conf[’compress_pages’] = true ;
// utiliser IMAP pour authentifier les utilisateurs
$conf[’auth’][’driver’] = ’imap’ ;
$conf[’auth’][’params’] = array() ;
$conf[’auth’][’params’][’dsn’] = ’localhost:143/imapINBOX’ ;
// utiliser MySQL pour stocker les données de Horde
$conf[’prefs’][’driver’] = ’sql’ ;
$conf[’prefs’][’params’] = array() ;
$conf[’prefs’][’params’][’phptype’] = ’mysql’ ;
$conf[’prefs’][’params’][’hostspec’] = ’localhost’ ;
$conf[’prefs’][’params’][’username’] = ’horde’ ;
$conf[’prefs’][’params’][’password’] = ’my_passwd’ ;
$conf[’prefs’][’params’][’database’] = ’horde’ ;
$conf[’prefs’][’params’][’table’] = ’horde_prefs’ ;
// Le SMTP postfix, pour envoyer les emails
$conf[’mailer’][’type’] = ’smtp’ ;

Note : Si vous préférez sendmail à postfix, installer sendmail et changer la ligne précédente par $conf[’mailer’][’type’] = ’sendmail’ ;

Remarque : my_passwd est à remplacer par le mot de passe de la base horde mysql choisi au paragraphe Configurer mysql

Modifier le fichier /var/www/html/mail/horde/config/lang.php :
$nls[’defaults’][’language’] = ’fr_FR’ ;
Modifier php.ini

Modifier le fichier /etc/php.ini :
include_path = "/usr/share/php"

Activer l’extension php_xml si ce n’est pas déjà fait en supprimant le ; situé en début de ligne

Redémarrez le service apache :
service httpd restart
Tester Horde

Vous pouvez tester la configuration initiale de Horde en allant avec un navigateur web sur :
http://mail.domaine.qc.ca/horde/test.php
Vous devriez avoir une page ressemblant à ceci
Horde Versions

* Horde : 2.2
* IMP : 3.2 (run IMP tests)
* Turba : 1.1
* Passwd : 2.2

PHP Version

* View phpinfo() screen
* PHP Version : 4.2.3
* PHP Major Version : 4.2
* PHP Minor Version : 3
* PHP Version Classification : release
* You are running a supported version of PHP.

PHP Module Capabilities

* DOM XML Support : Yes
* Gettext Support : Yes
* IMAP Support : Yes
* LDAP Support : Yes
* MCAL Support : No
Ceux-ci ne sont pas important (Les 2 No) * Mcrypt Support : No
* MySQL Support : Yes
* PostgreSQL Support : Yes
* XML Support : Yes

Miscellaneous PHP Settings

* magic_quotes_runtime disabled : Yes
* file_uploads enabled : Yes
* safe_mode disabled : Yes
* trans_sid disabled : Yes

PHP Sessions

* Session counter : 1
* To unregister the session : click here

PEAR Asserez-vous que tout est à Yes ici

* PEAR - Yes
* Recent PEAR - Yes
* Mail - Yes
* Mail_Mime - Yes
* Log - Yes
* DB - Yes
* Net_Socket - Yes
* Date - Yes
* HTML_Common/HTML_Select - Yes

Valid XHTML 1.0 !

Configurer IMP
Installer IMP

A partir du répertoire où vous avez stocké le paquetage IMP :
tar zxvf imp-3.1.tar.gz -C /var/www/html/mail/horde
cd /var/www/html/mail/horde
mv imp-3.1 imp
Configurer Horde pour IMP

Déclarer IMP dans Horde :
Modifier le fichier /var/www/html/mail/horde/config/registry.php
 : // Décommentez les lignes suivantes
$this->registry[’auth’][’login’] = ’imp’ ;
$this->registry[’auth’][’logout’] = ’imp’ ;
// Décommentez les lignes suivantes
$this->applications[’imp’] = array(
’fileroot’ => dirname(__FILE__) . ’/../imp’,
’webroot’ => $this->applications[’horde’][’webroot’] . ’/imp’,
’icon’ => $this->applications[’horde’][’webroot’] .
’/horde/imp/graphics/imp.gif’, ’name’ => _("Mail"),
’allow_guests’ => false,
’show’ => true
) ;
Configurer les fichiers de config d’IMP

cd /var/www/html/mail/horde/imp/config

Renommer tous les fichiers :
for fichier in *.dist ; do cp -v $fichier $(basename $fichier .dist) ; done

Modifier le fichier
/var/www/html/mail/horde/imp/config/servers.php :
// Modifier ces lignes
$servers[’imap’] = array(
’name’ => ’IMAP Server’,
’server’ => ’localhost’,
’protocol’ => ’imap/notls’,
’port’ => 143,
’folders’ => ’mail/’,
’namespace’ => ’’,
’maildomain’ => ’domaine.qc.ca’,
’smtphost’ => ’mail.domaine.qc.ca’,
’realm’ => ’’,
’preferred’ => ’true’
) ;

Remarque : Il doit être possible à ce niveau de configurer le service sécurisé d’imap (protocol imap/ssl, port 993).

Modifier le fichier /var/www/html/mail/horde/imp/config/pref.php :
// langage de l’utilisateur
// regarder dans /horde/config/lang.php pour les alias de langue $_prefs[’language’] = array(
’value’ => ’fr_FR’,
’locked’ => false,
’shared’ => true,
’type’ => ’select’,
’desc’ => _("Select your preferred language :")
) ;
// boite postale de l’utilisateur par défaut
// la valeur par défaut INBOX ne peut être changée
$_prefs[’mailbox’] = array(
’value’ => ’INBOX’,
’locked’ => true,
’shared’ => false,
’type’ => ’implicit’
) ;
// Utiliser IMAP
// Montre seulement les répertoires souscrits par IMAP
$_prefs[’subscribe’] = array(
’value’ => 1,
’locked’ => true,
’shared’ => false,
’type’ => ’checkbox’,
’desc’ => _("Use IMAP folder subscriptions")
) ;
// Répertoire des courriers envoyés
// Utilise le même nom que Mozilla, Outlook Express, etc
$_prefs[’sent_mail_folder’] = array(
’value’ => ’Sent’,
’locked’ => false,
’shared’ => true,
’type’ => ’implicit’
) ; // Répertoire poubelle
// Utilise le même nom que Mozilla, Outlook Express, etc
$_prefs[’trash_folder’] = array(
’value’ => ’Trash’,
’locked’ => false,
’shared’ => false,
’type’ => ’implicit’
) ;
Tester IMP

Vous pouvez tester la configuration initiale de IMP en allant avec un navigateur web sur :
http://mail.domaine.qc.ca/horde/imp/

Se logger avec un utilisateur/passe valide (en l’occurrence un compte pop valide).
Essayer d’envoyer des mails à un autre compte et à vous même. Utiliser une adresse mail du type utilisateur@mail.domaine.qc.ca
Pour créer un compte sans possibilité de connection sur votre serveur, uniquement destiné à la messagerie :
useradd -c "nom_utilisateur ou commentaire" -s /bin/false -g popusers nom_utilisateur
Puis définir le mot de passe du compte nouvellement créé avec passwd :
passwd nom_utilisateur

Remarque 2 : Vous pouvez aussi modifier le fichier ’trailer.txt’ situé dans /horde/imp/config/. Ce fichier vous permet d’ajouter un texte à la fin de tous les mails qui seront envoyés par IMP. Par défaut, le texte suivant est ajouté à tous les messages : This mail sent through IMP : http://horde.org/imp/. Si vous ne voulez rien ajouter, effacer tout ce qu’il y a dans ce fichier. Configurer Turba

Maintenant que vous pouvez lancer Horde et IMP, vous avez besoin d’un carnet d’adresses afin de gérer vos contacts. Installer Turba

A partir du répertoire où vous avez stocké le paquetage IMP :
tar xzf turba-1.1.tar.gz -C /var/www/html/mail/horde
cd /var/www/html/mail/horde
mv turba-1.1 turba
cd /var/www/html/mail/horde/turba/config

Renommer tous les fichiers :
for fichier in *.dist ; do cp -v $fichier $(basename $fichier .dist) ; done
Configurer Horde pour Turba

Déclarer Turba dans Horde :
Modifier le fichier /var/www/html/mail/horde/config/registry.php :
// Décommenter les lignes suivantes
$this->applications[’turba’] = array(
’fileroot’ => dirname(__FILE__) . ’/../turba’,
’webroot’ => $this->applications[’horde’][’webroot’] . ’/turba’,
’icon’ => $this->applications[’horde’][’webroot’]
.’/horde/turba/graphics/turba.gif’,
’name’ => _("Addressbook"),
’allow_guests’ => false,
’show’ => true
) ;

Configurer dans IMP l’icône pour Turba :
Modifier le fichier /var/www/html/mail/horde/imp/config/conf.php :
$conf[’menu’][’apps’] = array(’turba’) ;

Configurer dans Turba l’icône pour IMP :
Modifier le fichier
/var/www/html/mail/horde/turba/config/conf.php :
$conf[’menu’][’apps’] = array(’imp’) ;

Modifier le fichier
/var/www/html/mail/horde/turba/config/prefs.php :
// Language de l’utilisateur
// Règler le même langage par défaut que Horde et IMP
$_prefs[’language’] = array(
’value’ => ’fr_FR’,
’locked’ => false,
’shared’ => true,
’type’ => ’select’,
’desc’ => _("Select your preferred language :")
) ;

Configurer Turba pour utiliser MySQL pour enregistrer les données des contacts :
Modifier le fichier /var/www/html/mail/horde/turba/config/sources.php : // Compléter cette partie de la configuration avec les données
// de la base de données comme dans /horde/config/horde.php
// Configurer aussi le titre dans votre langue
$cfgSources[’localsql’] = array(
’title’ => ’IMP Address Book’,
’type’ => ’sql’,
’params’ => array(
’phptype’ => ’mysql’,
’hostspec’ => ’localhost’,
’username’ => ’horde’,
’password’ => ’my_passwd’,
’database’ => ’horde’,
’table’ => ’turba_objects’
),
) ;

Remarque : my_passwd est à remplacer par le mot de passe de la base horde mysql choisi au paragraphe Configurer mysql
Configurer MySQL pour Turba

Créer la base dans MySQL que Turba utilisera :
cd /var/www/html/mail/horde/turba/scripts/drivers/
mysql < turba.sql
Tester Turba

Vous pouvez tester la configuration initiale de Turba en allant avec un navigateur web sur :
http://mail.domaine.qc.ca/horde/

Créer une nouvelle entrée dans le carnet d’adresse et aller dans IMP, puis Options et choisissez d’utiliser le carnet d’adresses avec le nom "IMP Address Book".
Configurer poppassd (optionnel : non sécurisé)

Maintenant que vous avez configuré Horde avec IMP et Turba, vous avez besoin de fournir à vos utilisateurs une méthode pour changer leur mot de passe au travers de Horde.
Installer poppassd-ceti

rpm -ivh poppassd-ceti-1.8-3mdk.i586.rpm

Activer le service poppassd :
chkconfig poppassd on
service xinetd restart
Installer passwd pour IMP

A partir du répertoire où vous avez stocké le paquetage IMP :
tar zxvf passwd.tgz -C /var/www/html/mail/horde/
cd /var/www/html/mail/horde/
cd passwd

cd /var/www/html/mail/horde/passwd/config

Renommer tous les fichiers :
for fichier in *.dist ; do cp -v $fichier $(basename $fichier .dist) ; done
Configurer Horde pour Passwd

Modifier le fichier /var/www/html/mail/horde/config/registry.php :
$this->applications[’passwd’] = array(
’fileroot’ => dirname(__FILE__) . ’/../passwd’,
’webroot’ => $this->applications[’horde’][’webroot’] . ’/passwd’,
’icon’ => $this->applications[’horde’][’webroot’] . ’/passwd/graphics/lock.gif’,
’name’ => _("Password"),
’allow_guests’ => false,
’show’ => true
) ;
Configurer IMP pour Passwd

Configurer l’icône pour Passwd dans IMP :
Modifier le fichier /var/www/html/mail/horde/imp/config/conf.php
 : $conf[’menu’][’apps’] = array(’turba’, ’passwd’) ;
Configurer le fichier de config de Passwd

Configurer l’icône pour IMP dans Passwd :
Modifier le fichier /var/www/html/mail/horde/passwd/config/conf.php :
$conf[’menu’][’apps’] = array(’imp’) ;
Tester Passwd

Vous pouvez tester la configuration initiale de Turba en allant avec un navigateur web sur :
http://mail.domaine.qc.ca/horde/imp

Changez votre mot de passe. Attention : n’importe quel mot de passe de n’importe quelle longueur sera accepté car poppassd est lancé sous l’identité root.

Note : Si vous utiliser sendmail et que vous êtes capables d’envoyer du courriel avec l’interface web mais incapable d’en recevoir, assurez-vous que le fichier /etc/mail/local-host-names contient les lignes domaine.qc.ca domaine.qc.ca

Portfolio

8 Messages de forum

  • 7 avril 2003 03:13
    Excellent article mais je pense qu’on peut dire merci à : Laurent DUBETTIER-GRENIER cf : http://lea-linux.org/reseau/webmail.php3 Mais c quand meme un version améliorée de son article, je vais de ce pas la tester.. Merci @+
  • 15 octobre 2003 04:28
    c’est super et bien expliquer bravo
  • 27 février 2004 07:51, par gamal

    très bien expliqué bravo ! pouvez me dire svp quel fichier modifier pour le message d’accueil : "bienvenue à horde " ?

    merci !

  • 31 mars 2004 10:58, par sami
    Tres bonne explication. Simple et precis pour la configuration, la mise en place d’un webmail. Est-il possible d’avoir par consequent les differnts fichiers à modifier, les parametres à modifier pour personnaliser son webmail, modification de la premiere page, la couleur....
  • 31 mars 2004 11:01, par sami
    j’ai le meme probleme que vous. Alors si vous avez une reponse n’hesitez surtout pas à me faire signe. lorougnonsamuel@yahoo.fr
  • 2 avril 2004 12:59, par Benoit S.

    ce sont les fichiers templates qu’il faut modifier, pour la connexion (si vous laissez IMP s’occuper de l’authentification), ça se trouve dans imp/templates/login/login.inc

    ATTENTION : ces fichiers sont sensibles, si vous modifiez n’importe quoi, vous risquez de ne plus être capable d’entrer dans le webmail. Mais il y a de l’espace pour ajouter des images, des logos, etc.

  • 23 juin 2004 14:00, par boubek

    je viens de mettre en place son serveur linux sur une redhat 9.0 et je veux installer postfix et Openwebamil comme interface .

    Mais j’ai des pbles avec postfix mon domaine est nis.ci mon ordinateur s’appelle kas mon @ip est 192.168.0.1 s’il te plait envoie moi une config de postfix avec cette information j’en ai besoin et aussi si tu as une iddée de openwebmail aide moi aussi Merci

    aide moi

  • 9 mars 2006 03:50, par roumayne
    bonjour, je suis un nouveau dans le monde de linux mais je trouve ça bien donc je veux savoir si on ne peut pas obtenir cet article en formant pdf ou Oo. merci

Applications | LinuxÉdu-Québec | Revue de presse | Projets | Événements - colloques | Réflexion et opinion | Système d’exploitation