Mit Postfix Transport alle Mails über Relay

Hallo,

ich habe auf meinen UCS zwei Mailaccounts, die ich mit Kopano nutze.
Für die Maildomain gibt es aber noch weitere Mailadressen, de nur beim Provider bekannt sind.

Jetzt versucht Postfix natürlich Mails an diese Adressen lokal zuzustellen.

Lösbar sollte das mit mit den Transports sein. Dazu hab ich mir auch schon einige Anleitungen angeschaut, bekomme es aber nicht hin.
Wichtig ist, dass ich alles was nicht explizit für lokale Zustellung konfiguriert ist über den Provider-SMTP läuft.

meine Transport sieht so aus. Einträge wurde über UCS Variablen angelegt.

user1@mydomain.net          lmtp:127.0.0.1:2003
user2@mydomain.net               lmtp:127.0.0.1:2003
extern@mydomain.net           smtp:[x0123654.kasserver.com]

Wenn user1 an extern@mydomain.net schreibt, bekomme ich folgende Fehlermeldung im Postfix:

postfix/smtpd[8863]: 8F6A48014C: reject: RCPT from localhost[127.0.0.1]: 550 5.1.1 <extern@mydomain.net>: Recipient address rejected: User unknown in virtual mailbox table; from=<user1@mydomain.net> to=<extern@mydomain.net> proto=ESMTP helo=<ucs.mydomain.intra>

in der main.cf wird auch auf die transport verwiesen:

transport_maps = hash:/etc/postfix/transport

irgendwo steh ich auf dem Schlauch - bin für jeden Tip dankbar.

Viele Grüße
Idefiks

Hallo idefiks,

haben Sie nach dem Anlegen der Konfiguration auch ein

postmap /etc/postfix/transport

ausgeführt? Die Fehlermeldung verweist darauf, dass Postfix die Direktive garnicht kennt.

Gruß Nico

Hallo Nico,

das hatte ich in der Tat nicht gemacht, da ich annahm das würde der UCS selbst machen wenn er eine neue main.cf generiert.
Timestamp von transport und transport.db war auch immer identisch.

hab jetzt nochmal mit einem vorhergehenden postmap getestet.

Fehlermeldung unverändert.

Ich weiss gar nicht in welche “virtual mailbox table” er da schaut.

Danke und Gruß

Hallo idefiks,

in UCS können Sie die transport-map auch via UCR konfigurieren, was einige Vorteile bietet.
löschen Sie doch bitte Ihre aktuelle Konfiguration (‘mv /etc/postfix/transport ~/postfix.transport.bak’ - nicht ‘rm’ :wink: ) und legen Sie die Weiterleitung wie folgt an:

ucr set mail/maps/transport/EXTERN='extern@mydomain.net smtp:[x0123654.kasserver.com]'

Wichtig ist noch, dass der Server ‘x0123654.kasserver.com’ auch tatsächlich eMails entgegennimmt.

Gruß Nico

Hallo Nico,

danke für die ANtwort und den Vorschlag.
Wenn ich diese Einstellugn aber richtig verstehe, dann werden alle mails an "extern@mydomain.net" über das Protokol SMTP an den Server "x0123654.kasserver.com " übergeben.

ich will aber erreichen, dass alles ausser ein paar definierter Adressen über den Provider läuft.

Ich habe den Vorschlag trotzdem getestet - Ohne Erfolg.
User unknown in virtual mailbox table …

welche virtual table ist das denn? Wo schaut der UCS noch nach möglichen empfängeradressen?

Gruß
Idefiks

Hallo zusammen,

ich glaube, ich bin einen Schrit weiter.

ich hab jetzt “/mail/postfix/virtual/enabled = false” gesetzt

in der transport hab ich jetzt nur die User stehen, die auch lokal bearbeitet werden sollen

user1@mydomain.net              lmtp:127.0.0.1:2003
user2@mydomain.net              lmtp:127.0.0.1:2003

Mails an nicht explizit definierte User der Domain “mydomain.net” laufen ebenso wie fremde Domains über den relayhost

So weit, so gut.
Was hab ich mir jetzt durch abschalten die Virtual (Domains) als Seiteneffekt “eingekauft” ?
Was kann ich micht mehr tun?

viele Grüße
Idefiks

Hallo idefiks,

durch das Abschalten der “Virtual (Domains)” haben Sie quasi den lokalen (UCS) Postfix abgeschaltet, bzw. fühlt sich dieser für keine eMail-Accounts mehr zuständig.

Der richtige Weg für eine funktionierende Konfiguration wäre hier:

  1. ‘/mail/postfix/virtual/enabled’ wieder aktivieren
  2. Für alle eMail-Adressen Accounts erstellen (LDAP-Benutzer mit zugehöriger eMail-Adresse)
  3. Die ‘transport-map’ wie im Initial-Post aufbauen und mittels ‘postmap’ propagieren.

Damit kennt Postfix dann die Mail-Accounts und fühlt sich zuständig; da aber in der transport-map für einige eMail-Accounts andere Transportwege festgelegt sind, hälts sich Postfix an diese Vorgaben und stellt nur die eMails lokal zu, deren Accounts auch dafür vorgesehen sind. Die übrigen leitet er dann über smtp an den externen Server weiter.
Hier kann es nun noch sein, dass der externe Server keine eMails auf Port 25 annimmt. In diesem Fall muss man auf Port 587 ausweichen und für diesen Transportweg Relay-Authentifizierung konfigurieren.

Hallo Nico,

danke für deine Tips.
Hab die virtual jetzt wieder aktiviert.
in der transport musste ich nur die eintragen, die nicht local sein sollen. Das funktioniert auch soweit.

Schöner hätte ich es gefunden, wenn es auch andersrum gegangen wäre und ich alles über SMTP verschicken könnte und nur die lokalen User mit lmtp:localhost:2003 in die transport schreiben müsste.

So muss ich jetzt 40 (zusätzliche) Benutzer auf dem UCS anlegen und konfigurieren - nur damit 10 Leute auf dem UCS arbeiten können.

Danke nochmal
Grüße
Idefiks

Hallo idefiks,

Postfix arbeitet leider so - eine andere Methode ist mir nicht bekannt. Anders herum ginge es nur, wenn Sie den MTA auf der Seite des Providers anpassen könnten. Grundsätzlich dürfte Ihr Szenario aber eher selten sein; was spricht denn dagegen den UCS als generellen Mail-Server zu verwenden?

Gruß Nico

Mastodon