Leider wird die Postfix konfiguration /etc/postfix/main.cf häufig mit vielen Daten der Defaultkonfiguration „vermüllt“ und wird damit unübersichtlich.
Vorüberlegung: Wir müssen die main.cf also irgendwie Filtern, eine Feste Reihenfolge zu erhalten wäre ein positiver Nebeneffekt da sich die Regeln so besser einpägen.
Mit dem Befehl postconf können wir die aktuell verwendete Postfix Konfiguration ausgeben lassen. In dieser Ausgabe sind alle Konfigurationsparameter enthalten, ob manuell gesetzt oder der Defaultwert, in dieser Ausgabe ist er enthalten.
Mit der Option „-d“ kann man von postconf auch die Defaultkonfiguration verlangen. Das an den Beiden Ausgaben ist, das postconf die Konfiguration Optionen immer in der gleichen Reihenfolge Ausgibt und somit mittels diff die beiden Konfigurationen verglichen werden können.
Nach dem diff der beiden konfigurationen müssen alle Zeilen die sich verändert haben, diese Beginnen mit einem Größer als Zeichen „>“ beibehalten werden und die beiden ersten Zeichen, Das Größer als Zeichen und das Leerzeichen, verworfen werden um eine vollständige und Funktionierende main.cf als Ausgabe zu erhalten.
OLD=$(mktemp); trap 'rm "$OLD"' 0;\ NEW=$(mktemp); trap 'rm "$NEW"' 0;\ /usr/sbin/postconf -d > "$OLD";\ /usr/sbin/postconf > "$NEW";\ diff "$OLD" "$NEW"|\ grep '^>'|\ awk '{print substr($0,3)}';\ rm "$OLD" "$NEW"
Die aus der Ausführung dieses Einzeilers entstandene main.cf Datei kann die alte Konfigurationsdatei bedenkenlos ersetzen.
Nachtrag:
Bei mir wurde der Hostname überraschend nicht mit in die Konfiguration übernommen, es muss nach dem Ersetzen der Konfiguration noch mittels postconf der Hostname in die Konfiguration eingetragen werden.:
postconf myhostname=DNS-Reverse/PRT Record