Informatique : Documentations

 

Installer le WebMail IMP 3.2.1



Préambule:

IMP est un webmail, c'est à dire qu'il vous permet de lire vos mails à travers une interface Web. C'est ce webmail qu'utilise Free et TuxFamily. Il supporte le protocole IMAP, les filtres, la recherche dans les dossiers IMAP, gère un carnet d'adresse et bien plus encore ! Il est sous licence GPL et est donc libre.

Ce document explique pas à pas l'installation et la configuration de IMP 3.2.1 sur Linux (Debian, Mandrake, Red Hat...). Cette procédure devrait également fonctionner sur les *BSD. Nous verrons également l'installation de petits modules comme par exemple passwd qui permet de changer le mot de passe à travers imp.


Auteur:

Sébastien CORBEAU


Licence:

Copyright (c) 2002-2013 Sébastien CORBEAU
Vous pouvez librement copier, distribuer et/ou modifier ce document selon les termes de la Licence de Documentation Libre GNU (GNU Free Documentation License), version 1.1 ou toute version ultérieure publiée par la Free Software Foundation.
La GNU Free Documentation License (en anglais)
Traduction en français de la FDL (IDEALX)


Historique:

21/06/2003 - Prise en compte des modifications cvs pour le module vacation + ajout d'un patch perso pour le support des alias multiples
15/04/2003 - Mise à jour pour la nouvelle version de imp 3.2.1 et ajout des sections sur forwards, passwd et vacation - v1.1
08/09/2002 - Première version publique - v1.0
28/07/2002 - Version initiale - Draft




I - Les prérequis: MySQL, Apache, PHP4, sendmail ou postfix...


1- Un serveur de mail

Dans ce document, je considère que vous avez un MTA comme Sendmail ou Postfix opérationnel pour envoyer vos mails. Dans mon cas, j'utilise Postfix car je le trouve très simple à configurer. Il est très fiable, sécurisé et compatible sendmail. Vous devez également avoir un serveur IMAP ou POP3. Ce document traite uniquement de l'accès IMAP.


2- UW-IMAP

IMP a besoin d'un client IMAP pour se connecter au serveur. Nous allons utiliser la library cliente UW-IMAP (ftp://ftp.cac.washington.edu/imap/).

La procédure est simple. Il suffit de décompresser, compiler et faire quelques liens symboliques.

wget ftp://ftp.cac.washington.edu/imap/imap.tar.Z
tar -xzf imap.tar.Z -C /usr/local/src
cd /usr/local/src/imap-2002b

Pour compiler le programme, il faut lui passer un paramètre spécifique à votre machine. Regardez dans le fichier Makefile pour trouver l'option correspondante à votre système.

# remplacer slx par autre chose si nécessaire
make slx SSLTYPE=none
ln -s c-client include
mkdir lib
cd lib
ln -s ../c-client/c-client.a libc-client.a

C'est tout. Pas besoin de faire un make install.


3- Apache, PHP4 et MySQL

Vous devez également avoir un apache opérationnel avec php et mysql. Dans la suite de ce document, je considère que votre htdocs est /usr/local/apache/htdocs (changez les commandes si nécessaire). Vous pouvez regarder cette documentation qui vous explique succinctement l'installation d'apache, php et mysql et consultez sa liste de liens.

Seule la configuration de PHP4 change. Il faut rajouter ce paramètre lors de la création du Makefile:

./configure [...] --with-imap=/usr/local/src/imap-2002b/

PHP pourra ainsi accéder au client IMAP que nous avons installer précédemment.


4- PEAR

Il vous sera peut être nécessaire d'installer une version de PEAR plus récente que celle livrée avec PHP. PEAR est une librairie offrant une abstraction aux bases de données, des fonctions de logs, d'envois de mail... Allez sur le site officiel pour plus de renseignements: http://pear.php.net/.
Ne l'installez pas tout de suite. Je vous indiquerai dans la suite de ce document comment savoir si c'est nécessaire. Si tel est le cas, une page sur le site de horde donne quelques informations: http://www.horde.org/pear/.
Si vous avez PHP4.3.1, voici les commandes à exécuter:

cd /usr/local/php-4.3.1/bin
./pear install log
./pear install Mail_Mime

II - Installation du framework HORDE


1- Pourquoi Horde? Je veux juste IMP !

Pour simplifier, un framework est un regroupement de fonctions généralement utilisées par plusieurs applications. IMP utilise le framework HORDE. HORDE est donc nécessaire au fonctionnement de IMP.


2- Déploiement

Récupérez et décompressez horde dans le htdocs d'apache:

wget ftp://ftp.horde.org/pub/horde/horde-2.2.1.tar.gz
tar -xzf horde-2.2.1.tar.gz -C /usr/local/apache/htdocs

Créez un lien symbolique:

cd /usr/local/apache/htdocs
ln -s horde-2.2.1 horde

Testez http://localhost/horde/. Normalement, vous devez avoir "Some of Horde's configuration files are missing".

Créez maintenant la base de données qui contiendra les préférences des utilisateurs. Il existe un script prêt à l'emploi. Changez cependant le password de horde dans le fichier horde/script/db/mysql_create.sql:

# fichier mysql_create.sql
REPLACE INTO user (host, user, password)
VALUES (
'localhost',
'horde',
-- IMPORTANT: Change this password!
password('monNouveauPwd')
);

Puis:

cd /usr/local/apache/htdocs/horde/script/db
cat mysql_create.sql | /usr/local/mysql/bin/mysql -u root -p
Enter password:

La base de donnée est créée. Voyons à présent la configuration de Horde.


3- Configuration

Copiez tous les fichiers *.php.dist du répertoire config/ en *.php.

cd /usr/local/apache/htdocs/horde/config
for fic in *.dist; do cp $fic `basename $fic .dist`; done

Editez maintenant le fichier de configuration horde.php. Baissez le niveau de log:

// Section "General Horde Settings"
$conf['debug_level'] = E_WARNING;

// Section "Horde Logging"
$conf['log']['enabled'] = true;
$conf['log']['type'] = 'file';
$conf['log']['name'] = '/usr/local/apache/log/horde.log';
$conf['log']['priority'] = LOG_WARNING;

Les préférences sont sauvegardées dans une base mysql

// Section "Preference System Settings"
$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'] = 'votre_mot_de_passe';
$conf['prefs']['params']['database'] = 'horde';
$conf['prefs']['params']['table'] = 'horde_prefs';

Ajoutez un lien permettant de rapporter des problèmes:

// Section "Problem Reporting"
$conf['problems']['enabled'] = true;
$conf['problems']['email'] = 'admin@server.com';

Faut-il une aide utilisateur?

// Section "User Capabilities and Constraints"
$conf['user']['online_help'] = true;

Modifiez le fichier lang.php pour mettre le français comme langue par défaut ainsi que le bon charset:

$nls['defaults']['language'] = 'fr_FR';
$nls['defaults']['charset'] = 'ISO-8859-1';

Faites maintenant un test http://localhost/horde/test.php et vous devez voir des YES en face de tout ce que vous avez configuré. Si vous voyez NO en face de "PEAR" ou de "Recent PEAR", c'est qu'il vous faut une version plus récente. Reportez vous au début de ce document pour l'installer. Si tout est OK, testez http://localhost/horde et normalement, vous avez un panneau de login "Welcome to horde".

A présent, editez le fichier registry.php afin de préparer Horde à recevoir IMP. Décommentez ces lignes pour se loguer directement sous IMP (évite d'avoir à ce logguer sous Horde puis IMP):

$this->registry['auth']['login'] = 'imp';
$this->registry['auth']['logout'] = 'imp';

Passons à l'installation de IMP.


III - Installation du webmail IMP


1- Déploiement

Récupérez et décompressez IMP dans le répertoire de Horde

wget ftp://ftp.horde.org/pub/imp/imp-3.2.1.tar.gz
tar -xzf imp-3.2.1.tar.gz -C /usr/local/apache/htdocs/horde

puis créez un lien symbolique

cd /usr/local/apache/htdocs/horde
ln -s imp-3.2.1 imp

Testez http://localhost/horde/imp. Normalement, vous devez avoir "Some of IMP's configuration files are missing".


2- Configuration

Copiez tous les fichiers *.php.dist en *.php dans le répertoire config/

cd /usr/local/apache/htdocs/horde/imp/config
for fic in *.dist; do cp $fic `basename $fic .dist`; done

Dans le fichier servers.php, ajoutez votre serveur et commentez tout le reste (cyrus, pop...):

$servers['imap'] = array(
	'name' => 'IMAP Server',
	'server' => 'mail.chezmoi.com',
	'protocol' => 'imap/notls',
	'port' => 143,
	// folders peut être '' ou 'mail/' ou 'Mail/' en fonction de votre serveur IMAP
	'folders' => '',
	'namespace' => '',
	'maildomain' => 'chezmoi.com',
	'smtphost' => 'mail.chezmoi.com',
	'realm' => 'chezmoi.com',
	'preferred' => ''
);

Editez maintenant le fichier prefs.php. Bloquez (si vous le souhaitez) les identités multiples:

// default identity
// Set locked to true if you don't want the users to have multiple identities.
$_prefs['default_identity'] = array(
	'value' => 0,
	'locked' => true,
	'shared' => true,
	'type' => 'implicit'
);

Bloquez le changement d'email par l'utilisateur:

// user preferred email address for From: line
// see also $conf['hooks']['from'] in conf.php
$_prefs['from_addr'] = array(
    'value' => '',
    'locked' => true,
    'shared' => true,
    'type' => 'implicit'
);

Souscrire par défaut aux répertoires IMAP

// use IMAP subscribe?
$_prefs['subscribe'] = array(
    'value' => 1,
    'locked' => true,
    'shared' => false,
    'type' => 'checkbox',
    'desc' => _("Use IMAP folder subscriptions?")
);

Mettez le français comme langue par défaut:

// USER language
$_prefs['language'] = array(
'value' => 'fr_FR',
'locked' => false,
'shared' => true,
'type' => 'select',
'desc' => _("Select your preferred language:")
);

Limitez les abus (genre 500 messages / page)

// mailbox constraints
$_prefs['max_msgs'] = array(
'value' => 20,
'locked' => true,
'shared' => false,
'type' => 'number',
'desc' => _("Messages per page in the mailbox view.")
);
// user default mailbox
$_prefs['mailbox'] = array(
'value' => 'INBOX',
'locked' => true,
'shared' => false,
'type' => 'implicit'
);

Limitez les checks de mail trop rapprochés

// time before reloading the navigator or mailbox page
$_prefs['refresh_time'] = array(
	'value' => 0,
	'locked' => false,
	'shared' => false,
	'type' => 'enum',
	'enum' => array(0 => _("Never"),
		900 => _("Every 15 minutes"),
		1800 => _("Every half hour")),
		'desc' => _("Refresh Folder Views:")
);

Editez maintenant le fichier conf.php. Pour augmenter les performances désactivez l'option suivante (elle est cependant pratique):

// Rubrique "Mailbox settings"
$conf['mailbox']['show_attachments'] = true;

Enlevez l'entête et le pied de mail automatique

// Rubrique "Message Settings"
$conf['msg']['prepend_header'] = false;
$conf['msg']['append_trailer'] = false;

Voilà! IMP est installé. Pour tester s'il fonctionne correctement, envoyez un mail à une adresse extérieure avec une pièce jointe, récuperez du courrier avec des pièces jointes... C'est ici: http://localhost/horde/imp.


IV - Installation de Turba


1- Ckoidon?

Turba est un carnet d'adresse pour IMP. C'est pratique, nous allons donc l'installer.


2- Déploiement

Comme d'habitude:

wget ftp://ftp.horde.org/pub/turba/turba-1.2.tar.gz
tar -xzf turba-1.2.tar.gz -C /usr/local/apache/htdocs/horde/
cd /usr/local/apache/htdocs/horde/
ln -s turba-1.2/ turba

Créez la table dans la database horde afin de stocker les contacts:

cd /usr/local/apache/htdocs/horde/turba/scripts/drivers
/usr/local/mysql/bin/mysql -u root -p < mysql_create.sql
Enter password:

Attention: si vous faites une mise à jour à partir d'un turba 1.0 ou 1.1, il faut éxécuter le script mysql_upgrade_1.1_to_1.2.sql !


3- Configuration

Il faut configurer le framework Horde pour lui-dire d'utiliser Turba en décommentant ces lignes dans le fichier /horde/config/registry.php:

$this->applications['turba'] = array(
	'fileroot' => dirname(__FILE__) . '/../turba',
	'webroot' => $this->applications['horde']['webroot'] . '/turba',
	'icon' => '/horde/turba/graphics/turba.gif',
	'name' => _("Addressbook"),
	'allow_guests' => false,
	'show' => true
);

Il faut aussi modifier le fichier /horde/imp/config/conf.php:

$conf['menu']['apps'] = array('turba');

HORDE et IMP sont prêts à utiliser Turba. Nous allons maintenant le configurer. Copiez les fichiers de configuration:

cd /usr/local/apache/htdocs/horde/turba/config/
for fic in *.dist; do cp $fic `basename $fic .dist`; done

Editez le fichier horde/turba/config/prefs.php. Mettez le français comme langue par défaut:

// user language
$_prefs['language'] = array(
	'value' => 'fr_FR',
	'locked' => false,
	'shared' => true,
	'type' => 'select',
	'desc' => _("Select your preferred language:")
);

Définissez la source pour turba dans le fichier horde/turba/config/sources.php :

$cfgSources['localsql'] = array(
	'title' => 'My Addressbook',
	'type' => 'sql',
	'params' => array(
	'phptype' => 'mysql',
	'hostspec' => 'localhost',
	'username' => 'horde',
	'password' => 'monPassword',
	'database' => 'horde',
	'options' => '',
	'tty' => '',
	'port' => '5432',
	'protocol' => 'unix',
	'table' => 'turba_objects'
), [...]

Editez le fichier horde/turba/config/conf.php pour ajouter un lien vers IMP:

$conf['menu']['apps'] = array('imp');

V - Installation de Passwd


1- Ckoidon?

Passwd est un module pour IMP permettant de changer le mot de passe du serveur de mail. C'est une interface web qui communique avec le programme poppassd installé sur le serveur. Il faut donc installer les 2.


2- Installation de poppassd

La page de poppassd est ici. Le package pam-devel doit être installé sur votre système.

wget http://echelon.pl/pubs/poppassd-1.8.3.tar.gz
tar -xzf poppassd-1.8.3.tar.gz
cd poppassd-1.8.3
make
make install

Lisez le fichier README fournit avec si la procédure suivante ne fonctionne pas. Créez le fichier /etc/xinet.d/poppassd

service poppassd
{
disable = no
socket_type             = stream
wait                    = no
user                    = root
server                  = /usr/sbin/poppassd
log_on_success  += HOST DURATION
log_on_failure  += HOST
}

Ajoutez la ligne suivante dans /etc/services

poppassd 106/tcp

Interdisez l'accès à ce service sauf en localhost grâce au fichier /etc/hosts.deny

poppassd: localhost: allow
poppassd: ALL: deny

Créez le fichier /etc/pam.d/poppassd

#%PAM-1.0
auth       required     /lib/security/pam_pwdb.so shadow nullok
account    required     /lib/security/pam_pwdb.so
password   required     /lib/security/pam_cracklib.so retry=3
password   required     /lib/security/pam_pwdb.so use_authtok nullok

Puis ajoutez la ligne suivante au fichier /etc/syslog.conf

local4.err      /var/log/poppassd

Puis redémarrez xinetd

/etc/init.d/xinetd restart

Pour tester que le service fonctionne, faites un telnet

telnet localhost 106

et faites le d'une autre machine pour vérifier que ça ne fonctionne PAS. En effet, ce service est sensible. Il faudrait même le protéger au niveau du firewall.


3- Installation de passwd de horde

wget ftp://ftp.horde.org/pub/passwd/passwd-2.2.tar.gz
tar -xzf passwd-2.2.tar.gz -C /usr/local/apache/htdocs/horde
cd /usr/local/apache/htdocs/horde
ln -s passwd-2.2/ passwd
cd passwd/config/
for fic in *.dist; do cp $fic `basename $fic .dist`; done

Editez le fichier backends.php pour dire que passwd doit se connecter à poppassd. Vous pouvez configurer le système pour que vos utilisateurs ne puissent pas mettre 'toto' en mot de passe. Dans la configuration suivante, les mots de passe doivent faire au minimum 6 caractères (12 au maximum), contenir une lettre majuscule, une minuscule et un chiffre:

$backends['poppassd'] = array(
    'name' => 'serveur de mails',
    'preferred' => '',
    'password policy' => array(),
    'driver' => 'poppassd',
    'password policy' => array(
        'minLength' => 6,
        'maxLength' => 12,
        'maxSpace' => 0,
        'minUpper' => 1,
        'minLower' => 1,
        'minNumeric' => 1
    ),
    'params' => array(
        'host' => 'localhost',
        'port' => 106
    )
);

Modifiez le fichier conf.php

// ajout de imp
$conf['menu']['apps'] = array('imp');

Rajoutez l'application à horde (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
);

Editez le fichier horde/imp/config/conf.php pour ajouter l'application à imp:

$conf['menu']['apps'] = array('turba','passwd');

VI - Installation de Vacation


1- Ckoidon?

Quand vous ne pouvez pas consulter vos mails pendant une période assez longue, il est parfois intéressant d'en avertir vos correspondants. Le programme vacation s'occupe de répondre à tous les mails que vous recevez. Par défaut, il ne répond pas aux mailing lists car vous n'êtes pas le destinataire (To: mailinglist@ au lieu de To: moi@) ce qui évite de polluer :).
En général, on crée un fichier .forward dans le home de l'utilisateur pour dire aux mails d'aller vers vacation:

\moi, "|/usr/bin/vacation moi"

Il faut également écrire le message de reply dans le fichier .vacation.msg

Subject: Re:$SUBJECT
Je suis en vacances du ... au ... blabla

Le mot clé $SUBJECT permet de reprendre le sujet de votre correspondant. Le module vacation est une interface web pour créer ces fichiers .forward et .vacation.msg.


2- Pré-requis

  • J'utilise la méthode FTP, il vous faut donc un serveur FTP sur la machine avec lequel les utilisateurs peuvent se loguer. Pour plus de sécurité, bloquez ce dernier sur votre firewall et utilisez le fichier /etc/hosts.deny pour limiter l'utilisation au localhost (comme vu dans la section passwd).

  • Le programme vacation doit être fonctionnel sur votre serveur (apt-get install vacation).

  • PHP doit connaitre le FTP grâce à l'option --enable-ftp au moment du ./configure


3- Déploiement

wget ftp://ftp.horde.org/pub/vacation/vacation-2.2.tar.gz
tar -xzf vacation-2.2.tar.gz -C /usr/local/apache/htdocs/horde/
cd /usr/local/apache/htdocs/horde
ln -s vacation-2.2/ vacation
cd vacation/config
cp conf.php.dist conf.php

Editez le fichier conf.php

// accès au serveur ftp
$conf['server']['params']['default'] = array(
      'host' => 'localhost',
      'port' => 21
);
// mettez le bon chemin d'accès à vacation
$conf['vacation']['path'] = '/usr/bin/vacation';
// rajoutez l'application imp
$conf['menu']['apps'] = array('imp');

Editez maintenant le fichier de config de horde horde/config/registry.php et ajoutez:

$this->applications['vacation'] = array(
'fileroot' => dirname(__FILE__) . '/../vacation',
'webroot' => $this->applications['horde']['webroot'] . '/vacation',
'icon' => $this->applications['horde']['webroot'] . '/vacation/graphics/plane.gif',
'name' => _("Vacation Notices"),
'allow_guests' => false,
'show' => true
);

Enfin, modifiez celui de imp pour ajouter l'application (horde/imp/config/conf.php):

$conf['menu']['apps'] = array('turba','passwd','vacation');

4- Utilisation

Dans la page de vacation sous IMP, vous avez un champ 'alias'. Un alias, c'est par exemple prenom.nom@mail qui redirige les mails vers prenom@mail. Dans la version 2.2 de vacation, les alias ne fonctionnent pas. C'est corrigé dans la version HEAD du cvs, mais pour l'utiliser, il faut également imp HEAD (v4.0). A réserver aux aventuriers.
Pour gérer les alias, le fichier .forward ressemble à

\prenom, "|/usr/bin/vacation -a prenom.nom -a surnom prenom"

Une solution est d'utiliser le module forward (voir plus bas) qui permet d'éditer le fichier .forward. Vous pouvez ainsi rajouter les alias "à la main" _après_ avoir utilisé vacation (il écrase le .forward et crée le fichier .vacation.msg contenant le message).
Une solution plus propre (quoi que :)) est expliquée dans la section suivante.


5- Faire fonctionner les alias (from cvs)

Comme dit plus haut, les alias ne fonctionnent pas. Nous allons donc utiliser notre version installée (v2.2) et quelques fichiers venant du cvs. Nous allons remplacer les fichiers forwards.php (v1.5.2.3 par 1.5.2.4), Driver.php (v1.2.2.2 par 1.2.2.3) et main.php (v1.1.1.1.2.6 par 1.1.1.1.2.7). Vous pouvez aller les chercher dans le cvs ou les prendre sur mon serveur:

cd vacation/
mv main.php main.php-1.1.1.1.2.6
wget http://www.corbeau.ws/ressources/patches/main.php-1.1.1.1.2.7
ln -s main.php-1.1.1.1.2.7 main.php
cd lib/
mv Driver.php Driver.php-1.2.2.2
wget http://www.corbeau.ws/ressources/patches/Driver.php-1.2.2.3
ln -s Driver.php-1.2.2.3 Driver.php
cd Driver
mv forwards.php forwards.php-1.5.2.3
wget http://www.corbeau.ws/ressources/patches/forwards.php-1.5.2.4
ln -s forwards.php-1.5.2.4 forwards.php

Le champ alias devrait maintenant fonctionner. Seulement, si vous rentrez plusieurs alias, il va mettre "-a alias1 alias2 alias3" dans le .forward à la place de "-a alias1 -a alias2 -a alias3". J'ai fait un patch pour corriger cela. AUCUNE garantie n'est apportée sur son fonctionnement, sa sécurité...

Deux possibilités s'offrent à vous pour en bénéficier. Soit, vous appliquez le patch sur les sources:

cd vacation/lib/Driver
wget \
http://www.corbeau.ws/ressources/patches/vacation-unofficial-patch-forwards.php-1.5.2.4
patch forwards.php-1.5.2.4 < vacation-unofficial-patch-forwards.php-1.5.2.4

soit vous téléchargez le fichier déjà corrigé

cd vacation/lib/Driver
wget http://www.corbeau.ws/ressources/patches/forwards.php-1.5.2.4-unofficial
rm forwards.php
ln -s forwards.php-1.5.2.4-unofficial forwards.php

Vous pouvez maintenant rentrer plusieurs alias dans le champ en les séparant par des espaces.


VII - Installation de Forwards


1- Ckoidon?

Le module forward permet d'éditer le fichier .forward. A l'origine, il sert à rediriger tous ses mails vers une autre adresse.


2- Déploiement

wget ftp://ftp.horde.org/pub/forwards/forwards-2.2.tar.gz
tar -xzf forwards-2.2.tar.gz -C /usr/local/apache/htdocs/horde
cd /usr/local/apache/htdocs/horde
ln -s forwards-2.2/ forwards
cd forwards/config/
cp conf.php.dist conf.php

Editez le fichier conf.php

// configuration de l'accès au serveur ftp
$conf['server']['params']['default'] = array(
    'host' => 'localhost',
    'port' => 21);
// ajout de imp
$conf['menu']['apps'] = array('imp');

Editez le fichier horde/config/registry.php pour ajouter:

$this->applications['forwards'] = array(
    'fileroot' => dirname(__FILE__) . '/../forwards',
    'webroot' => $this->applications['horde']['webroot'] . '/forwards',
    'icon' => $this->applications['horde']['webroot'] . '/forwards/graphics/arrow.gif',
    'name' => _("Forwards"),
    'allow_guests' => false,
    'show' => true
);

Et le fichier horde/imp/config/conf.php pour modifier la ligne

$conf['menu']['apps'] = array('turba','passwd','vacation', 'forwards');

3- Utilisation

Pour mettre en place un message de vacances avec des alias, utilisez vacation pour créer le message puis mettez dans le .forward

\prenom, "|/usr/bin/vacation -a prenom.nom -a surnom prenom"

Le \ permet de faire une copie vers le compte prenom sans boucler (c'est déjà lui qui reçoit le mail).
Si vous souhaitez tout simplement utiliser la redirection vers une autre boite emails, rentrez seulement l'adresse dans le champs.


VIII - Installation d'accounts


1- Ckoidon?

Voilà, c'est beau, vacation, forwards, passwd, tout fonctionne mais ça fait une tournée d'icônes dans la barre de menu. Accounts permet de tout réunir sous un seul icône.


2- Déploiement

wget ftp://ftp.horde.org/pub/accounts/accounts-2.1.tar.gz
tar -xzf accounts-2.1.tar.gz -C /usr/local/apache/htdocs/horde
cd /usr/local/apache/htdocs/horde
ln -s accounts-2.1/ accounts
cd accounts/config
cp conf.php.dist conf.php

Editez le fichier conf.php

// pas de gestion de quota chez moi
$conf['server']['driver'] = 'null';
// ajout des applications
$conf['menu']['apps'] = array('imp','passwd', 'vacation', 'forwards');

Editez le fichier horde/config/registry.php pour ajouter l'application

$this->applications['accounts'] = array(
'fileroot' => dirname(__FILE__) . '/../accounts',
'webroot' => $this->applications['horde']['webroot'] . '/accounts',
'icon' => $this->applications['horde']['webroot'] . '/accounts/graphics/accounts.gif',
'name' => _("Account Manager"),
'allow_guests' => false,
'show' => true
);

Dans le fichier horde/imp/config/conf.php, on enlève les applications forwards, vacation et passwd au profit d'accounts

$conf['menu']['apps'] = array('turba','accounts');

Au niveau des applications forwards, vacation et passwd, elles avaient un icône permettant de revenir à imp. Vous pouvez ajouter un icône pour revenir à accounts en modifiant les fichiers conf.php de chaque application (horde/passwd/config/conf.php, horde/vacation/config/conf.php et horde/forwards/config/conf.php

$conf['menu']['apps'] = array('imp','accounts');

IX - Divers et sécurité


Si vous avec des mails assez gros (hors pièces jointes, par exemple un mail de 6Mo de logs), vous pouvez augmentez les valeurs suivantes dans votre fichier php.ini

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 50     ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 32M      ; Maximum amount of memory a script may consume (8MB)

Pour augmenter la taille limite d'envoie des pièces jointes, modifiez encore votre php.ini

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Maximum allowed size for uploaded files.
upload_max_filesize = 3M

Je ne suis pas un monsieur sécurité. Je vais cependant vous donner quelques points à mettre en place:

* Veillez bien à mettre un mot de passe à votre base sous MySQL.

* Les répertoire horde/config et horde/scripts contiennent des informations sensibles (mot de passe mysql en clair) ainsi que imp/scripts ... Il faut donc les protéger des utilisateurs du système. chmod est notre ami. Le propriétaire et le groupe doivent être les mêmes que le serveur web. Ensuite, on restreint les droits afin que seuls le propriétaire et le groupe puissent lire les fichiers du répertoire:

chown -R www-data:www-data horde-2.2.1
chown www-data:www-data horde
chmod -R ug-x+rwX horde-2.2.1
chmod -R o-rwx horde-2.2.1

Il faut également protéger ces répertoires des utilisateurs web en interdisant à apache d'en afficher le contenu. Ils contiennent déjà un fichier .htaccess avec la directive suivante:

Deny from all

Par contre, apache doit être correctement configuré pour que cela fonctionne (fichier httpd.conf):

<Directory "/usr/local/apache/htdocs/horde">
AllowOverride Limit
</Directory>

<Directory "/usr/local/apache/htdocs/horde-2.2.1">
    AllowOverride Limit
</Directory>

* Le fichier horde/test.php donne quelques infos sur le serveur (version de PEAR par exemple comme vu précédemment). Ce n'est pas très cool sur un système en prod. De plus, il donne aussi un phpinfo() en cliquant sur "View phpinfo() screen", encore moins cool. Virez ce fichier en le mettant dans le répertoire scripts par exemple. Il sera ainsi protégé par apache:

cd /usr/local/apache/htdocs/horde
mv test.php scripts/
cd imp
mv test.php scripts/

Si vous voyez autre chose à faire ou alors si je me suis trompé quelque part, contactez-moi !


X - Mise à jour à partir d'une version de IMP 2.2.x


1- Différences majeures

* Il n'y a plus besoin de PHPLIB.

* Dans les versions 2.2.x de IMP, celui-ci utilisait son propre carnet d'adresse. La version 3 utilise le carnet de contacts Turba s'intégrant au framework Horde. Les champs / tables ne sont pas pareils évidement.


2- Comment faire?

Ma société était déjà en IMP2.2.x. Heureusement, il existe un script en perl qui convertit le carnet IMP 2.2.x en carnet Turba. Le script se trouve dans imp/scripts/imp2turba.pl
Il existe également dans ce répertoire un script pour migrer les préférences de IMP2.x vers Horde2. Lisez ces fichiers pour savoir comment les utiliser.


XI - The end


1- Ressources

En cas de problème ou pour approfondir, visitez les liens suivants:
* Le site de HORDE
* La page de IMP
* La FAQ de HORDE / IMP
* Les mailings lists du projet HORDE
* Install IMP on RedHat
* Installer imp par lea linux
* Installer Apache / PHP / MySQL (Lea-linux)


2- Conclusion

Voilà, c'est fini. J'espère que ce document vous servira à mettre en place ce super webmail. Mais attention, la configuration est adaptée à ma situation, à mes choix. Vous devrez certainement faire quelques adaptations. Lisez les fichiers de config, ils sont assez explicites.
Je suis bien entendu ouvert à toutes remarques sur ce document afin de le corriger/améliorer. Vous pouvez également me contacter si avez des soucis lors de l'installation. Je vous répondrai avec plaisir si j'ai du temps.

Bonne installation à tou(tes|s).






Généré par POFL - Aucune garantie n'est apportée aux informations du site. Sauf mention contraire, vous êtes libre de copier ce site tant que vous en indiquez la provenance.