Postfix: transport-maps nur für rausgehende Mails
Hi liste,
ein Problem mit Postfix:
Szenario: Externer POP/SMTP-Server sammelt Emails. Fetchmail holt sie
auf einen Mailserver im LAN. Raus gehts genauso
(LAN-SMTP-Server->externer SMTP-Server->Internet). Es sei denn - und
das ist das Problem - wenn die rausgehende Email an die gleiche Domain
geschickt wird. Nicht alle Accounts sind nämlich auch auf dem
LAN-Server verfügbar, so dass Mails gebounced werden ("user not in
local recipient list").
Ergo soll der Versand Domain-interne Mailversand über den externen
Server laufen, wenn der Empfänger einer derjenigen ist, die keinen
Account auf dem LAN-Server haben.
Mein Ansatz: in die main.cf
local_recipient_maps =
transport_maps = hash:/etc/postfix/transport
In der transport:
emailAddrVonJemandemMITLokalemAccount1 :
emailAddrVonJemandemMITLokalemAccount2 :
emailAddrVonJemandemMITLokalemAccount3 :
emailAddrVonJemandemMITLokalemAccount4 :
* smtp:smtp.server.de
Nach meinem Verständnis sollte Postfix also den oben eingetragenen
Accounts die Emails lokal zustellen und für alles andere
smtp.server.de zu Rate ziehen. Tut er auch. Auch bei eingehenden
Emails. Allerdings werden die o.g. Regeln auch bei empfangenen Emails
angewandt, so dass sie niemals das lokale Postfach erreichen, sondern,
frisch von fetchmail abgeholt, wieder per SMTP an den externen Server
geschickt werden. Ein Headerausschnitt (insgesamt geht das 13KB so
weiter) sähe z.B. so aus:
X-Envelope-From:
elrokus@googlemail.com wrote:
Hi liste, ein Problem mit Postfix: Szenario: Externer POP/SMTP-Server sammelt Emails. Fetchmail holt sie auf einen Mailserver im LAN. Raus gehts genauso (LAN-SMTP-Server->externer SMTP-Server->Internet). Es sei denn - und das ist das Problem - wenn die rausgehende Email an die gleiche Domain geschickt wird. Nicht alle Accounts sind nämlich auch auf dem LAN-Server verfügbar, so dass Mails gebounced werden ("user not in local recipient list").
Genau hier solltest du ansetzen: Dein Postfix ist für eine Domain verantwortlich, deshalb muss er auch für diese Domain alle gültigen Adressen kennen. Wenn das nicht der Fall ist, hast du ein echtes Problem. :-/ Eine Lösung wäre es, Subdomains zu verwenden. Dann wäre dein lokaler Postfix nur für eine Subdomain verantwortlich und würde den Recht an den anderen Server rüberschieben. Dieser wiederum sollte wissen, welche Adressen zu welcher Subdomain gehören.
Ergo soll der Versand Domain-interne Mailversand über den externen Server laufen, wenn der Empfänger einer derjenigen ist, die keinen Account auf dem LAN-Server haben. Mein Ansatz: in die main.cf local_recipient_maps =
Dies schaltet die Prüfung auf gültige Adressen komplett ab. Das würde ich mir gründlich überlegen. Nimmt dein Server auch Mails direkt aus dem Internet an?
transport_maps = hash:/etc/postfix/transport
In der transport: emailAddrVonJemandemMITLokalemAccount1 : emailAddrVonJemandemMITLokalemAccount2 : emailAddrVonJemandemMITLokalemAccount3 : emailAddrVonJemandemMITLokalemAccount4 : * smtp:smtp.server.de
Transport unterscheidet in der Prio zwischen der vollständigen Adresse und der Domain. user1@example.com local: user2@example.com local: example.com smtp:mail.example.com Wie weist du ungültige Adresen ab? -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (2)
-
elrokus@googlemail.com
-
Sandy Drobic