Introduction
Postfix est un populaire Agent de Transfert de Courrier (MTA) open source qui peut être utilisé pour router et livrer des e-mails sur un système Linux. On estime qu’environ 25 % des serveurs de messagerie publics sur Internet utilisent Postfix.
Dans ce guide, vous apprendrez comment installer et configurer Postfix sur un serveur Ubuntu 22.04. Ensuite, vous testerez si Postfix est capable de router correctement les e-mails en installant s-nail
, un Agent Utilisateur de Messagerie (MUA), également connu sous le nom de client e-mail.
Notez que l’objectif de ce tutoriel est de vous aider à mettre en place Postfix rapidement avec seulement quelques fonctionnalités de base pour les e-mails. Vous n’aurez pas un serveur de messagerie complet à la fin de ce guide, mais vous disposerez de certains composants fondamentaux d’une telle configuration pour vous aider à démarrer.
Prérequis
La configuration et la maintenance de votre propre serveur de messagerie sont compliquées et chronophages. Pour la plupart des utilisateurs, il est plus pratique de plutôt compter sur un service de messagerie payant. Si vous envisagez de mettre en place votre propre serveur de messagerie, nous vous encourageons à consulter cet article sur les raisons pour lesquelles vous pourriez ne pas vouloir le faire.
Si vous êtes sûr de vouloir suivre ce guide pour installer et configurer Postfix, vous devez d’abord disposer des éléments suivants :
- A server running Ubuntu 22.04 to function as your Postfix mail server. This server should have a non-root user with
sudo
privileges and a firewall configured with UFW. You can follow our Ubuntu 22.04 initial server setup guide to set this up. - A Fully Qualified Domain Name pointed at your Ubuntu 22.04 server. You can find help on setting up your domain name with DigitalOcean by following our Domains and DNS Networking documentation. Be aware that if you plan on accessing mail from an external location, you will need to make sure you have an MX record pointing to your mail server as well.
Notez que ce tutoriel suppose que vous configurez un hôte ayant le FQDN de mail.example.com
. Partout où c’est nécessaire, assurez-vous de changer example.com
ou mail.example.com
pour refléter votre propre FQDN.
Étape 1 — Installation de Postfix
Postfix est inclus dans les dépôts par défaut d’Ubuntu, donc vous pouvez l’installer avec APT.
Pour commencer, mettez à jour le cache de paquets local avec apt
:
Ensuite, installez le paquet postfix
avec la commande suivante. Notez qu’ici nous passons la variable d’environnement DEBIAN_PRIORITY=low
dans cette commande d’installation. Cela va provoquer l’ouverture d’une série de prompts interactifs pour configurer quelques options supplémentaires :
Ce processus d’installation ouvrira une série de invites interactives. Pour les besoins de ce tutoriel, utilisez les informations suivantes pour remplir vos invites :
- Type général de configuration du courrier?: Pour cela, choisissez Site Internet car cela correspond à nos besoins en infrastructure.
- Nom de courrier système: Il s’agit du domaine de base utilisé pour construire une adresse e-mail valide lorsque seule la partie du compte de l’adresse est donnée. Par exemple, supposons que le nom d’hôte de votre serveur soit
mail.example.com
. Vous voudrez probablement définir le nom de courrier système surexample.com
afin que, étant donné le nom d’utilisateuruser1
, Postfix utilisera l’adresseuser1@example.com
. - Destinataire du courrier root et postmaster: Il s’agit du compte Linux vers lequel le courrier adressé à
root@
etpostmaster@
sera redirigé. Utilisez votre compte principal pour cela. Dans cet exemple, sammy. - Autres destinations pour accepter le courrier: Cela définit les destinations de courrier que cette instance de Postfix acceptera. Si vous devez ajouter d’autres domaines pour lesquels ce serveur sera responsable de la réception, ajoutez-les ici. Sinon, le paramètre par défaut sera suffisant.
- Forcer les mises à jour synchrones de la file d’attente de courrier?: Étant donné que vous utilisez probablement un système de fichiers journalisé, acceptez Non ici.
- Réseaux locaux: Il s’agit d’une liste des réseaux pour lesquels votre serveur de messagerie est configuré pour relayer les messages. Le paramètre par défaut fonctionnera dans la plupart des cas. Si vous choisissez de le modifier, assurez-vous cependant d’être très restrictif en ce qui concerne la plage de réseau.
- Limite de taille de boîte aux lettres: Cela peut être utilisé pour limiter la taille des messages. Le définir sur
0
désactive toute restriction de taille. - Caractère d’extension d’adresse local: C’est le caractère qui peut être utilisé pour séparer la partie régulière de l’adresse d’une extension (utilisée pour créer des alias dynamiques). Par défaut,
+
fonctionnera pour ce tutoriel. - Protocoles Internet à utiliser: Choisissez si vous souhaitez restreindre la version IP que Postfix prend en charge. Aux fins de ce tutoriel, choisissez tous.
Pour être explicite, voici les paramètres utilisés dans ce guide:
- Type général de configuration de messagerie?: Site Internet
- Nom du système de messagerie:
example.com
(pasmail.example.com
) - Destinataire des courriers root et postmaster: Le nom d’utilisateur de votre compte principal Linux (sammy dans nos exemples)
- Autres destinations pour accepter le courrier:
$myhostname, example.com, mail.example.com, localhost.example.com, localhost
- Forcer les mises à jour synchrones sur la file d’attente de messagerie?: Non
- Réseaux locaux:
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
- Limite de taille de boîte aux lettres:
0
- Caractère d’extension d’adresse local:
+
- Protocoles Internet à utiliser: tous
Note: Si vous avez besoin de revenir ultérieurement pour modifier ces paramètres, vous pouvez le faire en tapant :
Les invites seront préremplies avec vos réponses précédentes.
Lorsque vous êtes invité à redémarrer les services, acceptez les valeurs par défaut et choisissez OK
.
Lorsque le processus d’installation est terminé, vous êtes prêt à apporter quelques mises à jour à votre configuration de Postfix.
Étape 2 — Modification de la configuration de Postfix
Maintenant, vous pouvez ajuster certains paramètres pour lesquels le processus d’installation du paquet ne vous a pas demandé. De nombreux paramètres de configuration de Postfix sont définis dans le fichier /etc/postfix/main.cf
. Au lieu de modifier ce fichier directement, vous pouvez utiliser la commande postconf
de Postfix pour interroger ou définir des paramètres de configuration.
Pour commencer, définissez l’emplacement de la boîte aux lettres de votre utilisateur Ubuntu non root. Dans ce guide, nous utiliserons le format Maildir, qui sépare les messages en fichiers individuels qui sont ensuite déplacés entre des répertoires en fonction de l’action de l’utilisateur. L’option alternative qui n’est pas couverte dans 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 personnel de votre utilisateur. Configurez home_mailbox
en tapant :
Ensuite, définissez l’emplacement de la table virtual_alias_maps
, qui fait correspondre des comptes de messagerie arbitraires à des comptes système Linux. Exécutez la commande suivante, qui associe l’emplacement de la table à un fichier de base de données de hachage nommé /etc/postfix/virtual
:
Maintenant que vous avez défini l’emplacement du fichier de correspondance virtuelle dans votre fichier main.cf
, vous pouvez créer le fichier lui-même et commencer à faire correspondre les comptes de messagerie aux comptes d’utilisateur sur votre système Linux. Créez le fichier avec votre éditeur de texte préféré ; dans cet exemple, nous utiliserons nano
:
Indiquez toutes les adresses pour lesquelles vous souhaitez accepter des e-mails, suivies d’un espace et de l’utilisateur Linux auquel vous souhaitez que ces e-mails soient livrés.
Par exemple, si vous souhaitez accepter des e-mails à l’adresse contact@example.com
et admin@example.com
et souhaitez que ces e-mails soient livrés à l’utilisateur Linux sammy, vous pourriez configurer votre fichier comme ceci :
contact@example.com sammy
admin@example.com sammy
Une fois que vous avez fait correspondre toutes les adresses aux comptes serveur appropriés, enregistrez et fermez le fichier. Si vous avez utilisé nano
, faites ceci en appuyant sur CTRL + X
, Y
, puis ENTER
.
Appliquez la correspondance en tapant :
Redémarrez le processus Postfix pour vous assurer que toutes vos modifications ont été appliquées :
En supposant que vous avez suivi le guide 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 sur votre serveur, sauf si ces connexions sont explicitement autorisées. Vous devrez donc ajouter une règle de pare-feu pour permettre une exception pour Postfix.
Vous pouvez autoriser les connexions vers le service en tapant :
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 les courriers livrés à votre serveur, vous devrez apporter quelques modifications à la configuration de votre serveur Ubuntu.
Étape 3 — Installation du client de messagerie et initialisation de la structure Maildir
Pour interagir avec les courriers livrés, cette étape vous guidera à travers le processus d’installation du paquet s-nail
. Il s’agit d’une variante riche en fonctionnalités du client BSD xmail
qui peut gérer correctement le format Maildir.
Avant d’installer le client, il serait prudent de vous assurer que votre variable d’environnement MAIL
est correctement configurée. s-nail
recherchera cette variable pour savoir où trouver les courriers pour votre utilisateur.
Pour vous assurer que la variable MAIL
est définie quel que soit le mode d’accès à votre compte – que ce soit via 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
pour vous assurer qu’elle est définie pour tous les utilisateurs par défaut.
Pour ajouter la variable à ces fichiers, tapez :
Pour lire la variable dans votre session actuelle, sourcez le fichier /etc/profile.d/mail.sh
:
Avec cela terminé, installez le client de messagerie électronique s-nail
avec APT :
Avant d’exécuter le client, quelques paramètres doivent être ajustés. Ouvrez le fichier /etc/s-nail.rc
dans votre éditeur :
À la fin 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épertoireMaildir
comme variable internefolder
set record=+sent
: crée un fichier mboxsent
pour stocker les mails envoyés dans le répertoire défini comme variablefolder
, dans ce casMaildir
Enregistrez et fermez le fichier lorsque vous avez terminé. Vous êtes maintenant prêt à initialiser la structure Maildir de votre système.
A quick way to create the Maildir structure within your home directory is to send yourself an email with the s-nail
command. Because the sent
file will only be available once the Maildir is created, you should disable writing to it for this initial email. Do this by passing the -Snorecord
option.
Envoyez l’e-mail en envoyant une chaîne à la commande s-nail
. Ajustez la commande pour marquer votre utilisateur Linux comme destinataire :
Remarque : Vous pouvez obtenir la réponse suivante :
OutputCan't canonicalize "/home/sammy/Maildir"
Ceci est normal et peut n’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
:
Vous verrez que la structure du répertoire 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:
1650294586.Vfc01I7e11dM993645.mail.example.com
/home/sammy/Maildir/tmp:
Maintenant que la structure du répertoire 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 e-mail externe.
Étape 4 — Tester le client
Pour ouvrir le client, exécutez la commande s-nail
:
Dans 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 [email protected] 2022-04-18 15:09 14/452 init
Appuyez sur ENTRÉE
pour afficher le message :
Output[-- Message 1 -- 14 lines, 452 bytes --]:
Date: Mon, 18 Apr 2022 15:09:46 +0000
To: [email protected]
Subject: init
Message-Id: <20220418150946.EE6897E11A@@mail.example.com>
From: [email protected]
init
Vous pouvez revenir à la liste des messages en tapant h
, puis ENTRÉE
:
Output>R 1 [email protected] 2022-04-18 15:09 14/452 init
Remarquez que le message a maintenant un état R
, indiquant qu’il a été lu.
Comme ce message n’est pas très utile, vous pouvez le supprimer en appuyant sur d
, puis ENTRÉE
:
Pour revenir au terminal, tapez q
, puis ENTRÉE
:
Comme dernier test, vérifiez si s-nail
est capable d’envoyer correctement des messages électroniques. Pour ce faire, vous pouvez rediriger le contenu d’un fichier texte vers 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 de test dans un éditeur de texte :
À l’intérieur, saisissez le texte que vous souhaitez envoyer :
Hello,
This is a test. Please confirm receipt!
Enregistrez et fermez le fichier après avoir rédigé votre message.
Ensuite, utilisez la commande cat
pour rediriger le message vers le processus s-nail
. Vous pouvez le faire avec l’exemple suivant, qui utilise ces options :
-s
: Cela définit la ligne d’objet du message électronique-r
: Un changement facultatif du champ « De : » du courrier électronique. Par défaut, l’utilisateur Linux avec lequel vous êtes connecté sera utilisé pour remplir ce champ. L’option-r
vous permet de remplacer cela par une adresse valide, comme celles que vous avez définies dans le fichier/etc/postfix/virtual
. Pour illustrer, la commande suivante utilise[email protected]
Assurez-vous également de remplacer utilisateur@email.com
par une adresse e-mail valide à laquelle vous avez accès :
Ensuite, accédez à la boîte de réception de l’adresse e-mail à laquelle vous avez envoyé le message. Vous verrez votre message en attente presque immédiatement.
Remarque : Si le message n’est pas dans votre boîte de réception, il a peut-être été livré dans votre dossier Spam.
Vous pouvez consulter vos messages envoyés dans votre client s-nail
. Lancez à nouveau le client interactif :
À partir du client de messagerie, affichez vos messages envoyés en tapant :
Vous verrez une sortie comme ceci :
Output+[/home/sammy/Maildir/]sent: 1 message 1 new
▸N 1 To [email protected] 2022-04-18 15:12 10/211 Test email subject line
Vous pouvez gérer les e-mails envoyés en utilisant les mêmes commandes que celles utilisées pour les e-mails entrants.
Conclusion
Vous avez maintenant Postfix configuré sur votre serveur Ubuntu 22.04. La gestion des serveurs de messagerie peut être une tâche difficile pour les nouveaux administrateurs système, mais avec cette configuration, vous devriez disposer de suffisamment de fonctionnalités d’e-mail MTA pour commencer.