Postfix: Absender bei Mailversand von der Konsole anpassen
Heute war ich mal wieder auf dem Optimierungstripp und wollte endlich mal erreichen, dass die von dem Inhouse-Linux-Server abgesendeten Mails (von Cronjobs usw.) nicht immer mit dem Namen des ausführenden Users erscheinen, sondern mit etwas aussagekräftigerem. Weiterhin werde ich der Vollständigkeit halber gleich auch noch erklären, wie man die Absenderadresse so umschreibt, dass man lokalen Usern mit lokaler Domain wie root@server3 (welche aus dem Internet nicht erreichbar wären) auch vernünftig antworten kann.
Absenderadresse umschreiben
Problemstellung & Zielsetzung
Ziel ist es, dass eine Mail auf der Konsole mit dem User “root” abgesendet, als “techguy@thiscompany.tld” abgesendet wird, wofür auf dem Mailserver ein Konto existiert (und daher die Antworten auch empfangen werden können). Weiterer Vorteil ist, dass fremde Mailserver die Absenderdomain auch finden, was eine Standardrestriktion zur Spamabwehr ist. Somit ist es also möglich – wenn auch nicht optimal – dass der User root aus einem Cronjob heraus den Output an “someguy@othercompany.tld” sendet, ohne dass die Mail aufgrund der lokalen oder völlig fehlenden Maildomain abgelehnt wird.
Mittel der Wahl
Zur Erreichung dieser Aufgabe, bedienen wir uns der sog. sender-canocial-maps. Diese ermöglichen eine Umschreibung des Absenders in eine andere Mailadresse. Wie die Anleitung zeigt geht es auch für Empfänger separat bzw. als Dauerübersetzung in beide Richtungen mittels einer Datei.
Da mein Mailserver aber nur als Relayhost fungiert, also keine Mails von außen annehmen soll, schreibe ich nur Absenderadressen um.
Umsetzung
Zuerst erstellen wir die Umsetzungstabelle (der Dateiname ist frei gewählt)…
edi /etc/postfix/sender_canonical |
und fügen dort diese Zeile ein und speichern die Datei:
root techguy@thiscompany.tld |
Anschließend erfolgt die Umsetzung dieser Textnachricht in das schnelle Hash-Format für Postfix.
postmap /etc/postfix/sender_canonical |
Nun müssen wir nur noch die neue Umsetzung in der main.cf von Postfix verankern.
# # translating sender e.g. "root@server3" to "techguy@thiscompany.tld" # sender_canonical_maps=hash:/etc/postfix/sender_canonical |
Nach einem
postfix reload |
ist die neue Konfiguration aktiv.
Test
echo "Wer schickt mir das?" | mail -s "Testnachricht von Maschine |`hostname`|" mailbox@thiscompany.tld |
testen. Der neue Absender sollte statt “root” der Name “techguy@thiscompany.tld” sein. Auch bei der Antwort sollte diese Adresse stehen.
Aber Achtung, nicht verwirren lassen: Als Absendername kann durchaus noch “root” stehen, denn dieser wird zusätzlich zur Absenderadresse übermittelt. Ein Blick in den Header der Mail oder ein Versuch auf die Mail zu antworten sollte aber Klarheit über den Erfolg der Maßnahme bringen.
Absendername anpassen
Problemstellung & Zielsetzung
Auch wenn wir nun eine “gute” E-Mail-Adresse haben, stört in der Liste der täglichen Statusmails sowie diverser Fehlermeldungen noch immer das “root” als Absender. Ein leichter Überblick, welcher Server hier gerade etwas meldet ist so nicht möglich.
Ziel soll es also sein, dass der Absenderserver deutlich zu erkennen ist.
Fall-zu-Fall-Lösung
Wer nur mal schnell den Absendernamen bei der Verwendung von mail auf der Konsole ändern möchte, kann dies tun mittels:
echo "Wer schickt mir das?" | mail -s "Testnachricht von Maschine |`hostname`|" -a "From: [ThisCompany] root@Server3 <techguy@thiscompany.tld>" mailbox@thiscompany.tld |
Man könnte auf die Idee kommen, dass es ja genügen könnte, den Absender auf diese Weise zu verändern und sich die canonical-maps zu sparen. Dieser Befehl ändert aber lediglich den Header der E-Mail, welcher zum Inhalt der Mail gehört. Mailserver prüfen nicht den hier genannten Absender (weil sie die Daten zu diesem Zeitpunkt noch gar nicht haben), sondern den beim Verbindungsaufbau übermittelten.
Generelle Lösung (?)
Hier ist meine Idee, über die Prepend-Funktion von Postfix den From-Header zu ersetzen. Leider waren meine bisherigen Versuche, eine Regel zu bauen, die bei bestimmten Absendern (z.B. root oder cron) die From-Zeile austauscht, leider erfolglos – die Regel schlug einfach nie zu (sowohl in header_checks als auch smtp_recipient_restrictions).
Daher veröffentliche den Artikel so halbfertig, um schon einmal ein paar Infos liefern zu können und gleichzeitig die Möglichkeit zu nutzen, dass eventuell ein Leser den entscheidenen Hinweis liefern kann. Ich werde parallel auch noch einmal die Postfix-Liste damit nerven.
-
magu
-
magu
-
Stone



