votre logo (logo)

BrAuSa

Installation et configuration d'un webmail

Cet article décrit l'installation et la configuration d'un web mail (roundcube).

Prérequis

Installation

Récupérer l'archive roundcube

  1. Aller sur le site roundcube.
  2. Télécharger la dernière version (cet article se base sur la version 0.8.5) dans le répertoire /tmp.
  3. Décomprimer l'archive roundcubemail-0.8.5.tar.gz dans le répertoire /home/www.

    [root@srvname]# mkdir -p /home/www
    [root@srvname]# cd /home/www
    [root@srvname]# tar zxvf /tmp/roundcubemail-0.8.5.tar.gz
    [root@srvname]# mv roundcubemail-0.8.5/ webmail
    [root@srvname]# chown -R apache:apache webmail

Configuration d'un host virtuel

  1. Ajouter l'adresse ip associée au nom webmail.exemple-org.ch dans votre DNS (ou dans votre fichier hosts).
  2. Créer le fichier /etc/httpd/conf.d/webmail.conf avec le contenu ci-dessous:

    NameVirtualHost *

    <VirtualHost *>
        ServerName webmail.exemple-ch.org
        DocumentRoot /home/www/webmail
        <Directory /home/www/webmail>
          Options Indexes MultiViews FollowSymLinks
          AllowOverride All
          Order allow,deny
          Allow from all
        </Directory>
        ErrorLog /var/log/httpd/webmail-error.log
        CustomLog /var/log/httpd/webmail-access.log common
    </VirtualHost>

  3. Redémarrer apache.

    [root@srvname]# /etc/init.d/httpd restart

  4. Pour tester, taper l'adresse http://webmail.exemple-ch.org dans votre butineur préféré et vous devez voir s'afficher la page d'accueil de rouncube avec un message "CONFIGURATION ERROR" (normal puisque nous ne l'avons pas encore configuré).

Configuration

Time Zone PHP

  1. Initialiser la variable "time.zone" à Europe/Zurich dans le fichier /etc/php.ini.

    ...
    ;;;;;;;;;;;;;;;;;;;
    ; Module Settings ;
    ;;;;;;;;;;;;;;;;;;;

    [Date]
    ; Defines the default timezone used by the date functions
    ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
    date.timezone = Europe/Zurich
    ...

  2. Redémarrer apache.

    [root@srvname]# /etc/init.d/httpd restart

Base de données

  1. Créer une base de données et son utilisateur pour roundcube avec la commande ci-dessous:

    [root@srvname]# mysql -u root -p -e "create database roundcubemail; grant usage on *.* to 'roundcube'@'localhost' identified by 'motdepasse'; grant all privileges on roundcubemail.* to 'roundcube'@'localhost';flush privileges;show databases;"
    Enter password:
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | mysql |
    | roundcubemail |
    +--------------------+

Roundcube

Depuis votre butineur taper l'URL http://webmail.exemple-ch.org/installer. La page "Check environment" s'affiche. Tous les points de contrôle doivent être à OK sauf PostgreSQL (NOT AVAILABLE) et SQLite (v2). Si c'est le cas, cliquer sur le bouton <NEXT> situé en bas de la page.

Les options saisies ci-dessous sont données en exemple, à vous de les adapter à votre environnement.

General configuration
product_name: Exemple-ch Webmail
Titre afficher dans la fenêtre du butineur.
support_url: mailto:mailsupport@exempl-ch.org
Adresse mail ou site web pour le support.

Database setup
Database server: localhost
Adresse IP ou nom DNS du serveur MySql.
Database name: roundcubemail
Nom de la base de données.
Database user name: roundcube
Nom de la base de données.
Database password: motdepasse
Mot de passe de la base de données.

IMAP settings
default_host: localhost
Adresse IP ou nom DNS du serveur de messagerie (IMAP).

SMTP settings
smtp_server: localhost
Adresse IP ou nom DNS du serveur d'envois (SMTP).

Display settings & user prefs
language: fr_CH
Language de l'interface utilisateur.

Les options non décrites dans cet article sont laissées par défaut. Pour plus d'informations concernant celles-ci consulter le wiki de roundcube.

Une fois terminé, cliquer sur le bouton <CREATE CONFIG>

  1. Télécharger les fichiers main.in.php et db.inc.php.
  2. Copier les deux fichiers dans le répertoire /home/www/webmail/config.
  3. Cliquer sur le bouton <CONTINUE>.
  4. Cliquer sur <Initialize database>.
  5. Tester l'envoi de mail, en saisissant un expéditeur, puis un destinataire et cliquer sur <Send test mail>.
  6. Tester la configuration IMAP en saisissant un compte puis son mot de passe est cliquer sur <Check login>.
  7. Si tout est ok, supprimer le répertoire /home/www/webmail/installer.

Configuration avancée

Annuaire d'entreprise

Nous allons configurer une carnet d'adresses accessible par tous les utilisateurs de RoudCube. Pour cela vous devez avoir un annuaire LDAP. Dans notre exemple nous nous baserons sur un annuaire de type OpenLdap (voir Installation d'un annuaire LDAP).

  1. Installer le paquet php-ldap

    [root@srvname]# yum install php-ldap

  2. Editer le fichier main.inc.php situé dans le dossier /home/www/webmail/config dans notre exemple.

    [root@srvname]# vim /home/www/webmail/config/main.inc.php

  3. Ajouter les lignes ci-dessous sous la ligne $rcmail_config['ldap_public'] = array(); qu'il faudra mettre en commentaie.

    //$rcmail_config['ldap_public'] = array();
    $rcmail_config['ldap_public']['public'] = array(
    'name' => 'Carnet d\'adresses Exemple-ch', //Display name in rouncude in 'Address book'
    'hosts' => array('localhost'),
    'port' => 389,
    'user_specific' => false,
    'base_dn' => 'ou=people,dc=exemple-ch,dc=org',
    'bind_dn' => 'cn=Access LDAP,dc=exemple-ch,dc=org',
    'bind_pass' => 'passw0rd',
    'filter' => '(objectClass=inetOrgPerson)',
    'search_fields' => array('mail', 'cn'), // fields to search in
    'name_field' => 'cn', // this field represents the contact's name
    'email_field' => 'mail', // this field represents the contact's e-mail
    'surname_field' => 'sn', // this field represents the contact's last name
    'firstname_field' => 'givenName', // this field represents the contact's first name
    'scope' => 'sub', // search mode: sub|base|list
    );

Une fois le fichier sauver, vous pouvez vous connecter sur rouncube, cliquer sur <Carnet d'adresses> et vous devez voir apparaître 'Carnet d'adresses Exemple-ch' sous la ligne 'Adresses personelles'.

Plugins

Roundcube permet d'étendre ses fonctionnalités avec l'installation de plugins. Nous allons installer un plugin permettant de saisir des informations de l'utilisateur lors de la première connexion à Roundcude de celui-ci.

  1. Editer le fichier home/www/webmail/config/main.inc.php modifier la ligne comme ci-dessous (en gras).

    ...
    // ----------------------------------
    // PLUGINS
    // ----------------------------------

    // List of active plugins (in plugins/ directory)
    $rcmail_config['plugins'] = array('new_user_dialog');

    // ----------------------------------
    // USER INTERFACE
    // ----------------------------------
    ...

L'installation est terminée.

Si vous avez des remarques, ou constatez des erreurs dans ce tuto, n'hésitez pas à me faire un