Host-Wildcard-Subdomains mit Postfix


9

Ich versuche herauszufinden, wie ich Postfix dazu bringen kann, E-Mails für jede Subdomain meiner Hauptwebsite zu akzeptieren. Ich habe keine virtuellen Domänen, nur eine lange Liste von Unterdomänen für die lokale Zustellung. Insbesondere füttere ich python@*.mydomain.comeinen Python mit der Alias-Datei:

python:    |/www/proc_email.py

Der Python kann die Lieferung von dort aus übernehmen. Ich stelle mir das so vor:

mydestination = encendio, localhost.localdomain, localhost, *.mydomain.com

Ich verwende die neueste Version von Postfix unter Ubuntu (ich bin mir nicht sicher, wie ich die Version überprüfen soll).

Danke im Voraus.

Antworten:


18

Sie können keine Platzhalter verwenden, wenn Sie die Ziele in Ihrer Postfix-Konfiguration explizit $mydestinationauflisten. Glücklicherweise akzeptiert die Option Tabellensuchen. Versuchen Sie also $mydestination, eine PCRE-Karte wie diese zu erstellen :

mydestination = pcre:/etc/postfix/mydestinations

Erstellen Sie dann /etc/postfix/mydestinationsmit richtig verankerten und entkommenen regulären Ausdrücken:

/^encendio$/                  ACCEPT
/^localhost\.localdomain$/    ACCEPT
/^localhost$/                 ACCEPT
/^.*\.mydomain\.example$/     ACCEPT

Technisch gesehen können Sie an die Stelle von "ACCEPT" alles setzen, da das Ergebnis ignoriert wird. allein die Anwesenheit des Spiels ist ausreichend :

Geben Sie eine Liste von Host- oder Domänennamen, "/ file / name" - oder "type: table" -Mustern an, die durch Kommas und / oder Leerzeichen getrennt sind. Ein "/ file / name" -Muster wird durch seinen Inhalt ersetzt. Eine Nachschlagetabelle "Typ: Tabelle" wird abgeglichen, wenn ein Name mit einem Nachschlageschlüssel übereinstimmt (das Nachschlageergebnis wird ignoriert).


2
Die regulären Ausdrücke sollten verankert sein. siehe serverfault.com/a/352928/84843
Richard Hansen

19

Die PCRE-Lösung in der akzeptierten Antwort funktioniert gut, aber Sie sollten in Betracht ziehen, den regulären Ausdruck zu verankern, um zu vermeiden, dass nur ein Teil des Domainnamens getroffen wird.

/^encendio$/                  ACCEPT
/^localhost\.localdomain$/    ACCEPT
/^localhost$/                 ACCEPT
/^.*\.mydomain\.com$/         ACCEPT

0

*.mydomain.com wird nicht funktionieren.

Sie müssen relay-domainsalle Ihre Subdomains erstellen und dort ablegen. 1 pro Zeile.

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.