Proxy-Mail an einen anderen SMTP-Server mit Postfix


11

Wie kann ich E-Mails abhängig von der An-Adresse an verschiedene SMTP-Server weiterleiten (oder per Proxy senden)?

Ich habe einen Computer mit einem SMTP-Server (Postfix), der Port 25 überwacht. Ich möchte Lamson ( http://lamsonproject.org/ ) verwenden, um eingehende E-Mails und E-Mails zu verarbeiten, für die Postfix verwendet werden soll.

Meine Idee ist es, Lamson so einzurichten, dass es einen anderen Port überwacht, sagen wir localhost: 10025. Ich richte dann Postfix ein, um alle E-Mails abzufangen, indem ich Port 25 abhöre.

Wie konfiguriere ich Postfix so, dass bestimmte E-Mails an Lamson unter 10025 weitergeleitet und alle anderen E-Mails selbst verarbeitet werden?

Antworten:


17

Postfix ist in seiner Konfiguration äußerst flexibel (und daher komplex), daher gibt es verschiedene Möglichkeiten, dies zu erreichen. Der einfachste Weg wäre wahrscheinlich, eine transport(5)Tabelle zu verwenden.

Aktivieren Sie zunächst die Verwendung einer Transporttabelle in Postfix:

/etc/postfix/main.cf:
    transport_maps = hash:/etc/postfix/transport

Sie müssen auch sicherstellen, dass Postfix E-Mails für die Adressen akzeptiert, die von Lamson verarbeitet werden. Informieren Sie sich permit_auth_destinationüber die Regeln, nach denen Postfix gültige Empfängeradressen ermittelt. Wenn für das folgende Beispiel "example.com" eine Domain ist, die Postfix sonst nicht bekannt ist, ist es wahrscheinlich am einfachsten, sie einfach als Relay-Domain hinzuzufügen:

/etc/postfix/main.cf:
    relay_domains = example.com

Erstellen Sie dann eine entsprechende Tabelle. Um beispielsweise alle E-Mails für die Domain "example.com" sowie E-Mails für "user@mydomain.org" an Ihren lokalen Lamson umzuleiten, der an Port 10025 lauscht:

/etc/postfix/transport:
    example.com          smtp:127.0.0.1:10025
    user@mydomain.org    smtp:127.0.0.1:10025

Vergessen Sie danach (und dann einmal nach jeder Aktualisierung der Transporttabellendatei) nicht, Folgendes auszuführen:

$ postmap /etc/postfix/transport

Das sollte dich zum Laufen bringen. Lesen Sie unbedingt die transport(5)Manpage, auf der Sie weitere Ideen zur Verwendung dieser leistungsstarken Funktion finden.


Hallo, danke für den Tipp. Ich habe immer noch Probleme, die E-Mail weiterzuleiten, nachdem ich Ihren Anweisungen gefolgt bin. Ich erhalte NOQUEUE: ablehnen: RCPT von {my-mail-relay} Empfängeradresse abgelehnt: Benutzer in lokaler Empfängertabelle unbekannt. Irgendwelche Ideen?
Mattias

Ah ja, Sie müssen auch sicherstellen, dass Postfix E-Mails akzeptiert, die an example.com weitergeleitet werden sollen (da Postfix jetzt als Relay für Lamson fungiert). Wenn Ihr Postfix hauptsächlich eine andere Domain bedient, können Sie dies am einfachsten durch Hinzufügen der "Lamson-Domain" erreichen relay_domains. Ich habe aktualisiert, um zu antworten, um dies aufzunehmen.
Earl

1
Vielen Dank, nachdem ich Ihre Schritte befolgt hatte, hatte ich immer noch Probleme, Postfix zu bekommen, um localhost als gültigen Host zu erkennen. Ich habe den Befehl postconf -e 'smtp_host_lookup = dns, native' ausgeführt und das hat mein Problem gelöst. Postfix leitet jetzt die gewünschte Mail an Lamson weiter.
Mattias

1
Gut zu hören, dass es funktioniert. Anstatt zu ändern smtp_host_lookup, können Sie auch 127.0.0.1anstelle von verwenden localhost. Ich habe die Antwort aktualisiert, um dieser Verbesserung Rechnung zu tragen.
Earl
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.