Postfix-Relay basierend auf Senderempfänger

662
Contertulio

Was ist die beste Vorgehensweise, wenn diese Art von Regelsatz in Postfix implementiert werden muss?

  • E - Mail von lokalen geschickt domain1.com, domain2.comum example.com, example1.comsollten weitergeleitet werden smtp.external.com.
  • E-Mail an alle anderen gesendet @example.comund example1.commuss lokal weitergeleitet werden.

Ich weiß, dass es eine Möglichkeit gibt, eine Empfänger-Empfängeradresse transport_mapszu filtern, aber ich weiß nicht, wie ich abhängig von der Absenderadresse filtern soll.

0

1 Antwort auf die Frage

0
nKn

Es gibt einen Weg (obwohl meiner Meinung nach nicht ganz sauber), der mit dem header_checksParameter übereinstimmt . Zum Beispiel:

header_checks = pcre:/etc/postfix/my_relays 

Jetzt in /etc/postfix/my_relays:

/^From:.*asender\@domain1\.com/ smtp1:[host1.example.com] /^From:.*anothersender\@domain2\.com/ smtp2:[host2.example.com] 

Die Aktionen smtp1und smtp2sind nur erforderlich, wenn Sie sich auf dem host1.example.comoder den host2.example.comServern mit einem Kennwort authentifizieren müssen. Andernfalls reicht es aus, sie durch das smtpSchlüsselwort zu ersetzen .

Wenn Sie gegen diesen Server authentifizieren müssen, müssen Sie definieren, was ist smtp1und smtp2in der master.cfDatei:

smtp1 unix - - - - 10 smtp -o smtp_sasl_password_maps=hash:/etc/postfix/smtp1.relay smtp2 unix - - - - 10 smtp -o smtp_sasl_password_maps=hash:/etc/postfix/smtp2.relay 

Als letzten Schritt müssen Ihre smtp[12].relayDateien die Authentifizierungsparameter enthalten, um eine Verbindung zu diesen Hosts herzustellen (ich bemerke, dass dies nur erforderlich ist, wenn Sie eine Authentifizierung benötigen).

[hostX.example.com] userX:passwordX 
Dieser Befehl eignet sich hervorragend zum Filtern von E-Mail-Sendern, aber ich möchte sowohl Sender als auch Empfänger gleichzeitig filtern. Filtern Sie bei einer bestimmten eingehenden und ausgehenden E-Mail mit einem externen Relay. Contertulio vor 7 Jahren 0