Hallo Liste,
ich dachte mir ich baue da mal schnell was, verzweifele jetzt aber. Ich möchte für eine Vielzahl von Linux-Servern eine Standard-Config ausrollen. Diese Server haben nur Postfix an Board um den Admin zu informieren, also für Cron etc. Da wir für unsere Server mehrere eigene DNS-Zonen betreiben (.server, .lanserver .etc) und ich auf dem zentralen Mailrelay Mails mit "solchen" Zonen zurückweise, habe ich folgendes gebaut:
myorigin = /etc/mailname mydestination = localhost, $myhostname relayhost = relay.foo.de sender_canonical_maps = regexp:/etc/postfix/sender_canonical
/etc/postfix/sender_canonical: /./ noreply@foo.de
noreply@foo.de ist auf dem zuständigen Relay ein blackhole, also /dev/null
Das ganze Funktioniert! Die Mails haben einen ordentlichen absender und werden ordentlich zugestellt. Antworten (Autoreply etc) werden direkt vernichtet. Super! Jetzt beschweren sich die Admins allerdings, dass im FROM leider immer "root noreply@foo.de" steht. Statt des Displaynames sollte dort der Hostname des sendenden Servers stehen, also ein FROM à la "WEB53.SERVER noreply@citkomm.de".
So, lange Vorrede, hier mein Problem:
Um den Displayname (oder wie auch immer der Text-Teil vor der Mailadresse heißt) umzuschreiben, brauche ich den Hostnamen oder ähnliches. Ich würde es am liebsten so machen: smtp_header_checks = regexp:/etc/postfix/header_checks
/etc/postfix/header_checks: /^From:[[:space:]]+(.*)/ REPLACE From: "$myhostname" noreply@citkomm.de
leider kann ich an der Stelle "$myhostname" keine Variable verwenden, zumindest habe ich dafür keine Lösung gefunden. Habt Ihr eine Idee, wie ich den Hostnamen "variabel" in den Header bekomme? Ziel soll es sein, dass die main.cf und alle anderen Dateien keine hostspezifischen Daten enthalten, also $myhostname u.s.w. wird von Postfix ermittelt, $myorigin kommt aus /etc/mailname sofern vorhanden.
Für Tipps/Ideen wäre ich sehr dankbar - allerdings bitte keine Diskussionen über die Randbedingungen ;)
VG Marc