Comment héberger son propre serveur e-mail sur Raspberry Pi
Configurer son propre serveur e-mail peut être délicat… Je l’ai fait quelques fois, et ce n’est jamais aussi simple que cela en a l’air. Que vous visiez une configuration SMTP simple ou une suite de messagerie complète, je vais décomposer les étapes clés pour vous aider à le faire fonctionner sans problème.
Postfix est le principal service à installer sur Raspberry Pi pour héberger un serveur de messagerie. Il enverra et recevra les e-mails. Ensuite, d’autres services peuvent être ajoutés, comme Dovecot pour le support POP/IMAP et Roundcube peut être utilisé comme webmail.
Dans ce tutoriel, je vais vous montrer comment installer chaque composant étape par étape, avec des conseils pour éviter les erreurs courantes. À la fin, vous aurez un serveur de messagerie fonctionnel que vous pourrez gérer et ajuster comme un pro.
Si vous débutez avec Raspberry Pi ou Linux, j’ai quelque chose qui peut vous aider !
Téléchargez ma fiche mémo des commandes Linux gratuitement – c’est un guide de référence rapide avec toutes les commandes essentielles dont vous aurez besoin utiliser votre Raspberry Pi. Cliquez ici pour l’obtenir gratuitement !
Prérequis
Si vous souhaitez configurer un serveur SMTP, les exigences sont presque nulles.
Un Raspberry Pi et un serveur SMTP qui servira de relais suffisent (Gmail par exemple).
Si vous souhaitez suivre le tutoriel jusqu’à la fin, vous aurez besoin de :
- Un Raspberry Pi : N’importe quel modèle devrait convenir, mais je recommanderais un Raspberry Pi 4 ou au moins un Raspberry Pi 3B+.
- Une carte micro-SD ou une clé USB : Je tends à utiliser de moins en moins les cartes SD, et j’utilise cette clé USB de SanDisk à la place pour toutes mes expériences. Mais si vous souhaitez utiliser une carte SD, vous pouvez le faire, j’ai fait un benchmark des cartes SD les plus populaires ici.
- Un nom de domaine (je vais utiliser domain.com dans toutes les étapes ci-dessous, n’oubliez pas de le changer).
- Une adresse IP publique statique (ou au moins un service de DNS dynamique, comme No-Ip).
Sachez aussi que je fais ce tutoriel sur Raspberry Pi OS, donc je recommande d’installer Raspberry Pi OS en premier (Lite suffira) en suivant ce tutoriel.
Je vous suggère d’utiliser SSH pour suivre ce tutoriel depuis votre ordinateur habituel et copier/coller les commandes et configurations (il y en a beaucoup !). Si vous avez besoin d’aide pour configurer SSH sur votre Raspberry Pi, cliquez sur le lien pour tout apprendre sur ce protocole et comment l’utiliser.
Avertissement de sécurité
Créer votre propre serveur de messagerie sécurisé n’est pas simple.
Il est facile de faire une erreur de configuration et de transformer votre serveur en un relais SMTP ouvert pour le monde entier, ou de vous faire spammer.
Alors assurez-vous de suivre ce tutoriel précisément, puis de surveiller les journaux système pour vous assurer que vous êtes le seul à effectuer les actions qui se produisent sur votre serveur.
Configurer des fonctionnalités de sécurité supplémentaires comme un pare-feu ou le service fail2ban est également une bonne idée.
Configuration DNS
Dans les prochaines étapes, nous allons modifier les paramètres DNS de notre nom de domaine pour utiliser notre adresse IP comme serveur de messagerie.
Adresse IP
Si vous n’avez pas d’adresse IP publique statique, vous aurez besoin d’utiliser un service DNS dynamique gratuit comme No-IP pour rediriger un domaine vers votre adresse IP dynamique.
Vous devrez installer un outil pour lui communiquer régulièrement votre adresse IP actuelle, et il redirigera un domaine comme myserver.ddns.net vers votre dernière adresse IP connue (plus de détails à ce sujet ici).
Si vous n’avez pas de nom de domaine, je pense que vous pouvez utiliser cet alias directement.
Ce n’est pas l’option parfaite pour un serveur de messagerie car vous aurez de petites interruptions de service lorsque votre IP change, mais si vous ne traitez pas trop sérieusement vos e-mails, cela devrait aller.
Configuration de la zone DNS
Maintenant, vous devez aller chez votre registraire de noms de domaine et changer ces zones pour qu’elles correspondent à votre adresse IP actuelle (ou à votre nom de domaine de fournisseur de DNS dynamique) :
- MX
- pop.domain.com
- smtp.domain.com
- imap.domain.com
- mail.domain.com
MX est obligatoire pour recevoir des e-mails sur votre Raspberry Pi. Les autres sont juste des noms faciles à retenir pour accéder à vos e-mails.
Les changements peuvent prendre jusqu’à 24 heures avant de s’appliquer.
Vous pouvez suivre l’évolution des changements avec un outil en ligne comme Network-Tools.com.
Choisissez « DNS » dans le menu déroulant « Tool », et tapez le domaine ou sous-domaine que vous souhaitez vérifier.
Votre plan de bataille
Si vous avez besoin d’un aperçu de tout ce que je vais expliquer dans ce guide, voici un schéma rapide de tout ce dont nous avons besoin :

C’est difficile de tout mettre sur le même schéma sans rendre la lecture trop compliquée, mais n’hésitez pas à revenir ici à tout moment si vous vous perdez un peu dans les étapes ci-dessous.
Installer Postfix pour envoyer des e-mails
Passons maintenant aux choses principales et à l’installation de Postfix.
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Postfix sera la base de notre serveur de messagerie.
Il nous permettra d’envoyer et de recevoir des e-mails correspondant à notre nom de domaine.
Dans cette étape, nous apprendrons à envoyer des e-mails.
À lire aussi : Marre de Raspberry Pi OS ? Teste ces systèmes super cool.
Installation
Comme pour tout tutoriel, commencez par faire les mises à jour du système si cela n’est pas déjà fait :sudo apt update
sudo apt upgrade
Vous pouvez ensuite installer le paquet Postfix :sudo apt install postfix
Durant l’installation, vous devrez choisir ces deux options de configuration :
- Le type général de configuration e-mail : Internet site
- Nom de courrier système : domain.com

Maintenant que l’installation est terminée, nous allons apporter deux modifications à la configuration qui a été générée :
- Ouvrir le fichier de configuration :
sudo nano /etc/postfix/main.cf
Si vous n’êtes pas habitué à utiliser nano, je vous recommande de lire cet article d’abord. J’explique les bases ainsi que les raccourcis les plus importants à utiliser dans Nano. - Désactiver la gestion d’IPv6 :
- Remplacer :
inet_protocols = all - Par :
inet_protocols = ipv4
- Remplacer :
- Entrez votre nom de domaine comme myhostname :
myhostname= domain.com - Si vous êtes sur un réseau local, la plupart des FAI n’autorisent pas l’envoi d’e-mails directement.
Vous devrez peut-être ajouter un hôte relais dans votre configuration.
Demandez à votre fournisseur le serveur à utiliser comme relais :relayhost = smtp.yourprovider.com
Vous pouvez également utiliser Gmail comme relais (le nom d’utilisateur et le mot de passe seront requis dans votre fichier de configuration). - Enregistrez et quittez (CTRL+O, Entrée, CTRL+X).
- Redémarrez Postfix :
sudo systemctl restart postfix
À ce stade, le serveur devrait démarrer correctement sans erreurs au démarrage.
Si ce n’est pas le cas, cherchez à résoudre ces problèmes avant de continuer.
Si les commandes Linux ce n’est pas trop votre truc, n’hésitez pas à jeter un œil à cet article qui vous explique les commandes qu’il faut absolument connaître. Je vous donne aussi une antisèche à télécharger pour les avoir toujours sous la main !
Test
Nous allons maintenant effectuer notre premier test en envoyant un e-mail depuis le Raspberry Pi.
Je vous conseille aussi : Votre Pi est-il vraiment sécurisé ? Voici 17 conseils simples
Telnet
Pour ce test, nous utiliserons telnet pour nous connecter à postfix.
- Installer telnet :
sudo apt install telnet - Se connecter au serveur SMTP :
telnet localhost 25 - Entrer cette série de commandes :
ehlomail from:rcpt to:dataSubject: testTest.quit
- Cette séquence de commandes créera un e-mail et l’enverra à (adresse e-mail externe).
Voici la trace complète :
pi@raspberrypi:~ $ telnet localhost 25 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 domain.com ESMTP Postfix (Raspbian) ehlo domain.com 250-domain.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250 SMTPUTF8 mail from: 250 2.1.0 Ok rcpt to: 250 2.1.5 Ok data 354 End data with. Subject: test Test . 250 2.0.0 Ok: queued as 44EAE1FE54 quit 221 2.0.0 Bye
Mailutils
Si vous cherchez un moyen plus convivial de le faire, vous pouvez installer mailutils pour utiliser la commande mail.
- Installer mailutils :
sudo apt install mailutils - Envoyer un e-mail de test avec la commande mail :
echo 'Test' | mail -s "Test mail command"
Dans les deux cas, vous pouvez suivre l’e-mail en consultant les journaux avec journalctl (en anglais) :journalctl -u
Débogage
Dans tous les cas, vous pouvez vérifier le fichier journal /var/log/mail.log pour voir ce qui se passe si vous n’avez pas reçu l’e-mail.
Si tout fonctionne correctement, vous devriez voir quelque chose comme ceci : Jul 1 04:14:32 raspberrypi postfix/local[5433]: 734AA1FF96: to=, relay=local, delay=0.09, delays=0.01/0.04/0/0.04, dsn=2.0.0, status=sent (delivered to mailbox)
Recevoir des e-mails avec Postfix
Il est maintenant temps de modifier notre configuration Postfix pour recevoir des e-mails.
Configuration
Nous ferons cela en utilisant le format de boîtes aux lettres Maildir.
Maildir est une méthode sûre et facile pour stocker les e-mails : chaque boîte aux lettres est un répertoire, et chaque e-mail est un fichier.
À lire aussi : N’achetez pas de nouvelle carte SD avant d’avoir lu ça
- Modifiez le fichier de configuration :
sudo nano /etc/postfix/main.cf - Ajoutez ces lignes à la fin du fichier :
home_mailbox = Maildir/
mailbox_command =
Cette configuration indique à Postfix de créer un dossier Maildir pour chaque utilisateur du système.
Ce dossier accueillera désormais vos nouveaux e-mails entrants.
Nous devons maintenant créer le modèle de dossier Maildir en suivant ces étapes :
- Installez ces paquets :
sudo apt install dovecot-common dovecot-imapd - Créez des dossiers dans le répertoire modèle :
sudo maildirmake.dovecot /etc/skel/Maildir
sudo maildirmake.dovecot /etc/skel/Maildir/.Drafts
sudo maildirmake.dovecot /etc/skel/Maildir/.Sent
sudo maildirmake.dovecot /etc/skel/Maildir/.Spam
sudo maildirmake.dovecot /etc/skel/Maildir/.Trash
sudo maildirmake.dovecot /etc/skel/Maildir/.Templates
Ces modèles seront utilisés lorsque vous ajoutez de nouveaux utilisateurs sur votre Raspberry Pi.
Mais pour ceux qui existent déjà, vous devez le faire manuellement.
Par exemple, vous devez exécuter ces commandes pour votre utilisateur actuel :sudo cp -r /etc/skel/Maildir /home/$USER/
sudo chown -R $USER:$USER /home/$USER/Maildir
sudo chmod -R 700 /home/$USER/Maildir
Test
Vous pouvez maintenant répéter le même type de test qu’avant, mais mettez l’utilisateur pi comme destinataire :echo "Test" | mail -s "Test" $
Et ensuite, vérifiez que l’e-mail est arrivé dans le dossier Maildir :
pi@raspberrypi:~ $ cat /home/$USER/Maildir/new/1625109614.Vb302I205f1M127492.raspberrypi
Return-Path:
X-Original-To:
Delivered-To:
Received: by rpi.tips (Postfix, from userid 1000)
id 1CC5A205F2; Thu, 1 Jul 2021 04:20:14 +0100 (BST)
Subject: Test mail command
To:
X-Mailer: mail (GNU Mailutils 3.5)
Message-Id:
Date: Thu, 1 Jul 2021 04:20:14 +0100 (BST)
From: pi@raspberrypi
Test
Ceci est un exemple parmi tant d’autres, votre fichier ne sera pas nommé de cette façon.
Vous devriez avoir seulement un e-mail dans le dossier new, utilisez la complétion automatique par tabulation pour le trouver.
Comme vous pouvez le voir, l’adresse de retour n’est pas correcte, vous devez changer votre nom d’hôte pour corriger cela :sudo hostname domain.com
Plus de détails ici sur comment changer le nom d’hôte sur un Raspberry Pi (il y a plus à savoir).
Je vous conseille aussi : Votre Pi est-il vraiment sécurisé ? Voici 17 conseils simples
Mais nous avons atteint notre objectif pour cette étape.
Nous avons reçu des e-mails envoyés à notre domaine.
Sécuriser le serveur e-mail
Comme je l’ai dit au début, il existe des options à mettre en place pour sécuriser au minimum le serveur web.
- Éditez votre fichier de configuration :
sudo nano /etc/postfix/main.cf - Ajoutez ces lignes à la fin du fichier :
smtpd_helo_restrictions =
permit_mynetworks =
permit_sasl_authenticated =
reject_invalid_helo_hostname =
reject_non_fqdn_helo_hostname =
reject_unknown_helo_hostname =
check_helo_access =
hash:/etc/postfix/helo_access =
- Cette configuration limitera l’utilisation de SMTP au réseau local et rejettera les personnes affirmant qu’elles proviennent de votre nom de domaine.
- Créez le fichier helo_access :
sudo nano /etc/postfix/helo_accessDans ce fichier, nous devons mettre la liste des noms de domaine que nous voulons bloquer. - Collez ces lignes à l’intérieur :
X.X.X.X REJECT
domain.com REJECT
smtp.domain.com REJECT
mail.domain.com REJECT
Remplacez X.X.X.X par votre adresse IP publique. - Redémarrer le démon postfix :
sudo service postfix restart
Avoir un ensemble de bonnes pratiques en place pour améliorer la sécurité globale du Raspberry Pi est également une bonne idée, surtout si vous utilisez ce serveur pour des e-mails importants.
Vous pouvez lire mes 17 conseils de sécurité pour Raspberry Pi ici, et je recommande également de configurer un système de sauvegarde, comme expliqué dans cet article.
Installer Dovecot pour permettre les connexions POP et IMAP
Nous avons maintenant un serveur de messagerie fonctionnel et sécurisé.
Nous allons donc passer à la partie suivante, qui consiste à rendre ce serveur de messagerie accessible aux clients POP et IMAP via l’authentification SASL.
Comme vous l’avez peut-être remarqué, nous avons déjà installé Dovecot à l’étape précédente pour créer des dossiers Maildir.
Il ne reste plus qu’à finaliser la configuration.
Configuration
- Ouvrez le fichier de configuration de Dovecot :
sudo nano /etc/dovecot/dovecot.conf - Supprimez la prise en charge de l’IPV6 :
- Remplacez :
#listen = *, :: - Par :
listen = *
- Remplacez :
- Ouvrez le fichier de configuration mail de Dovecot :
sudo nano /etc/dovecot/conf.d/10-mail.conf - Modifiez le dossier Maildir :
- Remplacer :
mail_location = mbox:~/mail:INBOX=/var/mail/%u - Par :
mail_location = maildir:~/Maildir
- Remplacer :
- Ouvrez le fichier de configuration master de Dovecot :
sudo nano /etc/dovecot/conf.d/10-master.conf - Indiquez à Dovecot d’écouter pour l’authentification SASL :
- Commentez toutes les lignes du paragraphe service auth par défaut (ajouter # avant chaque ligne).
- Ajoutez ces lignes à la fin du fichier :
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
- Ouvrez le fichier de configuration d’authentification de Dovecot :
sudo nano /etc/dovecot/conf.d/10-auth.conf - Autorisez l’authentification en texte clair.
- Décommentez et modifiez cette ligne :
#disable_plaintext_auth = yes - De cette manière :
disable_plaintext_auth = no
- Décommentez et modifiez cette ligne :
- Modifiez aussi cette ligne :
auth_mechanisms = plain login - Modifiez le fichier de configuration de Postfix :
sudo nano /etc/postfix/main.cf - Indiquez à Postfix d’utiliser SASL (ajoutez ces lignes) :
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes - Redémarrez Dovecot et Postfix :
sudo systemctl restart postfix
sudo systemctl restart dovecot
Gardez un œil sur les fichiers journaux, et vous pouvez utiliser « sudo service X status » pour vérifier que le service fonctionne correctement. Comme je vous l’ai dit précédemment, une mauvaise configuration peut vite arriver. Mais nous allons faire un autre test maintenant pour nous assurer que tout est bon.

Tests
Pour vérifier que l’authentification SASL fonctionne bien, nous allons créer un utilisateur de test et essayer de se connecter au serveur de messagerie avec celui-ci.
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Création d’utilisateur
Créer un nouvel utilisateur avec un login test et le mot de passe que vous souhaitez :sudo adduser test
Répondez aux questions concernant le mot de passe (et retenez-le). Les autres questions ne sont pas obligatoires (appuyez sur Entrée pour les ignorer).
Obtenir le mot de passe encodé
Nous devons obtenir notre mot de passe au format encodé en base64.
Vous pouvez l’obtenir avec cette commande :printf '\0%s\0%s' '[LOGIN]' '[PASSWORD]' | openssl base64
Remplacez [LOGIN] et [PASSWORD] dans cette commande par ceux que vous avez choisis lors de la commande adduser.
Dans mon cas (test/password), la chaîne affichée est AHRlc3QAcGFzc3dvcmQ=.
Connexion
Nous pouvons maintenant réessayer une connexion avec telnet en spécifiant cette chaîne pour l’identification.
La seule différence est que nous devons utiliser la commande AUTH PLAIN pour nous connecter :telnet localhost 25
ehlo domain.com
AUTH PLAIN [base64_string]
Vous pouvez quitter si vous recevez le message « Authentication successful », ou envoyer un autre e-mail de test comme la première fois si vous avez un doute.
Voici la trace complète :
pi@raspberrypi:~ $ telnet localhost 25 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 domain.com ESMTP Postfix (Raspbian) ehlo domain.com 250-domain.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN AUTH PLAIN AHRlc3QAcGFzc3dvcmQ= 235 2.7.0 Authentication successful mail from: 250 2.1.0 Ok rcpt to: 250 2.1.5 Ok data 354 End data with. Subject: test Test . 250 2.0.0 Ok: queued as 44EAE1FE54 quit 221 2.0.0 Bye
Activer IMAP
Dovecot nous permet de nous connecter avec IMAP (telnet localhost 143).
Mais nous devons maintenant activer TLS pour IMAP sur le port 993.
À lire aussi : Marre de Raspberry Pi OS ? Teste ces systèmes super cool.
- Éditez le fichier de configuration principal de Dovecot :
sudo nano /etc/dovecot/conf.d/10-master.conf - Activez l’écoute sur le port 993 :
La configuration devrait ressembler à cela (il y a quelques lignes à décommenter) :service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
} - Ensuite, éditez le fichier de configuration SSL :
sudo nano /etc/dovecot/conf.d/10-ssl.conf - Assurez-vous que SSL est activé au début du fichier :
ssl = yes - Les emplacements des certificats doivent également être décommentés :
ssl_cert = </etc/dovecot/private/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.key - Enfin, redémarrez le serveur Dovecot :
sudo systemctl restart dovecot
Vous pouvez maintenant vérifier que votre serveur IMAPS fonctionne, avec cette commande :openssl s_client -connect localhost:993
La syntaxe de connexion est : a login [LOGIN] [PASSWORD]
La trace complète devrait ressembler à ceci :
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready. a login pi password a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE] Logged in b select inbox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 3 EXISTS * 0 RECENT * OK [UNSEEN 1] First unseen. * OK [UIDVALIDITY 1536038369] UIDs valid * OK [UIDNEXT 4] Predicted next UID b OK [READ-WRITE] Select completed (0.000 + 0.000 secs). b logout * BYE Logging out b OK Logout completed (0.000 + 0.000 secs). closed
Vous pouvez maintenant vous connecter à votre serveur IMAP depuis n’importe quel client sur le LAN.
Si vous souhaitez accéder à votre serveur de n’importe où, n’oubliez pas d’ouvrir les ports nécessaires dans le pare-feu de votre routeur.
Article lié : Installing OpenSSL on Ubuntu/Linux: A step-by-step guide (en anglais)
Configurer Roundcube pour ajouter un accès Webmail
La plupart du travail est fait, mais nous allons pousser un peu plus et ajouter un serveur Webmail à notre serveur de messagerie sur Raspberry Pi.
Roundcube est un logiciel webmail moderne, gratuit et open-source.
Le grand avantage de Roundcube par rapport à d’autres webmails est qu’il est disponible directement dans les dépôts Debian et donc Raspberry Pi OS.
Je vous conseille aussi : Faites ça pour une sauvegarde complète de votre Raspberry Pi
Si vous êtes parti d’un Raspberry Pi OS vierge, vous devrez d’abord installer un serveur MySQL (MariaDB).
Serveur MySQL
Si vous n’en avez pas encore, vous devez installer un serveur MySQL pour stocker la base de données Roundcube :sudo apt install mariadb-server
Ensuite, vous devez suivre ces étapes pour définir un mot de passe root et créer un utilisateur Roundcube :
- Initialisez le serveur MySQL en configurant un mot de passe root :
sudo mysql_secure_installation
Vous pouvez conserver toutes les valeurs par défaut (appuyez sur Entrée à chaque question), il suffit d’entrer un nouveau mot de passe pour « root » (l’administrateur). - Connectez-vous avec root (nous avons besoin de sudo car seul root dispose de l’accès) :
sudo mysql -uroot -p
Entrez le mot de passe que vous venez de définir pour vous connecter. - Créez un nouvel utilisateur pour Roundcube :
CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'password';
Remplacez « password » par le mot de passe que vous avez choisi. - Créez la base de données Roundcube.
CREATE DATABASE roundcubemail; - Donnez tous les privilèges à l’utilisateur Roundcube sur la base de données Roundcube :
GRANT ALL PRIVILEGES ON roundcubemail.* to 'roundcube'@'localhost'; - Quittez la console MySQL :
FLUSH PRIVILEGES;
quit
Votre serveur de base de données est prêt, passez à l’étape suivante.
Roundcube
Pour l’installer, entrez la commande suivante :sudo apt install roundcube roundcube-plugins
Cela installera également automatiquement toutes les autres dépendances (principalement Apache, PHP, et le client MySQL).
Encore une fois, l’assistant d’installation vous posera ces questions concernant votre serveur MySQL :
- Configurer la base de données avec dbconfig-common ? Oui.
- Mot de passe de l’application MySQL pour Roundcube : Votre mot de passe utilisateur Roundcube.
- Mot de passe administrateur de la base de données : votre mot de passe root MySQL.
Remarque : J'ai eu une erreur de connexion à cette étape, mais en choisissant "retry" j'ai pu modifier tous les paramètres, y compris le nom de la base de données, et tout était correct après cela.
Modifiez maintenant la configuration apache pour Roundcube afin d’activer l’application web :sudo nano /etc/apache2/conf-enabled/roundcube.conf
Décommentez la première ligne :Alias /roundcube /var/lib/roundcube
Ensuite, redémarrez votre serveur web :sudo systemctl restart apache2Et allez sur http://[RASPBERRY-IP]/roundcube pour ouvrir l’interface web.

Si vous rencontrez une erreur, vous pouvez redémarrer l’assistant d’installation avec cette commande :sudo dpkg-reconfigure roundcube-core
Il vous donnera également la possibilité de définir un serveur par défaut si vous le souhaitez.
Vous pouvez maintenant vous connecter avec vos identifiants créés à l’étape précédente.
Profitez de votre webmail maintenant, et n’oubliez pas qu’il est possible d’ajouter de nombreux plugins sur RoundCube pour étendre ses fonctionnalités.
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Vous comprenez l'anglais et en voulez encore plus ? Je publie une nouvelle leçon chaque mois, réservée à mes abonnés premium. Rejoignez la communauté dès maintenant pour y avoir accès !
Résumé des journaux et fichiers de configuration
Nous avons donc vu comment configurer un serveur e-mail complet sur Raspberry Pi.
Si vous avez rencontré des erreurs ou souhaitez aller plus loin, voici le résumé des emplacements des fichiers.
À lire ensuite : Peut-on vraiment bosser avec un Raspberry Pi 5 ? Mon test
Postfix
Dans ce tutoriel, nous utilisons Postfix pour envoyer et recevoir des e-mails, c’est le cœur du serveur e-mail.
Configuration
- /etc/postfix/main.cf: Configuration principale pour Postfix.
- /etc/postfix/master.cf : Configuration des processus pour Postfix.
Fichiers de log
journalctl -u
Vous pouvez voir ici toutes les traces des e-mails, et les erreurs s’il y en a.
Dovecot
Nous avons installé Dovecot pour gérer les connexions IMAP avec une couche de sécurité SASL.
Configuration
- /etc/dovecot/dovecot.conf: La configuration principale de Dovecot.
- /etc/dovecot/conf.d/: Ce sous-dossier contient plusieurs fichiers avec chaque partie de la configuration pour savoir facilement où est l’option que vous cherchez.
Fichiers de log
journalctl -u dovecot
Dovecot n’a pas de fichier journal spécifique, il utilise le fichier syslog principal.
Apache
Apache est utilisé dans ce tutoriel pour exécuter Roundcube.
Normalement, vous ne devriez rien avoir à changer, sauf si Roundcube n’est pas accessible du tout.
Voir aussi : 15 projets faciles pour débuter avec un Raspberry Pi
Configuration
- /etc/apache2/apache2.conf : Le fichier de configuration principal pour apache2.
- /etc/apache2/conf-enabled/ : Vous trouverez ici la configuration pour certains services Apache (comme Roundcube.conf).
- /etc/apache2/sites-enabled/ : Vous trouverez ici la configuration pour tout site web Apache.
Fichiers journaux
- /var/log/apache/error.log
Si vous rencontrez des erreurs avec Apache, vous pouvez les trouver ici.
Roundcube
Et enfin, nous avons installé Roundcube pour ajouter un webmail à notre serveur de messagerie.
Configuration
- /etc/roundcube/config.inc.php : Voici le fichier de configuration principal pour Roundcube.
Fichiers de log
- /var/log/roundcube/errors
En cas de problème avec Roundcube, vous trouverez les erreurs dans ce fichier.
Et nous voilà à la fin de ce tutoriel.
Vous avez appris à configurer un serveur de messagerie complet avec :
- Postfix pour le transport.
- Dovecot pour l’authentification sécurisée.
- Roundcube pour un accès web à vos emails.
Comme vous l’avez peut-être remarqué, ce n’est pas simple à configurer. Il y a beaucoup d’options de configuration, et cela peut représenter beaucoup de travail à mettre en place chez soi.
À lire aussi : 25 idées de projets à réaliser chez vous avec Raspberry Pi
Je pense que dans la plupart des cas, la première partie avec Postfix est celle qui vous intéressera.
Vous allez pouvoir envoyer des e-mails depuis vos différents projets, mais pas nécessairement configurer toutes les autres étapes.
Dans tous les cas, si vous avez vraiment besoin de tout installer, vous savez comment faire.
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Ressources supplémentaires pour votre Raspberry Pi
Initiation au Raspberry Pi en vidéo
Si vous débutez et voulez passer rapidement à la vitesse supérieure, j’ai exactement ce qu’il vous faut.
Regardez ma formation vidéo qui vous aidera à démarrer du bon bien, choisir votre matériel, installer les meilleures applications et vous lancer directement dans vos premiers projets avec mon aide.
Regarder les vidéos dès maintenant
Maîtrisez votre Raspberry Pi en 30 jours
Vous avez besoin de plus ? Si vous êtes à la recherche des meilleures astuces pour devenir expert sur Raspberry Pi, ce livre est fait pour vous. Développez vos compétences sous Linux et pratiquez via de nombreux projets en suivant mes guides étape par étape. 10% de remise aujourd’hui !
Télécharger le livre au format PDF ici
Maîtrisez Python sur Raspberry Pi
Pas besoin d’être un génie pour coder quelques lignes pour votre Raspberry Pi.
Je vous apprends juste ce qu’il faut sur Python afin de réaliser n’importe quel projet. La seconde partie du livre est d’ailleurs consacrée à des exemples de projets où je vous guide pas à pas.
Ne perdez pas de temps, apprenez le strict nécessaire et économisez 10% avec ce lien :
Télécharger maintenant
Autres ressources pour profiter de votre Raspberry Pi
J’ai regroupé toutes mes recommandations de logiciels, sites utiles et de matériel sur cette page de ressources. Je vous invite à la consulter régulièrement pour faire les bons choix et rester à jour.
Visiter les pages ressources

Bonjour, et merci pour ce tuto très bien détaillé. Malheureusement je ne suis pas très féru en informatique et j’ai un mauvais résultat du serveur Postfix:
« Trying ::1…
Connection failed: Connexion refusée
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 ********.com ESMTP Postfix (Debian/GNU)
ehlo mail from: ******@********.com rcpt to: data subject: test Test . quit
250-moulins58.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
421 4.4.2 *******.com Error: timeout exceeded
Connection closed by foreign host.
Ou ai-je fais l’erreur? Merci si vous pouviez me donner la solution.
Bonjour,
À première vue, je dirais que les commandes ont été tapées sur la même ligne, alors qu’il faut utiliser la touche « Entrée » après chaque commande :
ehlo domaine.com
mail from: xxx
rcpt to: yyy
etc.
Bonjour,
Merci pour cet article, qui constitue une très bonne base pour comprendre la mise en place d’un serveur mail sur Raspberry Pi.
En revanche, il me semble qu’il manque une partie essentielle, qui est souvent la plus complexe dans ce type de projet : la gestion de la délivrabilité et de la réputation du serveur mail.
En pratique, ce n’est pas tant l’installation de Postfix ou Dovecot qui pose problème, mais plutôt tout ce qui permet d’éviter que les emails soient considérés comme du spam ou rejetés par les serveurs distants. Cela inclut notamment :
la mise en place de SPF, DKIM et DMARC,
la configuration correcte du reverse DNS (PTR),
la gestion de l’IP (souvent problématique avec des connexions résidentielles),
et plus globalement la construction d’une réputation de domaine/IP.
Ces aspects sont souvent les plus longs à comprendre et à configurer, et conditionnent directement le bon fonctionnement réel du serveur.
Peut-être qu’un complément ou un second article dédié à ces sujets serait très utile pour aller au bout de la démarche.
Encore merci pour le partage !
Bonjour,
J’utilise une configuration similaire depuis une dizaine d’années.
Il faut souligner un point important, dans un certain nombre de pays, les fournisseurs d’accès bloquent le port 25 chez les particuliers, et refusent de les ouvrir, soi-disant pour la sécurité.
La réception est donc bien plus ardue, à moins d’établir un relais externe vers un autre port que tcp/25, ou devoir passer à un abonnement pro, bien plus cher évidemment