Postfix:エイリアスドメインとは正確には何ですか?


12

「エイリアスドメイン」は単に別のドメインのエイリアスであると理解していると思いました。したがって、「info@main.com」のようなメールボックスを設定し、「alias.com」を「main.com」のドメインエイリアスとして追加すると、アドレス「info@alias.com」も機能します。 !

そこで、これらのドメインを追加しました。

  • main.com
  • alias.com

このメールボックスを作成しました:

  • info@main.com

次に、これらのエイリアスドメインをマッピングしました。

  • alias.com => main.com

そして、info @ alias.comにメールを送信すると、次のエラーが表示されます。

Recipient address rejected: User unknown in virtual mailbox table (state 13).

いくつかのドメインがあるため、すべてのドメインのエイリアスを作成したくありません。また、エイリアスではない他のドメインもあるため、ワイルドカード(info @ *など)は使用しません。main.com

だから...これらは正確に何ですか?


私は同じことを期待し、それは、理由はまだ理解していないではない場合。
ジョシュM.

回答:


4

説明はドキュメントにあります:http : //www.postfix.org/VIRTUAL_README.html#virtual_alias

「別名メールボックス」別名virtual_mailbox_aliasとvirtual_mailbox_mapsが必要ですが、「別名ドメイン」について話してくださいhttp : //www.postfix.org/ADDRESS_CLASS_README.html#virtual_alias_class


3
私はドキュメントを理解できないようです-どのようにメールボックスにdomain1.comエイリアスを持っていますか?<mailbox>@domain2.com
ジョシュM.

2
@JoshM。次virtual_alias_mapsの形式のエントリでハッシュテーブルを使用できます@domain1.com @domain2.com。詳細については私の答えをご覧ください。
サムヘインズ

12

を追加alias.comするのvirtual_alias_domainsが正しい最初のステップですが、それは単にそのドメインをエイリアスに使用することをPostfixに伝えるだけです。エイリアスがどうあるべきかはわかりません。そのためには、仮想エイリアスマップを使用する必要があります。

まず、次のようなものを追加しますmain.cf

virtual_alias_domains = alias.com
virtual_alias_maps = hash:/etc/postfix/virtual

追加すると、仮想エイリアスマップとして使用されるvirtual_alias_mapsファイル(/etc/postfix/virtual)が取得されます。しかし、そのファイルには何を入れますか?virtual(5)マンページによると:

postmap(1)コマンドの入力形式は次のとおりです。

  pattern address, address, ...

パターンがメールアドレスと一致する場合、対応するアドレスに置き換えます。

そして

DBやDBMなどのインデックス付きファイル、またはNIS、LDAP、SQLなどのネットワーク化されたテーブルからのルックアップでは、各user @ domainクエリは以下に説明する一連のクエリパターンを生成します。各クエリパターンは、一致が見つかるまで、次のクエリパターンを試行する前に、指定された各ルックアップテーブルに送信されます。

...

@domain address, address, ...

ドメイン内の他のユーザーのメールをアドレスにリダイレクトします。

そして

ルックアップの結果はアドレスの書き換えの対象となります。結果の形式がの@otherdomain場合、結果はの同じユーザーになりotherdomainます。これは、複数アドレス検索結果の最初のアドレスに対してのみ機能します。

したがって、これ/etc/postfix/virtualを配置すると、必要なフルドメインエイリアスが実現します。

# map any <user>@alias.com to the matching <user>@main.com
@alias.com     @main.com

次に、そのファイルはハッシュテーブルであるため、実行する必要がありますpostmap説明マンページ):

postmap /etc/postfix/virtual

仮想ドメインの詳細については、Postfix Virtual Domain HOWTOを、エイリアスについてはPostfix Address Rewriting HOWTOを参照してください


そのため、PostfixAdminインターフェースにはバグがあります。これは、インターフェース(edit.php?table=aliasdomain)が、有効としてフラグを立てたときに実際にエイリアスが発生しないことをユーザーに伝えることができないためです。
ピータークラウス

2
実際には仮想エイリアスドメインを構成するため、正確にバグだとは言いません。むしろ、PostfixAdminは、Postfix仮想エイリアスドメインが何であるかを知っていることを期待しており、実際のエイリアスを追加して何かをさせる必要があると思われます。しかし、それがあなたに言ったらもっと良いでしょう。
サム・ヘインズ

1

@ジョシュ・M

これが正しい方法であるか、良いプラクティスであるかはわかりませんが、次のようなものを使用しています。

virtual_alias_maps = regexp:/etc/postfix/domain_rewriting pgsql:/etc/postfix/pgsql/     virtual_alias_maps.cf

$ cat /etc/postfix/domain_rewriting 
/^(.*)@domain1.com$/     ${1}@domain2.com

1
正確に間違っているわけではありませんが(期待どおりに動作します)、正規表現テーブルを使用する方@domain1.com @domain2.comが、回答で詳しく説明した構文でハッシュテーブルを使用するよりも効率的ではありません。
サム・ヘインズ

1

これは私の短いバージョンの@ sam-hanesの答えです(私にとってはうまくいきました)

virtual_alias_mapsに以下を追加します。

@from.domain <tab> @to.domain

コマンドラインで以下を実行します。

 postmap /path/to/yourvirtualalismapsfile

あなたにmain.cfファイルの追加:

virtual_alias_domains : from.domain

virtual_alias_domainsは、mailbox @ from.domainの形式のすべてのメールボックスアドレスがすべてエイリアスであることをpostfixに伝えます。

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