Auf meinem Server hatte ich das Problem, dass wenn ich auf der Konsole (im Skript) Email Nachrichten an Externe Adresse(n) sende, das dies mit dem Fehler 550 Recipient address rejected: User unknown in local recipient table abgelehnt wurde. Als Envelope wird die Nachricht mit root@earth.example.com versendet. Das ist auch die Ursache, denn dieses Postfach gibt es nicht. Ich habe mir dann eine Datei /etc/postfix/sender_canonical
erstellt und den Envelope auf eine gültige Email Adresse umgeschrieben.
Wir erstellen zuerst die Datei /etc/postfix/sender_canonical
root:~# cd /etc/postfix/
root:/etc/postfix# vi sender_canonical
Inhalt der Datei /etc/postfix/sender_canonical
@earth.example.com postmaster@example.com
Dann erstellen wir mit postmap daraus eine Hash Datenbank.
root:/etc/postfix# postmap sender_canonical
Nun definieren wir einen sender_canonical_maps Eintrag in der Postfix Konfigurationsdatei /etc/postfix/main.cf
.
root:/etc/postfix# vi main.cf
....
# Rewrite envelope to send messages from terminal to external mail address
sender_canonical_maps = hash:/etc/postfix/sender_canonical
Als letztes lassen wir vom Postfix die Konfiguration neu einlesen.
root:/etc/postfix# postfix reload
Ein Abschließender Test
root:/etc/postfix# echo "Dies ist eine Test Nachricht." | mail -s "Testmail" info@example.com
Nun wird der Absender der Nachrichten, welche auf Konsole gesendet wird von <USERNAME>@earth.example.com
nach postmaster@example.com
umgeschrieben und kann somit an eine Externe Email Adresse gesendet werden. Vorausgesetzt, das Postfach postmaster@example.com
existiert bzw. ist wie bei mir ein Alias auf ein gültiges Postfach.