E-Mail-Server · 3 min read · Sep 30, 2025

Postfix als Backup-MX einrichten

In diesem Tutorial zeige ich, wie Sie einen Postfix-Mailserver als Backup-Mail-Exchanger für eine Domain einrichten können, sodass er E-Mails für diese Domain akzeptiert, falls der primäre Mail-Exchanger ausgefallen oder nicht erreichbar ist, und die E-Mails an den primären MX weiterleitet, sobald dieser wieder verfügbar ist.

1 Vorbemerkung

Ich möchte einen Backup-MX für die Domain example.com einrichten. In diesem Beispiel heißt der primäre MX für example.com mx1.example.com (IP-Adresse 1.2.3.4), also nenne ich den Backup-MX mx2.example.com (IP-Adresse 1.2.3.5).

Ich habe MX-Einträge für example.com erstellt, die so aussehen:

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

Es ist wichtig, dass der primäre MX eine niedrigere Nummer (10) und damit eine höhere Priorität als der Backup-MX (20) hat.

Ich gehe davon aus, dass Postfix auf mx2.example.com bereits installiert und funktionsfähig ist.

2 Konfigurieren von Postfix auf mx2.example.com

Um mx2.example.com zu einem Backup-MX für die Domain example.com zu machen, müssen wir nur drei Zeilen in /etc/postfix/main.cf ändern/hinzufügen:

nano /etc/postfix/main.cf

Stellen Sie zunächst sicher, dass smtpd_recipient_restrictions permit_mynetworks und reject_unauth_destination enthalten, sodass etwas wie das hier in Ordnung wäre:

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

Dann müssen wir example.com zum relay_domains-Parameter hinzufügen; falls es noch keinen relay_domains-Parameter in /etc/postfix/main.cf gibt, reicht Folgendes:

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

Und schließlich fügen wir einen leeren relay_recipient_maps-Parameter zu /etc/postfix/main.cf hinzu:

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

(Dadurch müssen wir keine Liste gültiger E-Mail-Adressen angeben, die gesichert werden sollen, was eine entmutigende Aufgabe sein könnte, wenn Sie Hunderte von E-Mail-Konten verwalten müssen.)

Es gibt eine wichtige Sache, die ich hinzufügen muss: Sie dürfen example.com nicht in den folgenden Parametern in /etc/postfix/main.cf auflisten:

  • mydestination
  • virtual_alias_domains
  • virtual_mailbox_domains

Das war’s schon. Alles, was wir jetzt tun müssen, ist, Postfix neu zu starten:

service postfix restart

3 Testen

Um den neuen Backup-MX zu testen, nehmen wir den MTA (Postfix, Sendmail, Exim usw.) auf mx1.example.com offline und senden eine E-Mail von einem entfernten Server an ein example.com-Konto (z.B. [email protected]).

Wenn Sie Zugriff auf das Mail-Log auf dem entfernten (sendenden) Server haben, sollten Sie jetzt etwas wie das hier darin finden:

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)

Wie Sie sehen, wurde die E-Mail an mx2.example.com anstelle von mx1.example.com gesendet, da mx1.example.com nicht erreichbar ist. Schauen wir uns nun das Mail-Log von mx2.example.com an:

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 hat die E-Mail akzeptiert und versucht, sich mit mx1.example.com zu verbinden, um sie an den primären MX zuzustellen. Da der primäre MX ausgefallen ist, kann mx2.example.com die E-Mail nicht zustellen und behält sie in der Mailwarteschlange, bis mx1.example.com wieder verfügbar ist.

Jetzt starten wir den MTA auf mx1.example.com wieder. Der Backup-MX wird die in der Warteschlange befindliche E-Mail nicht sofort zustellen, aber nach einigen Minuten sollten Sie etwas wie das hier im Mail-Log von mx2.example.com sehen:

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)

Die E-Mail wurde an den primären MX zugestellt, wo Sie dies im Mail-Log sehen können:

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-)

So gingen keine E-Mails verloren, während mx1.example.com ausgefallen war, und die Benutzer können weiterhin ihre E-Mails von mx1.example.com abrufen.

4 Links

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.