postfixを使用してワイルドカードサブドメインをホストする


9

メインサイトのサブドメインのメールを受け入れるようにpostfixを取得する方法を模索しています。仮想ドメインはありません。ローカル配信用のサブドメインの長いリストだけです。具体的にはpython@*.mydomain.com、エイリアスファイルを使用してPythonにフィードしています。

python:    |/www/proc_email.py

Pythonはそこからの配信を処理できます。私はこれを次の線に沿って何かを想像します:

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

Ubuntuで最新バージョンのpostfixを実行しています(バージョンを確認する方法がわかりません)。

前もって感謝します。

回答:


19

Postfix設定で宛先を明示的にリストする場合、ワイルドカードを使用することはできませんが、幸い、この$mydestinationオプションはテーブルルックアップを受け入れます。したがって$mydestination、次のようなpcreマップに設定してみてください。

mydestination = pcre:/etc/postfix/mydestinations

次に/etc/postfix/mydestinations、適切にアンカーされエスケープされた正規表現を使用して作成します。

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

技術的には、結果が無視されるため、「ACCEPT」の代わりに何でも置くことができます。一致存在だけで十分です:

ホスト名またはドメイン名のリスト、「/ file / name」または「type:table」のパターンをカンマまたは空白で区切って指定します。「/ file / name」パターンはその内容で置き換えられます。「type:table」ルックアップテーブルは、名前がルックアップキーと一致する場合に照合されます(ルックアップ結果は無視されます)。


2
正規表現は固定する必要があります。serverfault.com/a/352928/84843を
Richard Hansen

19

受け入れられた回答のpcreソリューションは適切に機能しますが、ドメイン名の一部のみにヒットしないように正規表現を固定することを検討することもできます。

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

0

*.mydomain.com 動作しません。

relay-domainsすべてのサブドメインを作成してそこに配置する必要があります。1行に1つ。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.