Offre de lancement — -20% sur tous les VPS avec le code NVH20 · Déploiement en 60 secondes
Email

Configurer Postfix pour envoyer les e-mails de son VPS

Par Équipe NVHCloud 2026-09-18 Lecture : 4 min

Un serveur a souvent besoin d'envoyer des e-mails : alertes de supervision, rapports Logwatch, réinitialisation de mot de passe d'un site, notifications d'une application. Ce guide configure Postfix en envoi seul, la configuration la plus simple et la plus fiable pour ces usages.

1. De quoi avez-vous besoin

  • Envoyer des notifications depuis le serveur : c'est l'objet de ce guide.
  • Envoyer depuis un site (WordPress, boutique) : le plus simple est souvent de configurer le site pour qu'il utilise directement un fournisseur SMTP, par une extension. Postfix reste utile si plusieurs applications doivent envoyer.
  • Héberger des boîtes mail complètes, avec réception et webmail : c'est un projet bien plus lourd, qui demande de la réputation d'adresse IP, de la surveillance et de la maintenance. Pour la plupart des projets, une messagerie hébergée ou l'offre incluse dans un hébergement web Plesk est plus raisonnable.

2. Pourquoi passer par un relais SMTP

Un serveur peut en théorie envoyer les e-mails directement aux serveurs de destination. En pratique, c'est la meilleure façon de finir en spam : les grands fournisseurs comme Gmail ou Outlook se méfient des adresses IP de serveurs qui n'ont pas d'historique d'envoi, et beaucoup d'hébergeurs filtrent le port 25 sortant pour lutter contre le spam.

La solution est de relayer : Postfix confie les messages à un fournisseur SMTP spécialisé (Brevo, Mailjet, Amazon SES, Postmark, ou la messagerie de votre nom de domaine), qui s'occupe de la délivrabilité. L'envoi passe par le port 587, authentifié et chiffré.

3. Installer Postfix

apt update && apt install -y postfix libsasl2-modules mailutils

À la question sur le type de configuration, choisissez Système satellite. Indiquez comme nom de courrier le nom complet du serveur, par exemple web01.votredomaine.fr, et comme relais l'adresse SMTP de votre fournisseur entre crochets, par exemple [smtp.fournisseur.com]:587. Les crochets indiquent à Postfix d'utiliser ce nom tel quel, sans chercher d'enregistrement MX.

4. Configurer le relais

Complétez /etc/postfix/main.cf avec ces lignes, ou vérifiez qu'elles y sont :

relayhost = [smtp.fournisseur.com]:587
inet_interfaces = loopback-only
mydestination =

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
  • inet_interfaces = loopback-only : Postfix n'accepte que les messages venant du serveur lui-même. Il ne peut pas servir de relais à des inconnus, et aucun port n'est à ouvrir dans le pare-feu.
  • mydestination vide : le serveur ne se considère destinataire d'aucun domaine, donc tout est relayé.
  • smtp_tls_security_level = encrypt : la connexion vers le relais est toujours chiffrée, les identifiants ne circulent jamais en clair.

5. Les identifiants SMTP

Créez /etc/postfix/sasl_passwd avec l'identifiant et le mot de passe fournis par votre relais :

[smtp.fournisseur.com]:587 identifiant:mot_de_passe
chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
systemctl restart postfix

La commande postmap crée la version que Postfix lit réellement. Relancez-la à chaque modification du fichier.

6. L'adresse d'expédition

Par défaut, les messages partent de [email protected]. La plupart des relais refusent un expéditeur qui n'appartient pas à un domaine vérifié chez eux. Réécrivez l'adresse d'expédition vers une adresse de votre domaine :

echo '/.+/ [email protected]' > /etc/postfix/sender_canonical
echo 'sender_canonical_maps = regexp:/etc/postfix/sender_canonical' >> /etc/postfix/main.cf
systemctl reload postfix

Pour que ces messages ne tombent pas en spam, le domaine doit être authentifié : voir configurer SPF, DKIM et DMARC.

7. Tester

echo "Test depuis $(hostname)" | mail -s "Test Postfix" [email protected]
journalctl -u 'postfix*' -n 20 --no-pager

Dans le journal, cherchez status=sent : le relais a accepté le message. Si vous recevez le message, vérifiez qu'il n'est pas dans les indésirables. Pour recevoir les messages adressés à root, comme ceux de cron, ajoutez la ligne root: [email protected] dans /etc/aliases, puis lancez newaliases.

8. Dépanner

Dans le journalCause probable
SASL authentication failedIdentifiant ou mot de passe erroné, ou postmap oublié après modification.
Connection timed outLe port 587 sortant est bloqué ou l'adresse du relais est fausse.
Sender address rejectedL'adresse d'expédition n'appartient pas à un domaine vérifié chez le relais.
no mechanism availableLe paquet libsasl2-modules n'est pas installé.

La file des messages en attente s'affiche avec mailq, et postqueue -f force une nouvelle tentative d'envoi.

Questions fréquentes

Pourquoi mes e-mails envoyés depuis le VPS arrivent-ils en spam ?
Parce que l'adresse IP d'un serveur neuf n'a aucune réputation d'envoi et que le domaine n'est souvent pas authentifié. Passez par un relais SMTP spécialisé et publiez les enregistrements SPF, DKIM et DMARC de votre domaine : c'est ce qui décide de la délivrabilité.
Faut-il ouvrir le port 25 dans le pare-feu ?
Non, pas pour envoyer. Le port 25 entrant ne sert qu'à recevoir du courrier. Avec la configuration de ce guide, Postfix n'écoute que sur l'adresse locale et envoie vers le relais par le port 587.
Puis-je utiliser mon compte Gmail comme relais ?
C'est possible avec un mot de passe d'application, mais Gmail limite le nombre d'envois quotidiens et réécrit l'expéditeur. C'est acceptable pour quelques alertes personnelles, pas pour les e-mails d'un site ou d'une application.
Postfix permet-il d'héberger mes boîtes mail ?
Postfix est une brique d'un serveur de messagerie complet, qui demande aussi Dovecot, un antispam, un webmail et une surveillance constante de la réputation. Pour quelques boîtes, une solution hébergée coûte moins de temps et offre une meilleure délivrabilité.