Une version précédente de ce tutoriel a été rédigée par Justin Ellingwood
Postfix est un Mail Transfer Agent (Agent de transfert de courrier électronique - MTA) open-source populaire qui peut être utilisé pour acheminer et distribuer le courrier électronique sur un système Linux. On estime qu’environ 25 % des serveurs de courrier électronique publics sur Internet fonctionnent avec Postfix.
Dans ce guide, vous allez apprendre à installer et configurer Postfix sur un serveur Ubuntu 20.04. Ensuite, vous vérifierez que Postfix est capable d’acheminer correctement le courrier électronique en installant s-nail
, un Mail User Agent (Agent utilisateur de courrier électronique - MUA), également connu sous le nom de client de messagerie électronique.
Veuillez noter que l’objectif de ce tutoriel est de vous aider à rendre Postfix rapidement opérationnel avec seulement quelques fonctionnalités de courrier électronique. Vous n’aurez pas de serveur de messagerie électronique complet à la fin de ce guide, mais vous disposerez de certains des éléments fondamentaux d’une telle installation pour vous aider à démarrer.
Pour suivre ce guide, vous aurez besoin des éléments suivants :
sudo
et un pare-feu configuré avec UFW. Vous pouvez suivre notre guide de configuration initiale du serveur Ubuntu 20.04 pour le mettre en place.Notez que ce tutoriel suppose que vous configurez un hôte qui a le FQDN de mail.example.com
. Si nécessaire, veillez à changer example.com
ou mail.example.com
pour refléter votre propre FQDN.
Postfix est inclus dans les référentiels par défaut d’Ubuntu, vous pouvez donc l’installer avec APT.
Pour commencer, mettez à jour votre cache de paquets apt
:
- sudo apt update
Ensuite, installez le package postfix
avec la commande suivante. Remarquez que nous passons ici la variable environnementale DEBIAN_PRIORITY=low
dans cette commande d’installation. Le processus d’installation vous demandera alors de configurer certaines options supplémentaires :
- sudo DEBIAN_PRIORITY=low apt install postfix
Ce processus d’installation ouvrira une série d’invites interactives. Pour les besoins de ce tutoriel, utilisez les informations suivantes pour remplir vos invites :
mail.example.com
. Vous voudrez probablement définir le system mail name (nom de courrier du système) comme suit : example.com
afin que, compte tenu du nom d’utilisateur user1
, Postfix utilise l’adresse user1@example.com
.root@
et postmaster@
. Utilisez pour cela votre compte principal. Dans le cas présent, il s’agit de sammy.0
, on désactive toute restriction de taille.+
, sera utilisée pour les besoins de ce tutoriel.Pour être explicite, voici les paramètres utilisés dans ce guide :
example.com
(pas mail.example.com
)$myhostname, example.com, mail.example.com, localhost.example.com, localhost
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
0
+
Note : Si vous avez besoin de modifier ces paramètres ultérieurement, vous pourrez le faire en tapant :
- sudo dpkg-reconfigure postfix
Les invites seront pré-remplies avec vos réponses précédentes.
Lorsque le processus d’installation est terminé, vous êtes prêt à effectuer quelques mises à jour de votre configuration Postfix.
Vous pouvez maintenant ajuster certains paramètres que le processus d’installation du package ne vous a pas demandés. De nombreux paramètres de configuration de Postfix sont définis dans le fichier /etc/postfix/main.cf
. Plutôt que de modifier directement ce fichier, vous pouvez utiliser la commande postconf
de Postfix pour interroger ou définir les paramètres de configuration.
Pour commencer, définissez l’emplacement de la messagerie de votre non-root user Ubuntu. Dans ce guide, nous utiliserons le format Maildir qui sépare les messages en fichiers individuels ; ceux-ci sont ensuite déplacés entre les répertoires en fonction de l’action de l’utilisateur. L’autre option (qui n’est pas couverte par ce guide) est le format mbox, qui stocke tous les messages dans un seul fichier.
Définissez la variable home_mailbox
sur Maildir/
. Plus tard, vous créerez une structure de répertoires sous ce nom dans le répertoire principal de votre utilisateur. Configurez home_mailbox
en tapant :
- sudo postconf -e 'home_mailbox= Maildir/'
Ensuite, fixez l’emplacement de virtual_alias_maps
,qui met en correspondance des comptes de courrier électronique arbitraires avec des comptes du système Linux. Exécutez la commande suivante, qui associe l’emplacement du tableau à un fichier de base de données de hachage nommé /etc/postfix/virtual
:
- sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
Maintenant que vous avez défini l’emplacement du fichier de cartes virtuelles dans votre fichier main.cf
vous pouvez créer le fichier lui-même et commencer à associer les comptes de courrier électronique aux comptes d’utilisateurs sur votre système Linux. Créez le fichier avec votre éditeur de texte préféré ; dans cet exemple, nous utiliserons nano
:
- sudo nano /etc/postfix/virtual
Indiquez les adresses pour lesquelles vous souhaitez accepter le courrier électronique, suivies d’un espace et de l’utilisateur Linux auquel vous souhaitez que le courrier soit distribué.
Par exemple, si vous souhaitez accepter un courrier électronique à contact@example.com
et admin@example.com
et que vous aimeriez que ces courriels soient transmis à l’utilisateur Linux sammy , vous pouvez configurer votre fichier comme suit :
contact@example.com sammy
admin@example.com sammy
Une fois que vous avez mis en correspondance toutes les adresses avec les comptes de serveur appropriés, enregistrez et fermez le fichier. Si vous avez utilisé nano
, faites-le en appuyant sur CTRL+X
, Y
, puis sur ENTER
.
Appliquez la cartographie en tapant :
- sudo postmap /etc/postfix/virtual
Relancez le processus Postfix pour vous assurer que tous vos changements ont été appliqués :
- sudo systemctl restart postfix
En supposant que vous ayez suivi le guide prérequis de configuration initiale du serveur, vous aurez configuré un pare-feu avec UFW. Ce pare-feu bloquera par défaut les connexions externes aux services de votre serveur, sauf si ces connexions sont explicitement autorisées. Vous devrez donc ajouter une règle de pare-feu si vous souhaitez autoriser une exception pour Postfix.
Vous pouvez autoriser les connexions au service en tapant :
- sudo ufw allow Postfix
Avec cela, Postfix est configuré et prêt à accepter des connexions externes. Cependant, vous n’êtes pas encore prêt à le tester avec un client de messagerie. Avant de pouvoir installer un client et l’utiliser pour interagir avec le courrier livré à votre serveur, vous devrez apporter quelques modifications à la configuration de votre serveur Ubuntu.
Afin d’interagir avec le courrier distribué, cette étape vous guidera à travers le processus d’installation du package snail
. Ceci est une variante riche en fonctionnalités du client BSD xmail
qui peut gérer correctement le format Maildir.
Toutefois, avant d’installer le client, il serait prudent de s’assurer que votre variable d’environnement MAIL
est correctement définie. s-nail
va rechercher cette variable pour savoir où trouver le courrier pour votre utilisateur.
Pour s’assurer que la variable MAIL
est définie quelle que soit la manière dont vous accédez à votre compte - que ce soit par ssh
, su
, su -
, ou sudo
, par exemple, vous devrez définir la variable dans le fichier /etc/bash.bashrc
et l’ajouter à un fichier dans /etc/profile.d
afin de vérifier qu’il est configuré par défaut pour tous les utilisateurs.
Pour ajouter la variable à ces fichiers, tapez :
- echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
Pour lire la variable dans votre session actuelle, vous devez vous procurer le fichier /etc/profile.d/mail.sh
:
- source /etc/profile.d/mail.sh
Une fois cette opération terminée, installez le client s-nail
de messagerie avec APT :
- sudo apt install s-nail
Avant de lancer le client, il y a quelques paramètres que vous devez ajuster. Ouvrez le fichier /etc/s-nail.rc
dans votre éditeur :
- sudo nano /etc/s-nail.rc
Au bas du fichier, ajoutez les options suivantes :
. . .
set emptystart
set folder=Maildir
set record=+sent
Voici ce que font ces lignes :
set emptystart
: permet au client de s’ouvrir même avec une boîte de réception videset folder=Maildir
: définit le répertoire Maildir
sur la variable interne de folder
set record=+sent
crée un fichier mbox sent
pour stocker le courrier envoyé dans n’importe quel répertoire défini comme variable de folder
, dans ce cas Maildir
Enregistrez et fermez le fichier lorsque vous avez terminé. Vous êtes maintenant prêt à initialiser la structure Maildir de votre système.
Un moyen rapide de créer la structure Maildir dans votre répertoire personnel consiste à de vous envoyer un courriel avec la commande s-nail
. Comme le fichier sent
ne sera disponible qu’une fois le Maildir créé, vous devez désactiver l’écriture dans ce mail initial. Faites-le en passant l’option -Snorecord
.
Envoyez le courriel en envoyant une chaîne de caractères à la commande s-nail
. Ajustez la commande pour marquer votre utilisateur Linux comme destinataire :
- echo 'init' | s-nail -s 'init' -Snorecord sammy
Note : Vous pouvez obtenir la réponse suivante :
OutputCan't canonicalize "/home/sammy/Maildir"
Ceci est normal et ne peut apparaître que lors de l’envoi de ce premier message.
Vous pouvez vérifier que le répertoire a été créé en recherchant votre~répertoire ~/Maildir
:
- ls -R ~/Maildir
Vous verrez que la structure de répertoires a été créée et qu’un nouveau fichier de message se trouve dans le répertoire ~/Maildir/new
:
Output/home/sammy/Maildir/:
cur new tmp
/home/sammy/Maildir/cur:
/home/sammy/Maildir/new:
1463177269.Vfd01I40e4dM691221.mail.example.com
/home/sammy/Maildir/tmp:
Maintenant que la structure de répertoires a été créée, vous êtes prêt à tester le client s-nail
en visualisant le message init
que vous avez envoyé et en envoyant un message à une adresse électronique externe.
Pour ouvrir le client, lancez la commande s-nail
:
- s-nail
Sur votre console, vous verrez une boîte de réception rudimentaire avec le message init
en attente :
Outputs-nail version v14.9.15. Type `?' for help
"/home/sammy/Maildir": 1 message 1 new
>N 1 sammy@example.com 2020-05-19 15:40 14/392 init
Appuyez sur ENTER
pour afficher le message :
Output[-- Message 1 -- 14 lines, 369 bytes --]:
From sammy@example.com Tue May 19 15:40:48 2020
Date: Tue, 19 May 2020 15:40:48 +0000
To: sammy@example.com
Subject: init
Message-Id: <20160513220749.A278F228D9@mail.example.com>
From: sammy@example.com
init
Vous pouvez revenir à la liste des messages en tapant h
, puis sur ENTER
:
- h
Output>R 1 sammy@example.com 2020-05-19 15:40 14/392 init
Remarquez que le message a maintenant un état R
, indiquant qu’il a été lu.
Ce message n’étant pas très utile, vous pouvez le supprimer en appuyant sur d
, puis sur ENTER
:
- d
Pour revenir au terminal, tapez q
et ensuite ENTER
:
- q
En guise de test final, vérifiez si s-nail
est capable d’envoyer correctement des messages électroniques. Pour ce faire, vous pouvez introduire le contenu d’un fichier texte dans le processus s-nail
, comme vous l’avez fait avec le message init
que vous avez envoyé à l’étape précédente.
Commencez par écrire un message test dans un éditeur de texte :
- nano ~/test_message
À l’intérieur, entrez un texte que vous souhaitez envoyer :
Hello,
This is a test. Please confirm receipt!
Enregistrez et fermez le fichier après avoir écrit votre message.
Ensuite, utilisez la commande cat
pour transmettre le message au processus s-nail
. Vous pouvez le faire avec l’exemple suivant, qui utilise ces options :
-s
: Ceci définit l’objet du courriel-r
: Une modification facultative du champ « De : » du courriel. Par défaut, l’utilisateur Linux avec lequel vous êtes connecté sera utilisé pour remplir ce champ. L’option -r
vous permet de remplacer cette adresse par une adresse valide, telle que celle que vous avez définie dans le fichier /etc/postfix/virtual
. À titre d’exemple, la commande suivante utilise contact@example.com
Veillez également à remplacer user@email.com
par une adresse électronique valide à laquelle vous avez accès :
- cat ~/test_message | s-nail -s 'Test email subject line' -r contact@example.com user@email.com
Ensuite, naviguez jusqu’à la boîte de réception de l’adresse électronique à laquelle vous avez envoyé le message. Vous y verrez presque immédiatement votre message en attente.
Note : Si le message n’est pas dans votre boîte de réception, il a peut-être été acheminé vers votre dossier d’indésirables.
Vous pouvez consulter vos messages envoyés dans votre client s-nail
. Relancez le client interactif :
- s-nail
Depuis le client de messagerie, visualisez vos messages envoyés en tapant :
- file +sent
Vous verrez une sortie de ce type :
Output+[/home/sammy/Maildir/]sent: 1 message 1 new
▸N 1 contact@example.com 2020-05-19 15:47 12/297 Test email subject line
Vous pouvez gérer le courrier envoyé en utilisant les mêmes commandes que celles que vous utilisez pour le courrier entrant.
Vous avez maintenant configuré Postfix sur votre serveur Ubuntu 20.04. La gestion des serveurs de courrier électronique peut être une tâche difficile pour les nouveaux administrateurs système, mais avec cette configuration, vous devriez disposer de suffisamment de fonctionnalités de courrier électronique MTA pour vous lancer.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!