Envoi de mail avec Postfix

Postif est l’un des MTA (Mail Transfer Agent) les plus populaires, il permet de router et envoyer des mails. Nous allons voir dans cet article comment l’installer sur un serveur Debian et ensuite l’utiliser pour envoyer des mails avec WordPress.

Pré-requis

Si SendMail est installé sur votre serveur, il est conseillé de le désinstaller afin d’éviter les conflits :
sudo apt-get remove sendmail

Installation de Postfix

Exécutez la commande suivante :
sudo apt install postfix

Après la récupération du paquet, la fenêtre de configuration suivante s’affichera.

Sélectionnez Site Internet.

Le nom de courrier correspond à votre nom de domaine (ex: monSiteInternet.com). Il permet au système de construire une adresse email valide quand seul un nom d’utilisateur est utilisé pour l’envoi de mail. Exemple : pour « utilisateur1 », Postfix utilisera l’adresse « utilisateur1@monSiteInternet.com ».

L’installation se termine.

Configurer Postfix pour l’envoi de mail uniquement

Nous allons maintenant voir comment configurer Postfix pour l’envoi de mail uniquement, notre serveur n’étant pas destiné à en recevoir.

Ouvrez le fichier de configuration Postfix :
sudo vi /etc/postfix/main.cf

Recherchez les lignes suivantes :

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Nous allons configurer Postfix afin qu’il n’écoute que sur loopback interface, c’est-à-dire l’interface du réseau virtuel que le serveur utilise pour la communication interne. Pour ce faire, changez la ligne inet_interfaces afin d’obtenir le résultat suivant :

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only

Jetons également un oeil à la ligne « mydestination », qui par défaut ressemble à ceci :

mydestination = $myhostname, monSite.com, localhost.com, , localhost

Si vous souhaitez recevoir les mails sur une adresse correspondant à votre nom de domaine (ex : monSite.com ci-dessus), supprimez votre nom de domaine de la liste :

mydestination = $myhostname, localhost.com, , localhost

Il faut ensuite redémarrer le service afin de prendre en compte les modifications :
sudo service postfix restart

Configurer l’envoi de mail PHP

Si vous souhaitez envoyer des mails à partir d’un site web en php, comme WordPress, il faut modifier le fichier de configuration suivant : /etc/php/7.3/apache2/php.ini

Décommentez la ligne sendmail_path et paramétrez l’envoi de mail. Attention, l’adresse mail d’envoi doit correspondre à un domaine valide. Pour vérifier l’emplacement de votre commande sendmail : which sendmail

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = /usr/sbin/sendmail -t -i -f noreply@monNomDeDomaine.com

Redémarrez ensuite le serveur Apache pour prendre en compte les modifications :
sudo systemctl restart apache2

Tester l’envoi de mail

Exécutez la commande suivante pour vous envoyer un mail de test (en remplaçant l’adresse de destination par votre adresse) :
echo 'Ceci est un message de test' | mail -s test_header_email monMail@monMail.com

Le mail devrait parvenir dans votre boîte mail (vérifiez les spams éventuellement).

Débug

Si besoin, vous pouvez consulter les logs correspondant à l’envoi de mail Postfix :

  • /var/log/mail.log
  • /var/log/mail.info
Partager sur :