Dernière modification 3 août 2026
Cette page a pour objet de vous présenter comment récupérer les mails des utilisateurs de votre réseau et les mettre à leur disposition. Le rôle des différents outils présentés dans cette page est le suivant:
- fetchmail permet de récupérer les mails des utilisateurs de votre réseau sur plusieurs serveurs POP ou IMAP accessibles sur internet- sendmail (MTA mail transport agent) permet de gérer
localement la réception des mails et d'appliquer certains filtres
anti spam et anti virus
- procmail (MDA mail delivery agent) permet de délivrer les mails et les dispatcher suivant le destinataire, il peut également appliquer d'autres filtres
- les serveurs POP ou IMAP permet de rendre accessible aux lecteurs de mails (MUA Mail User Agent) de votre réseau les mails qui sont arrivés, que vos clients soient sous windows ou sous unix.
- le serveur webmail permet de gérer les mails via un navigateur, y compris d'un téléphone mobile, en toute indépendance, c'est à dire en hébergeant son propre serveur et ses dossiers de mails sans dépendre d'un quelconque google qui n'aura aucun scrupule à consulter vos mails. Pour cela il faudra rendre son serveur apache visible d'internet, tout l'intérêt de la manip est de rendre accessible d'internet que le serveur apache, il n'est pas nécessaire d'ouvrir les ports du serveur POP, IMAP ou SMTP.
Un petit schéma vaut mieux qu'un grand discours, cela donne quelque chose comme cela pour la réception et l'envoi de mail.

Complémentaire à cette page, consultez également les pages:
- filtrage anti spam et anti virus#bin/bash
/usr/bin/fetchmail -a -f
/root/.fetchmailrc -L /var/log/fetchmail.log
echo "" >> /var/log/fetchmail.log
ATTENTION les commandes lancées dans ce fichier doivent être indiquées avec leur chemin complet. Le fichier /var/log/fetchmail.log doit d'abord être créé avec un touch.
Maintenant root doit créer un fichier .fetchmailrc qui doit se trouver dans sa home directory avec les droits 600 (chmod 600 ~/.fetchmailrc ). Ce fichier contient les lignes suivantes:
set logfile /var/log/fetchmail.log
poll pop.fai.fr protocol pop3
user login-fai there with password password-fai is
olivier here
poll pop.fnac.net protocol pop3
user login-fnac there with password password-fnac is
olivier here
poll pop.free.fr protocol pop3
user login-free there with password password-free is
olivier here
poll pop.ifrance.com protocol pop3
user login-ifrance there with password password-ifrance
is olivier here
poll pop.fnac.net protocol pop3
user login2-fnac there with password password2-fnac is
veronique here
poll pop.ifrance.com protocol pop3
user login2-ifrance there with password password2-ifrance
is veronique here
poll pop.libertysurf.fr protocol pop3
user login-liberty there with password password-liberty
is olivier here
Le fichier fetchmail sous /var/log est le fichier de log, pop.fai.fr est le nom du serveur pop de votre provider. login-fai est le nom de votre login chez votre provider, password-fai est le mot de passe chez le provider, olivier est le login de l'utilisateur local correspondant. Vous rajoutez autant de ligne poll et user que vous avez de compte pop à droite et à gauche, vous noterez qu'on peut en profiter pour relever les emails d'autres utilisateurs de votre réseau (dans l'exemple utilisateur du réseau privé veronique).
ATTENTION: les mots de passe sont marqués en clair (d'où les droits du fichier...).
maintenant si votre FAI a mis en
place un serveur POP avec connexion sécurisée avec TLS/SSL on va rajouter
l'option qui va bien comme ceci
poll pop.libertysurf.fr protocol pop3
user login-liberty there with password password-liberty
is olivier here
option ssl;
il faudra rajouter ensuite l'option --sslcertck à la commande fetchmail comme ceci
/usr/bin/fetchmail --sslcertck -a -f /root/.fetchmailrc -L /var/log/fetchmail.log
poll pop.libertysurf.fr protocol pop3
user login-liberty there with password password-liberty
is olivier here
mda "/usr/bin/procmail -d %T"
Nota : En revanche la conséquence d'avoir mis mda "/usr/bin/procmail -d %T" est qu'on ne passe plus par le serveur smtp local (par sendmail dans mon cas) et si vous aviez mis en place tout un appareillage de lutte anti spam avec spamassassin notamment, il ne sera pas utilisé, c'est gênant. Dans ce cas on rajoutera dans le ficher .procmailrc les lignes suivantes pour indiquer qu'on veut lancer spamc qui va invoquer le daemon spamd pour vérification.
:0fw
| /usr/local/bin/spamc
Le problème d'utiliser fetchmail pour récupérer les mails de plusieurs comptes locales et qu'on se retrouve avec cette erreur
/etc/cron.hourly/recupmail:
fetchmail: Avertissement: appeler fetchmail avec les
privilèges de « root » est déconseillé.
On va donc l'utiliser en mode daemon plus sécurisé, il faudra installer le package fetchmail-daemon qui installera le fichier /usr/lib/systemd/system/fetchmail.service qui contient :
[Unit]
Description=A remote-mail retrieval utility
After=local-fs.target network.target
[Service]
User=mail
EnvironmentFile=-/etc/sysconfig/fetchmail
ExecStart=/usr/bin/fetchmail -d ${FETCHMAIL_POLL} --syslog -f
/etc/fetchmailrc
RestartSec=1
[Install]
WantedBy=multi-user.target
Par défaut les logs seront archivés par systemd et visibles avec journalctl
le fichier /etc/sysconfig/fetchmail contient
# Customized settings for fetchmail
# Define nice level for fetchmail
SERVICE_RUN_NICE_LEVEL="+5"
# Define polling interval in seconds
FETCHMAIL_POLL=1800
on pourra adapter l'intervalle de récupération, je l'ai fixé à 30min (par défaut il est à 5min) et maintenant /etc/fetchmailrc contient un fichier identique (sans la ligne log setfile), ce fichier appartient à l'utilisateur mail (groupe mail). Maintenant on rend actif le service
systemctl enable fetchmail.service
Created symlink
/etc/systemd/system/multi-user.target.wants/fetchmail.service
→ /usr/lib/systemd/system/fetchmail.service.
et on le lance en tapant
systemctl start fetchmail
et pour connaître son état on tapera
systemctl status fetchmail
voilà le résultat
● fetchmail.service - A remote-mail retrieval utility
Loaded: loaded
(/usr/lib/systemd/system/fetchmail.service; enabled; vendor
preset: disabled)
Active: active (running) since Sun
2021-09-12 10:50:27 CEST; 15s ago
Main PID: 61259 (fetchmail)
Tasks: 1 (limit: 4677)
Memory: 2.8M
CPU: 81ms
CGroup:
/system.slice/fetchmail.service
└─61259 /usr/bin/fetchmail -d 1800 --syslog -f
/etc/fetchmailrc
sept. 12 10:50:27 mana.kervao.fr systemd[1]: Started A
remote-mail retrieval utility.
sept. 12 10:50:28 mana.kervao.fr fetchmail[61259]: démarrage
de fetchmail 6.4.8 en tâche de fond
sept. 12 10:50:29 mana.kervao.fr fetchmail[61259]: 1 message
pour olivier.hoarau@funix.org dans pop.xxx.net (63018 octets).
sept. 12 10:50:39 mana.kervao.fr fetchmail[61259]: lecture du
message olivier.hoarau@funix.org@pop.xxx.net:1 parmi 1 (63018
octets) éliminé
sept. 12 10:50:40 mana.kervao.fr fetchmail[61259]: 3 messages
pour veronique.hoarau@funix.org dans pop.xxx.net (181971
octets).
on pensera au besoin à supprimer le fichier /etc/cron.hourly/recupmail
Il n'y a rien de particulier à mettre en place, à noter que les mails sont stockés au format mbox, mbox est le format historique UNIX il consiste grosso modo à mettre tous les mails d'un dossier dans un fichier unique.
En utilisant un serveur IMAP les mails doivent être stockés au format Maildir et non mbox, avec maildir chaque mail est un fichier et chaque dossier est un répertoire. Dans le cas présent, chaque utilisateur créera un fichier .procmailrc contenant
DEFAULT="$HOME/Maildir/"
ORGMAIL=$DEFAULT
LOGFILE="$HOME/procmail.log"
MAILDIR="$HOME/Maildir/"
VERBOSE=on
Procmail permet de trier le courrier reçu par fetchmail. pour cela tout utilisateur avec son .fetchmailrc doit avoir un .procmailrc également dans sa home directory. Si je prends mon exemple, je disposais d'un compte pop unique chez mon provider fnac.net, mon adresse email était olivier.hoarau@fnac.net, mon compte local est olivier, celle de ma tendre et chère veronique.hoarau@fnac.net et compte local veronique. Si je veux expédier à Véronique tous les courriers dont les champs Destinataire (To) ou Copie (Cc) contiennent le champ veronique ou Véronique ou encore Veronique, voici la tête de mon .procmailrc
#olivier
:0 c
*^(To|Cc|Bcc):*(veronique|Veronique)
!veronique
Celui de ma femme aura cette tête là :
#veronique
:0 c
*^(To|Cc|Bcc):*(olivier|Olivier|funboard|Funboard)
!olivier
Je suis abonné à une liste funboard, c'est le nom de la liste qui apparaît dans la liste du destinataire ou du destinataire en copie, et non pas mon nom, d'où le critère de tri.
Le ! réexpédie localement le courrier vers le bon destinataire. Vous pouvez très bien aussi faire un fichier unique pour chaque utilisateur qui aura cette tête là :
#redirection vers veroniqueA noter que le petit c permet
de pouvoir gérer les copies, en son absence si un mail arrive avec
pour destinataire (To) Véronique et Olivier en copie (Cc), ce
n'est que le premier dans la liste qui recevra le mail (en
l’occurrence Véronique dans mon exemple de fichier), c permet
qu'olivier reçoive aussi le courrier.
Si vous disposez d'un email unique
avec un seul email rattaché et que vous comptez vous en servir
pour plusieurs personnes. Vous pouvez demander à vos
interlocuteurs de préciser dans le sujet du mail le destinataire
et faire un tri similaire à celui vu précédemment en
filtrant sur le champ Subject du mail (*^(Subject):*(veronique|Veronique)).
Vous devez installer le package dovecot, voilà le résultat
Generating a 2048 bit RSA
private key
...................+++
..........................................+++
writing new private key to
'/etc/pki/tls/private/dovecot.pem'
-----
le message précédent correspond
à la création des clés pour les connexions SSL. Le
package dovecot contient
les serveurs IMAP et POP3.
Le serveur IMAP stocke les mails sur le serveur
contrairement au serveur POP où les mails se retrouvent
stockés sur le poste client, l'avantage avec IMAP est
donc de pouvoir consulter ses mails un peu partout dans la limite
de l'accès bien sûr au serveur IMAP. Pour ma part
j'utilise ce dernier.
Voilà le fichier
/etc/dovecot/dovecot.conf avec les deux services activés
## Dovecot configuration file
dovecot_config_version = 2.4.4
dovecot_storage_version = 2.4.4
!include_try conf.d/*.conf
protocols {
imap = yes
pop3 = yes
}
#configuration IMAP pour avoir une arborescence avec sous
dossiers
mail_driver = maildir
mail_path = ~/Maildir
mailbox_list_layout = fs
namespace inbox {
inbox = yes
separator = /
}
passdb pam {
}
userdb passwd {
}
ssl_server {
cert_file = /etc/ssl/certs/dovecot.pem
key_file = /etc/ssl/private/dovecot.pem
}
Maintenant dans le répertoire /etc/dovecot/conf.d
il faut créer le fichier 10-auth.conf
maintenant on relance dovecot
systemctl restart dovecot
normalement on devrait avoir un message comme celui-ci
août 03 17:27:55 ultra.kervao.fr dovecot[9929]: master: Dovecot
v2.4.4 (8b687aa65c) starting up for imap, pop3
août 03 17:27:55 ultra.kervao.fr systemd[1]: Started Dovecot
IMAP/POP3 email server.
chmod 0600 /var/mail/*
et rajouter le nom des utilisateurs
dans le groupe mail
# 2.4.4 (8b687aa65c): /etc/dovecot/dovecot.conf
# OS: Linux 6.18.39-desktop-1.mga10 x86_64 Mageia 10
# Hostname: ultra.kervao.fr
dovecot_config_version = 2.4.4
auth_mechanisms {
plain = yes
}
dovecot_storage_version = 2.4.4
mail_driver = maildir
mail_path = ~/Maildir
protocols {
imap = yes
pop3 = yes
}
namespace inbox {
inbox = yes
separator = /
}
passdb pam {
}
userdb passwd {
}
ssl_server {
cert_file = /etc/ssl/certs/dovecot.pem
key_file = /etc/ssl/private/dovecot.pem
}

à la première connexion il faudra sans doute confirmer l'exception de sécurité pour votre serveur de mail

et puis c'est tout, les courriers seront récupérés dans
/var/spool/mail du serveur.
Maintenant pour une configuration IMAP, sous thunderbird on pourra s'inspirer de cette page https://support.mozilla.org/en-US/kb/switch-pop-imap-account mais en gros il faudra créer un nouveau compte de messagerie en pointant dans le courrier entrant sur votre serveur IMAP

Sous thunderbird maintenant vous allez peupler votre compte IMAP en déplaçant vos dossiers de votre ancien compte POP vers le nouveau compte IMAP tout simplement par drag and drop.


Il faudra ensuite accepter l'exception de sécurité pour prendre en compte le certificat local. Les certificats sont visibles sous thunderbird au niveau de Éditions->Paramètres->Vie privée et sécurité et dans la page Sécurité->Certificats->Gérer les certificats. Dans la fenêtre Gestionnaire de certificats, le certificat utilisé apparaît au niveau de l'onglet Serveurs.
A noter qu'en cas d'expiration du
certificat sur le serveur, il ne sera plus possible de se
connecter. Dans ce cas il faudra supprimer le certificat obsolète
via le Gestionnaire de certificats et normalement on
devrait à nouveau avoir la fenêtre pour accepter l'exception de
sécurité qui apparaît. Il se trouve que j'ai galéré une fois car
cette fenêtre ne s'est pas affichée et j'avais comme message
incessant sous thunderbird "vérification des capacités
du serveur de courrier". Comme ça avait très bien marché
pour un autre compte thunderbird j'y ai récupéré le
fichier cert_override.txt qu'on retrouve sous .thunderbird/numéro-compte.default
et qui contient les bonnes mentions de certificat.
Pour être averti de l'arrivée de mail, on modifiera également les paramètres d'authentification basée sur PAM. Dans /etc/pam.d/login et /etc/pam.d/su on rajoutera à la fin
session optional pam_mail.so dir=~/Maildir standard
Si jamais un jour ou l'autre votre client de messagerie préféré
vous sort que le certificat du serveur est expiré et plus valide,
il faudra le renouveler. Pour cela on va commencer par sauvegarder
la clé privée et le certificat de dovecot en tapant:
cp /etc/ssl/private/dovecot.pem
/etc/ssl/private/dovecot.pem.old
cp /etc/ssl/certs/dovecot.pem /etc/ssl/certs/dovecot.pem.old
on crée une nouvelle clé privée
openssl genrsa -out
/etc/ssl/private/dovecot.pem 1024
voilà le résutat
Generating RSA private key, 1024
bit long modulus
..................++++++
.........++++++
e is 65537 (0x010001)
on crée le nouveau certificat d'une durée de validité de 2 ans. Il
est bien évident que ce certificat est perso et n'a aucune
validité sur internet, il sera utile pour un usage strictement
privé.
openssl req -new -x509 -key
/etc/ssl/private/dovecot.pem -out /etc/ssl/certs/dovecot.pem
-days 730
voilà le résultat
You are about to be asked to
enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished
Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:Bzh
Locality Name (eg, city) []:Brest
Organization Name (eg, company) [Internet Widgits Pty Ltd]:none
Organizational Unit Name (eg, section) []:none
Common Name (e.g. server FQDN or YOUR name) []:mana
Email Address []:olivier.hoarau@funix.org
on relance dovecot
systemctl stop dovecot.service
systemctl start dovecot.service
il faudra sans doute à nouveau accepter le nouveau certificat dans le client de messagerie
Si dans les logs vous avez ce type de message
janv. 04 17:59:36 mana.kervao.fr
dovecot[29061]: master: Warning: /power is no longer mounted.
See http://wiki2.dovecot.org/Mountpoints
c'est un point de message qui a disparu, il suffit de l'indiquer
à dovecot en tapant
doveadm mount remove /power
Si par hasard vous êtes toujours au format de mail MBOX on passe au format MAILDIR pour pouvoir bénéficier des sous dossiers dans l'arborescence des mails. Pour récupérer maintenant les mails qui sont sous /var/spool/mail on récupérera mb2md qu'on peut trouver ici https://github.com/mindbit/mb2md pour chaque utilisateur (ici olivier) on tapera la commande
mb2md -s /var/spool/mail/olivier -d ~/Maildir/
et voilà le résultat
Converting /var/spool/mail/olivier to maildir:
/home/olivier/Maildir
Source Mbox is /var/spool/mail/olivier
Target Maildir is /home/olivier/Maildir
Dummy mail system first message detected and not saved.
7 messages.
tar xvfz roundcubemail-1.7.2.tar.gz
cela donne
Installer verified
puis on tape
All settings correct for using Composer
Downloading...
Composer (version 2.10.2) successfully installed to:
/home/olivier/web/roundcubemail-1.7.2/composer.phar
Use it: php composer.phar
maintenant on tape
php composer.phar install --no-dev
voilà le résultat
No composer.lock file present. Updating dependencies to latest
instead of installing from lock file. See
https://getcomposer.org/install for more information.
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 51 installs, 0 updates, 0 removals
- Locking bacon/bacon-qr-code (2.0.8)
- Locking dasprid/enum (1.0.5)
- Locking doctrine/instantiator (2.0.0)
- Locking guzzlehttp/guzzle (7.8.0)
- Locking guzzlehttp/promises (2.0.1)
- Locking guzzlehttp/psr7 (2.6.1)
- Locking masterminds/html5 (2.7.6)
- Locking myclabs/deep-copy (1.11.1)
- Locking nikic/php-parser (v4.17.1)
- Locking pear/auth_sasl (v1.1.0)
- Locking pear/console_commandline (v1.2.6)
- Locking pear/console_getopt (v1.4.3)
- Locking pear/crypt_gpg (v1.6.7)
- Locking pear/mail_mime (1.10.11)
- Locking pear/net_sieve (1.4.6)
- Locking pear/net_smtp (1.10.1)
- Locking pear/net_socket (v1.2.2)
- Locking pear/pear-core-minimal (v1.10.13)
- Locking pear/pear_exception (v1.0.2)
- Locking phar-io/manifest (2.0.3)
- Locking phar-io/version (3.2.1)
- Locking phpunit/php-code-coverage (9.2.29)
- Locking phpunit/php-file-iterator (3.0.6)
- Locking phpunit/php-invoker (3.1.1)
- Locking phpunit/php-text-template (2.0.4)
- Locking phpunit/php-timer (5.0.3)
- Locking phpunit/phpunit (9.6.13)
- Locking psr/http-client (1.0.2)
- Locking psr/http-factory (1.0.2)
- Locking psr/http-message (2.0)
- Locking ralouphie/getallheaders (3.0.3)
- Locking roundcube/plugin-installer (0.3.2)
- Locking roundcube/rtf-html-php (v2.1)
- Locking sebastian/cli-parser (1.0.1)
- Locking sebastian/code-unit (1.0.8)
- Locking sebastian/code-unit-reverse-lookup (2.0.3)
- Locking sebastian/comparator (4.0.8)
- Locking sebastian/complexity (2.0.2)
- Locking sebastian/diff (4.0.5)
- Locking sebastian/environment (5.1.5)
- Locking sebastian/exporter (4.0.5)
- Locking sebastian/global-state (5.0.6)
- Locking sebastian/lines-of-code (1.0.3)
- Locking sebastian/object-enumerator (4.0.4)
- Locking sebastian/object-reflector (2.0.4)
- Locking sebastian/recursion-context (4.0.5)
- Locking sebastian/resource-operations (3.0.3)
- Locking sebastian/type (3.2.1)
- Locking sebastian/version (3.0.2)
- Locking symfony/deprecation-contracts (v3.3.0)
- Locking theseer/tokenizer (1.2.1)
Writing lock file
Installing dependencies from lock file
Package operations: 23 installs, 0 updates, 0 removals
- Downloading dasprid/enum (1.0.5)
- Downloading bacon/bacon-qr-code (2.0.8)
- Downloading symfony/deprecation-contracts (v3.3.0)
- Downloading psr/http-message (2.0)
- Downloading psr/http-client (1.0.2)
- Downloading psr/http-factory (1.0.2)
- Downloading guzzlehttp/psr7 (2.6.1)
- Downloading guzzlehttp/promises (2.0.1)
- Downloading guzzlehttp/guzzle (7.8.0)
- Downloading masterminds/html5 (2.7.6)
- Downloading pear/console_commandline (v1.2.6)
- Downloading pear/pear-core-minimal (v1.10.13)
- Downloading pear/net_sieve (1.4.6)
- Downloading pear/net_smtp (1.10.1)
- Installing roundcube/plugin-installer (0.3.2):
Extracting archive
- Installing dasprid/enum (1.0.5): Extracting archive
- Installing bacon/bacon-qr-code (2.0.8): Extracting
archive
- Installing symfony/deprecation-contracts (v3.3.0):
Extracting archive
- Installing psr/http-message (2.0): Extracting archive
- Installing psr/http-client (1.0.2): Extracting archive
- Installing ralouphie/getallheaders (3.0.3): Extracting
archive
- Installing psr/http-factory (1.0.2): Extracting archive
- Installing guzzlehttp/psr7 (2.6.1): Extracting archive
- Installing guzzlehttp/promises (2.0.1): Extracting
archive
- Installing guzzlehttp/guzzle (7.8.0): Extracting
archive
- Installing masterminds/html5 (2.7.6): Extracting
archive
- Installing pear/pear_exception (v1.0.2): Extracting
archive
- Installing pear/auth_sasl (v1.1.0): Extracting archive
- Installing pear/console_commandline (v1.2.6):
Extracting archive
- Installing pear/crypt_gpg (v1.6.7): Extracting archive
- Installing pear/console_getopt (v1.4.3): Extracting
archive
- Installing pear/pear-core-minimal (v1.10.13):
Extracting archive
- Installing pear/mail_mime (1.10.11): Extracting archive
- Installing pear/net_socket (v1.2.2): Extracting archive
- Installing pear/net_sieve (1.4.6): Extracting archive
- Installing pear/net_smtp (1.10.1): Extracting archive
- Installing roundcube/rtf-html-php (v2.1): Extracting
archive
11 package suggestions were added by new dependencies, use
`composer suggest` to see details.
Generating autoload files
4 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Maintenant sous MySQL (ou phpMyAdmin) on
créera la base de données roundcubemail
CREATE DATABASE roundcubemail CHARACTER SET utf8 COLLATE utf8_general_ci;
on va donner les droits d'administration sur la base à un utilisateur particulier
GRANT ALL PRIVILEGES ON roundcubemail.* TO olivier@localhost IDENTIFIED BY 'passwd';
FLUSH PRIVILEGES
Toujours dans le répertoire roundcubemail-1.6.8 on tapera
mariadb roundcubemail -u olivier -p < SQL/mysql.initial.sql
Maintenant j'ai déplacé roundcubemail dans un répertoire
accessible par un serveur web apache
(à adapter à votre configuration)
cp -Rf /home/olivier/web/roundcubemail-1.6.8 /var/httpd/roundcubemail
dans le fichier httpd.conf on rajoutera
<Directory "/var/httpd/roundcubemail">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
Alias /webmail "/var/httpd/roundcubemail"
Sinon on accède à la page de configuration en tapant dans votre navigateur http://votre-serveur-local/webmail/installer/. La première page vous indique si tout est correctement installé

La deuxième page permet d'indiquer des éléments de configuration, notamment les informations pour accéder à la base de données, au serveur IMAP et au serveur SMTP d'envoi de mails.

On télécharge et on installe manuellement ensuite le fichier de configuration qu'on place sous config

et la dernière page pour tester le tout

Le fichier de configuration se trouver sous /var/httpd/roundcubemail/config/config.inc.php, voilà quelques lignes intéressantes. L'accès à la base de données locale
$config['db_dsnw'] = 'mysql://olivier:mot-passe@localhost/roundcubemail';
le serveur de mail IMAP
$config['imap_host'] = 'serveur-imap';
il faudra ensuite supprimer le répertoire
/var/httpd/roundcubemail/installer
On pensera à mettre les fichiers logs et temp à 777. Si vous rencontrez une erreur SMTP 535 dans le fichier config.inc.php il faudra rajouter
$config['smtp_user'] = '';
voilà, voilà, roundcubemail est prêt à être utilisé et voici ce que ça donne sur l'adresse de votre-serveur/webmail à partir d'un navigateur quelconque

En cas de problème, vous pouvez activer le mode debug en rajoutant les lignes suivantes dans le fichier config.inc.php
$config['debug_level'] = 1;
// Log SQL queries
$config['sql_debug'] = true;
// Log IMAP conversation
$config['imap_debug'] = true;
// Log LDAP conversation
$config['ldap_debug'] = true;
// Log SMTP conversation
$config['smtp_debug'] = true;
et maintenant si le thème par défaut elastic est planté, ça peut arriver si la version de lessc est trop vieille (cas de la Mageia 8) il faudra installer le package npm en tant que root, puis tapez les commandes
npm install -g less
npm install -g less-plugin-clean-css
et dans le répertoire de roundcubemail/skins/elastic on tapera
lessc --clean-css="--s1 --advanced" styles/styles.less >
styles/styles.min.css
lessc --clean-css="--s1 --advanced" styles/print.less >
styles/print.min.css
lessc --clean-css="--s1 --advanced" styles/embed.less >
styles/embed.min.css
Pour les mises à jour on récupèrera la dernière version qu'on décompresse en tapant (à noter qu'il faut récupérer la version complète) :
dans lequel on tape alors
bin/installto.sh /var/httpd/roundcubemail
il remplace un certain nombre de fichiers et la fin peut ressembler à ça
Have fun!
All done.
on revient sous /var/httpd/roundcubemail on tape également
php composer.phar update --no-dev
c'est tout
Je ne vous ferai pas l'affront de vous expliquer comment ça fonctionne, c'est très simple et intuitif. Au besoin y a une doc un peu passée par ici https://docs.roundcube.net/doc/help/1.0/fr_FR/# OVH fournit également une documentation par là https://docs.ovh.com/fr/emails/utilisation-roundcube/
Rien de plus simple ensuite de rendre accessible votre serveur IMAP sur internet et vous avez accès ainsi à vos mails depuis votre mobile Android n'importe où dans le monde
![]() |
![]() |
Personnalisation avec l'installation d'un agenda, on récupérera
ce plugin par ici https://github.com/kolab-roundcube-plugins-mirror
on récupérera plus précisément calendar-3.5.7.tar.gz,
libkolab-3.5.7.tar.gz et
libcalendaring-3.5.6.tar.gz qu'on va décompresser dans le
répertoire roundcubemail sous plugins. On les
renomme ensuite ainsi
mv calendar-3.5.7/ calendar
mv libkolab-3.5.7/ libkolab
mv libcalendaring-3.5.6/ libcalendaring
dans le répertoire calendar on va taper les commandes suivantes
mv config.inc.php.dist config.inc.php
cd ../..
bin/initdb.sh --dir=plugins/calendar/drivers/database/SQL
voilà le résultat de la dernière commande
Creating database schema... [OK]
il faudra maintenant en tant que root installer les packages suivants
urpmi ruby-less ruby-devel
et taper
gem install therubyracer
voilà le résultat
Building native extensions. This could take a while...
Successfully installed therubyracer-0.12.3
Parsing documentation for therubyracer-0.12.3
Installing ri documentation for therubyracer-0.12.3
Done installing documentation for therubyracer after 0 seconds
1 gem installed
on tape alors
lessc --clean-css="--s1 --advanced"
plugins/libkolab/skins/elastic/libkolab.less >
plugins/libkolab/skins/elastic/libkolab.min.css
lessc --clean-css="--s1 --advanced"
plugins/libkolab/skins/larry/libkolab.less >
plugins/libkolab/skins/larry/libkolab.min.css
on édite enfin config/config.inc.php et on rajoute le plugin calendar dans la liste des extensions
// ----------------------------------
// PLUGINS
// ----------------------------------
// List of active plugins (in plugins/ directory)
$config['plugins'] = [
'archive',
'zipdownload',
'calendar'
];
et voilà une icône calendrier fait son apparition

et voilà ce que ça donne pour les préférences de l'agenda


| [Retour page d'accueil FUNIX] |