Ich versuche, die Einrichtung postfix
auf einem Linux-Rechner (Debian 8 mit Postfix 2.11) durchzuführen. Aber ich habe einige Probleme, es /etc/aliases
richtig zum Laufen zu bringen.
Das Setup ist wie folgt: Ein MS Exchange-Server ist der eigentliche Mailserver - er empfängt und versendet Mails und befindet sich im selben lokalen Netzwerk wie die Linux-Maschine. Postfix auf der Linux-Maschine verwendet diese Exchange-Maschine als Relayhost zum Versenden von Mails. Das funktioniert, so kommt zum Beispiel an.mail [email protected]
Nun existiert auf dem Exchange eine Mailadresse, die an die Linux-Maschine weitergeleitet wird. /etc/aliases
Ich habe dafür einen Alias, der eine Pipe zu einem Programm ist, da die an diese Adresse gesendeten Mails Code enthalten, der vom Programm analysiert werden soll.
Damit das funktioniert, muss ich die mydestination
Einstellung in ändern main.cf
. Sobald ich das aber tue, beendet Postfix die Weiterleitung von Mails, wenn der Alias von /etc/aliases
verwendet wird. Nur die Eingabe des langen Namens funktioniert. Das ist meine Konfiguration (ich habe bei Null angefangen):
# main.cf
# our internet domain name (the thing after the "@")
mydomain = example.com
# this is the critical setting
mydestination = linuxmachine, 192.168.1.200, $mydomain
# IP of Exchange
relayhost = 192.168.1.100
# so that addresses look correct
masquerade_domains = $mydomain
# in order to make the pipe programm work with correct permission
default_privs = myuser
Mit dieser Konfiguration funktioniert das Piping eingehender Mails, das Senden von Mails an einen Alias funktioniert jedoch nicht:
# /etc/alias
# none of the entries are actual users on the linux machine!
#works when mail to [email protected] comes from external through Exchange to Linux
parser: |/home/user/programname
# command "mail external" does not work! It sends to external@linuxmachine"
external: [email protected]
mydestination
Wenn ich die Zeile in auskommentiere main.cf
, mail external
wird eine Mail an gesendet [email protected]
(die ankommt), eingehende Mail an [email protected]
wird aber nicht durch die Pipe gesendet. Also genau andersherum.
Was muss ich eingeben, main.cf
um /etc/aliases
von meinem Linux-Rechner aus E-Mails mit Kurznamen versenden und gleichzeitig E-Mails an eine Pipe empfangen zu können? Ich möchte lediglich, dass auf dem Linux-Rechner eine spezielle Adresse analysiert wird und dass Linux-Benutzer als „Luxus“ E-Mails mit Kurznamen an ausgewählte Adressen versenden können (anstatt vollständige E-Mail-Adressen eingeben zu müssen).
Update:
postconf -n
Ausgabe:
config_directory = /etc/postfix
default_privs = myuser
masquerade_domains = $mydomain
mydestination = linuxmachine, 192.168.1.200, $mydomain
mydomain = example.com
relayhost = 192.168.1.100
Update 2: Ausgabe bei /var/log/mail.info
Ausführung von mail external
(Mail an Alias) mit mydestination
Einstellungen wie oben:
Jun 19 10:45:27 linuxmachine postfix/smtp[26425]: 6DFE02003AD: to=<[email protected]>, orig_to=<external>, relay=192.168.1.100[192.168.1.100]:25, delay=0.24, delays=0/0/0/0.24, dsn=2.6.0, status=sent (250 2.6.0 <[email protected]> [InternalId=162319] Queued mail for delivery)
Update 3: Nach der Änderung mydestination
entsprechend der vorgeschlagenen Antwort mail.info
zeigt das Protokoll beim Ausführen die folgende Zeile an mail external
:
Jun 19 16:07:31 linuxmachine postfix/smtp[2299]: B562720039C: to=<[email protected]>, orig_to=<external>, relay=192.168.1.100[192.168.1.100]:25, delay=2.6, delays=0/0/0/2.5, dsn=2.6.0, status=sent (250 2.6.0 <[email protected]> [InternalId=162971] Queued mail for delivery)
Antwort1
Die naheliegende Lösung besteht darin, „ $myhostname
oder linuxmachine.example.com“ in mydestination
den Parameter einzugeben.
Erläuterung
Vor der Konfigurationsänderung, hier das Hintergrundereignis nach dem Senden einer E-Mail übermail external
- Postfix empfängt E-Mails per Abholdienst.
- Da der Empfänger keine Domänenteile und (standardmäßig) Parameter hat
append_at_myorigin
hat den Wertyes
, dann wird Postfix die Empfängeradresse umschreiben in[email geschützt](Sie können es oben im Mail-Log sehen) - Standardmäßig ist der Parameter
mydestination
hat den Wert$myhostname
oder linuxmachine.example.com, also wendet Postfix die Aliasing-Map in an/etc/aliases
. - Postfix-Alias[email geschützt]Zu[email geschützt]und senden Sie es dann an den Gmail-Host
Nach der Konfigurationsänderung passiert Folgendes
- Postfix empfängt E-Mails per Abholdienst.
- Da der Empfänger keine Domänenteile und (standardmäßig) Parameter hat
append_at_myorigin
hat den Wertyes
, dann wird Postfix die Empfängeradresse umschreiben in[email geschützt](Sie können es oben im Mail-Log sehen) mydestination
Enthält jetzt weder$myhostname
linuxmachine.example.com noch linuxmachine.example.com, daher wird Postfix kein Aliasing anwenden in/etc/aliases