Leiten Sie E-Mails an andere Server weiter, wenn der Empfänger in der Aliaszuordnung nicht vorhanden ist


2

Dies ist das erste Mal, dass ich anfange, ein komplexeres Postfix zu schreiben, da ich es hasse, E-Mail-Einstellungen einzurichten, ohne zu wissen, was zu tun ist. Aber jetzt muss ich es tun.

Hier die Einstellung:

Aus internen Gründen muss mein Postfix-Relay folgendermaßen eingerichtet sein:

Wenn der Empfänger einer E-Mail nicht in der Aliaszuordnung vorhanden ist, die Empfängerdomäne jedoch, sendet Postfix sie an den realen Mailserver.

Okay, das liest sich seltsam, aber ich gebe Ihnen ein Beispiel.

Der MX-Eintrag von example.com ist auf ProxyHost gesetzt, aber der echte Mailserver mit allen Konten ist unter external.example.com erreichbar

In MySQL habe ich eingerichtet, redirect@example.com sollte an my@example.net weitergeleitet werden. Das funktioniert gerade.

Aber wenn ich eine E-Mail an whatever@example.com sende, wo sich was NICHT in der lokalen mysql-Weiterleitungstabelle befindet, aber wie Sie sehen können, leite ich die E-Mail gerne an den echten Mailserver weiter. Diese realen Serverinformationen in der Lage Domänen Tabelle in der realmx Spalte .

Das sieht für mich nicht sehr schwer aus, aber ich bin nicht in der Lage, damit umzugehen. Im Moment werden alle Mails an whatever@example.com nur abgelehnt.


Hallo und willkommen bei Server Fault. Ich habe Ihren Beitrag bearbeitet, um ihn besser lesbar zu machen. Wenn die Änderungen Ihrer Absicht widersprechen, entschuldigen Sie mich bitte und Sie können sie jederzeit erneut bearbeiten.
Masegaloeh

Wie auch immer, ich bin immer noch mit diesem Teil verwechselt MX record of example.com is set to ProxyHost . Was meinst du damit ProxyHost?
Masegaloeh

Guten Morgen und vielen Dank für die Bearbeitung des Beitrags. Es war sehr spät am letzten Abend ... Das normale Problem eines Wochenend-Rollouts ... Ich hätte gerne die folgende Struktur: -> Wenn kein Umleitungsziel festgelegt ist, ermitteln Sie den "echten MX" der Mails und senden Sie diese an den MX, der die Mails abfangen soll **
Bastian Bringenberg

Ich kann nur wiederholen, was masegaloeh gesagt hat, was meinst du mit ProxyHost ? Ist das ein Dienstleister? Ist es eine Firma, in der Sie Ihre Server haben? Ist es eine Art Mail-Firewall?
Sebix

Ahh, jetzt verstehe ich die Frage ... ProxyHost ist ein Postfix-Server in der Mitte, der auf einer virtuellen Maschine läuft. Sie haben also UsersComputer -> seinen SMTP-Server, der die Mail sendet -> mein Postfix-Server ist der MX und empfängt die Mail -> der die Mail an einen neuen Mailserver auf einem anderen Server oder an ein neues Postfach auf einem anderen Server umleitet, aber keine Art von Mail speichert Email.
Bastian Bringenberg

Antworten:


0

Das ist ein sehr normaler und typischer Aufbau. Postfix wird auf einem externen Server ausgeführt, empfängt E-Mails und leitet sie an den Server weiter, auf dem sich das Postfach befindet:

world -> smtp.example.com -> imap.example.com

Auf Ihrem smtpServer (den Sie anrufen, ProxyHostaber ich werde diesen Begriff nicht verwenden, da er im allgemeinen Gebrauch des Begriffs kein Proxy ist) verwenden Sie die folgenden Konfigurationen (Sie müssen sich an Ihr genaues Szenario anpassen, das sind die folgenden) Generelle Richtlinien):

mydestination = localhost
transport_maps = hash:/etc/postfix/transport
relay_domains = example.com
relay_recipient_maps = hash:/etc/postfix/relay_recipients

/etc/postfix/relay_recipients enthält die Liste der gültigen Empfänger.

/etc/postfix/transport listet das Ziel für das endgültige Ziel der Mail auf.

Eine vollständige Dokumentation und eine vollständige Erläuterung der oben genannten Konfigurationen finden Sie im großartigen Postfix-Handbuch. Beginnen Sie mit der Dokumentation zu relay_domains .


1

Warnung: nicht getestete Abfrage | nicht getestetes Setup.
Da Sie nur wenige Informationen zu Ihrem Setup angegeben haben, gehe ich davon aus, dass Sie den Alias ​​über festgelegt haben virtual_alias_maps.

Das erste Problem ist, nicht abgelehnt zu werden. Die Lösung ist relay_domainsmit MySQL-Karten zu definieren

relay_domains = mysql:/etc/postfix/relay_domains

mit abfrageteil ist

SELECT 1 FROM forwarding WHERE email LIKE '%%@%s' LIMIT 1;

Das zweite Problem ist die Weiterleitung von E-Mails an den Realmx . Die Lösung ist das Definieren transport_mapsmit mysql maps, die die Weiterleitung und die Domänentabelle verbinden

relay_domains = mysql:/etc/postfix/relay_domains

mit abfrageteil ist

SELECT domain.realmx FROM domain INNER JOIN forwarding ON email LIKE CONCAT ('%',domain.domain) WHERE domain.domain = '%d' LIMIT 1;

Die SQL-Geige.

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.