Serveur de messagerie · 3 min read · Sep 30, 2025

Configurer Postfix en tant que MX de secours

Dans ce tutoriel, je vais montrer comment vous pouvez configurer un serveur de messagerie Postfix en tant qu’échangeur de messagerie de secours pour un domaine afin qu’il accepte les courriels pour ce domaine au cas où l’échangeur de messagerie principal serait hors service ou inaccessible et transmette les courriels au MX principal une fois qu’il est de nouveau opérationnel.

1 Remarque préliminaire

Je veux configurer un MX de secours pour le domaine example.com. Dans cet exemple, le MX principal pour example.com s’appelle mx1.example.com (adresse IP 1.2.3.4), donc j’appelle le MX de secours mx2.example.com (adresse IP 1.2.3.5).

J’ai créé des enregistrements MX pour example.com qui ressemblent à ceci :

example.com.               86400   IN      MX      10 mx1.example.com.  
example.com.               86400   IN      MX      20 mx2.example.com.

Il est important que le MX principal ait un numéro plus bas (10) et donc une priorité plus élevée que le MX de secours (20).

Je suppose que Postfix sur mx2.example.com est déjà installé et fonctionne.

2 Configuration de Postfix sur mx2.example.com

Pour faire de mx2.example.com un MX de secours pour le domaine example.com, tout ce que nous avons à faire est de changer/ajouter trois lignes à /etc/postfix/main.cf :

nano /etc/postfix/main.cf

Tout d’abord, assurez-vous que smtpd_recipient_restrictions contient permit_mynetworks et reject_unauth_destination, donc quelque chose comme ceci serait acceptable :

[...]
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
[...]

Ensuite, nous devons ajouter example.com au paramètre relay_domains ; s’il n’y a pas encore de paramètre relay_domains dans /etc/postfix/main.cf, ce qui suit fera l’affaire :

[...]
relay_domains = $mydestination, example.com
[...]

Et enfin, nous ajoutons un paramètre relay_recipient_maps vide à /etc/postfix/main.cf :

[...]
relay_recipient_maps =
[...]

(Cela nous évite de devoir spécifier une liste d’adresses électroniques valides à sauvegarder, ce qui pourrait être une tâche décourageante si vous devez gérer des centaines de comptes de messagerie.)

Il y a une chose importante que je dois ajouter : Vous ne devez pas lister example.com dans les paramètres suivants dans /etc/postfix/main.cf :

  • mydestination
  • virtual_alias_domains
  • virtual_mailbox_domains

C’est déjà tout. Tout ce que nous avons à faire maintenant est de redémarrer Postfix :

service postfix restart

3 Test

Pour tester le nouveau MX de secours, nous arrêtons le MTA (Postfix, Sendmail, Exim, etc.) sur mx1.example.com et envoyons un courriel depuis un serveur distant à un compte example.com (par exemple, [email protected]).

Si vous avez accès au journal de messagerie sur le serveur distant (d’envoi), vous devriez maintenant y trouver quelque chose comme ceci :

Jun 6 18:29:16 mail postfix/smtp[17746]: AF814144146: to=<[email protected]>, relay=mx2.example.com[1.2.3.5], delay=1, status=sent (250 2.0.0 Ok: queued as DCA5A1BF40F)

Comme vous le voyez, le courriel a été envoyé à mx2.example.com au lieu de mx1.example.com car mx1.example.com est inaccessible. Maintenant, jetons un coup d’œil au journal de messagerie de mx2.example.com :

Jun 6 18:29:16 mx2 postfix/qmgr[3049]: DCA5A1BF40F: from=<[email protected]>, size=892, nrcpt=1 (queue active)  
Jun 6 18:29:16 mx2 postfix/smtpd[3051]: disconnect from mail.blabla.tld[1.2.3.6]  
Jun 6 18:29:16 mx2 postfix/smtp[3057]: connect to mx1.test1.de[1.2.3.4]: Connection refused (port 25)  
Jun 6 18:29:16 mx2 postfix/smtp[3057]: DCA5A1BF40F: to=<[email protected]>, relay=none, delay=0.07, delays=0.03/0.02/0.01/0, dsn=4.4.1, status=deferred (connect to mx1.test1.de[1.2.3.4]: Connection refused)

mx2.example.com a accepté le courriel et a essayé de se connecter à mx1.example.com pour le livrer au MX principal. Comme le MX principal est hors service, mx2.example.com ne peut pas livrer le courriel et le garde dans la file d’attente jusqu’à ce que mx1.example.com soit de nouveau disponible.

Maintenant, nous redémarrons le MTA sur mx1.example.com. Le MX de secours ne livrera pas immédiatement le courriel en attente, mais après quelques minutes, vous devriez voir quelque chose comme ceci dans le journal de messagerie de mx2.example.com :

Jun 6 18:56:44 mx2 postfix/qmgr[3080]: DCA5A1BF40F: from=<[email protected]>, size=892, nrcpt=1 (queue active)  
Jun 6 18:56:45 mx2 postfix/smtp[3083]: DCA5A1BF40F: to=<[email protected]>, relay=mx1.example.com[1.2.3.4]:25, delay=1648, delays=1648/0.09/0.4/0.12, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 167995B0109)

Le courriel a été livré au MX principal où vous pouvez voir cela dans le journal de messagerie :

Jun 6 18:56:45 mx1 postfix/local[4963]: 167995B0109: to=<[email protected]>, orig_to=<[email protected]>, relay=local, delay=0.54, delays=0.08/0.02/0/0.43, dsn=2.0.0, status=sent (delivered to command: /usr/bin/procmail -f-)

Ainsi, aucun courriel n’a été perdu pendant que mx1.example.com était hors service, et les utilisateurs peuvent continuer à récupérer leurs courriels depuis mx1.example.com.

4 Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.