Postfix minimal pour envoi de message uniquement
Postfix est un agent de transfert de courrier (MTA), une application utilisée pour envoyer et recevoir des e-mails. On va configurer Postfix afin qu’il puisse être utilisé pour envoyer des notifications par e-mail uniquement par les applications locales installées sur le même serveur que Postfix.
Prérequis
Vérifier si le domaine du serveur n’est pas blacklisté
https://mxtoolbox.com/blacklists.aspx
Postfix SMTP
Conditions préalables
- Un serveur Debian fonctionnel avec un utilisateur non root avec les privilèges sudo.
- Un nom de domaine valide qui pointe vers le serveur.
Le nom d’hôte de votre serveur doit correspondre à votre domaine ou sous-domaine. Vous pouvez vérifier le nom d’hôte du serveur en tapant hostname -fqdn à l’invite de commande. La sortie doit correspondre au nom que vous avez donné au serveur lors de sa création.
Installation de Postfix
Mise à jour dépôts et installation
1
2
sudo apt update
sudo apt install --no-install-recommends postfix
Installer mail (paquet bsd-mailx) ,gérer les mails en ligne de commande directement
1
sudo apt install bsd-mailx
Configuration de Postfix
Les fichiers de configuration utilisés par Postfix se situent dans /etc/postfix
- Le fichier
master.cfgère la configuration du démonmasterde Postfix. Dans la plupart des configurations de base, on n’aura pas à intervenir sur ce fichier. - Le fichier
main.cfcontient les paramètres de contrôle des démons de Postfix. C’est celui que l’on modifiera le plus souvent.
Choix No configuration lors de l’installation, il existe un fichier main.cf.proto pour servir de base à une configuration personnalisée.
Le fichier /etc/postfix/main.cf.proto est une copie exacte du fichier /usr/share/postfix/main.cf.debian.
Le fichier /usr/share/postfix/main.cf.dist détaille les directives de configuration de Postfix.
Si un paramètre n’est pas présent dans main.cf, Postfix utilisera sa valeur par défaut. Pour la plupart, ces valeurs sont définies en dur dans le code source de Postfix, tandis que certaines sont initialisées à la compilation et quelques-unes au moment du lancement du programme.
Configuration /etc/postfix/main.cf pour envoyer des e-mails depuis une machine publique domaine ouestline.xyz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# /etc/postfix/main.cf
#
# Minimal Postfix configuration for Internet-facing servers
# Disable backwards compatibility
compatibility_level = 3.10
# Dedicated Postfix user
mail_owner = postfix
# Disable IPv6
inet_protocols = ipv4
# Outbound mail only
inet_interfaces = localhost
mailbox_size_limit = 0
# Host
myhostname = ouestline.xyz
# Domain
mydomain = ouestline.xyz
# Authorize local machine only
mynetworks = 127.0.0.1/32
# Local aliasing
alias_maps = hash:/etc/aliases
# Debugging (facultatif)
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
Explications
- Si IPv6 est désactivé au niveau du système, il faudra également le faire ici grâce à la directive
inet_protocols. inet_interfaces = localhostlimite l’utilisation de Postfix aux applications locales.myhostnameest censé contenir le nom d’hôte pleinement qualifié du serveur, c’est-à-dire le résultat de la commandehostname --fqdn.mynetworksdéfinit les adresses depuis lesquelles Postfix accepte les mails sans authentification via SMTP.alias_mapsdéfinit l’emplacement de la table de correspondance. Certaines informations ne peuvent pas être facilement représentées dansmain.cf. Les tables de correspondance permettent de les stocker dans des fichiers externes. Postfix n’utilise pas directement les fichiers texte, ce serait trop lent. Au lieu de cela, les tables de correspondance de type hash (ou « tables de hachage ») servent pour construire des fichiers indexés, grâce à la bibliothèque Berkeley DB. Le programmepostmapest utilisé pour construire les fichiers indexés. Pour mettre à jour les alias, on utilisera la commandenewaliases.
Le programme postconf est très utile pour examiner les valeurs courantes et par défaut du fichier main.cf. Pour afficher la valeurs de certains paramètres de configuration, il suffit de les fournir en argument
1
2
$ sudo postconf inet_interfaces
inet_interfaces = localhost`
L’option -d affichera la valeur par défaut des paramètres demandés
1
2
$ sudo postconf -d inet_interfaces
inet_interfaces = all`
Tester, si besoin, chacune des directives de main.cf avec postconf
1
2
3
4
$ sudo postconf inet_protocols
inet_protocols = ipv4
$ sudo postconf -d inet_protocols
inet_protocols = all
Créez la table de correspondance /etc/aliases
1
2
3
# /etc/aliases
postmaster: root
root: vpn@cinay.eu
Construire le fichier indexé
1
sudo newaliases`
Cette commande va créer un fichier /etc/aliases.db exploitable par Postfix
Lancer et tester Postfix
Le service postfix est activé dans la configuration par défaut.
redémarrer Postfix.
1
sudo systemctl restart postfix
Tester si Postfix peut envoyer des e-mails à un compte de messagerie externe à l’aide de la commande mail
Pour envoyer un e-mail de test, saisissez :
1
echo "Test envoi via postfix smtp" | mail -s "serveur debian" votre_adresse_mail
Lorsque vous effectuez vos propres tests, vous pouvez utiliser le corps et le texte de la ligne d’objet tels quels ou les modifier à votre guise. Cependant, à la place de votre_adresse_mail, utilisez une adresse e-mail valide. Le domaine peut être gmail.com, fastmail.com, yahoo.comou tout autre fournisseur de services de messagerie que vous utilisez.
Maintenant, vérifiez l’adresse électronique à laquelle vous avez envoyé ce message. Vous devriez voir le message dans votre boîte de réception.



