postfix-すべてのメールを1人のユーザーにリダイレクトする方法(例:*@example.com→user@example.com)


27

メールに接尾辞を使用しています。/ etc / aliasesおよびnewaliasesコマンドを使用して特定の電子メールをリダイレクトできることはわかっています。たとえばroot: user、/ etc / aliases を入力してから実行することでroot@example.comをuser@example.comにリダイレクトできますnewaliases。ただし*: user、example.comへのすべての電子メールがuser@example.comに送信されるように、と同等の処理を行いたいです。

どうすればいいですか?

回答:


19

luser_relay = user@example.comあなたの中にあなたmain.cfが欲しいものです。

ユーザーチェックを無効にしてすべてのメールを受け入れるには、local_recipient_maps =オプションを追加する必要があります。ドキュメンテーション


1
それをmain.cfに追加し、postfixを再起動しました。/var/log/main.infoで次のエラーが発生しました:<pre> 550 5.1.1 <myrandom@example.org>:Recipient address rejected:User unknown in local recipient table; from = <me@gmail.com> to = <myrandom@example.org> </ pre>
ロリー

したがって、example.orgはローカルの受信者ドメインリストに含まれていないか、他の何かが誤って設定されています。
ウォンブル

7
うまくいきました。前述のluser_relayオプションと同様に、「local_recipient_maps = "オプション」も追加する必要があります。このpostfixのドキュメントページでは、postfix.org
Rory

この方法は、宛先の電子メールアドレスを保持しますか?(仮想マップはそれを書き換え、元のTo:アドレスは失われます。)
user14645

1
@Sverreの質問は、接線関連の質問に対する7歳の回答に対するコメントではなく、質問用です。
ワンブル

17

あなたが探しているのは仮想エイリアステーブルであり、次を使用して行うことができます...

まず、/ etc / postfix / virtualファイルを編集するか、まだ存在していない場合は作成する必要があります。

example.com   whatever
@example.com  user@example.com

これを保存した後、Postfixが読み込むpostmap /etc/postfix/virtualインデックス付きの/etc/postfix/virtual.dbを生成するために実行する必要があります。

次に、/ etc / postfix / main.cfを編集し、次の行のコメントを外してください。

virtual_alias_maps = hash:/etc/postfix/virtual

これにより、実際にはpostfixが仮想エイリアステーブルを認識して使用します。

luser_relay他の人が言及したようにオプションを使用することの問題は、これがローカル配信エージェントによって未知のアドレスの最後の手段のユーザーとして扱われることです。postfixが1つのドメインのメールのみを処理する場合、これを利用できますが、他の構成エラーをマスクでき、複数のドメインが処理されると予期しない結果を引き起こす可能性があります。

私が言及しなければならない1つの警告は、この性質のワイルドカードエイリアスを作成することにより、メールシステムを開いて存在しないアドレスのメッセージを受け入れ、メールボックスに存在しないメールをすぐにいっぱいにしてしまうリスクがあることですメールボックス。


8

実際には非常に簡単です。あなたがする必要があるのは、あなたのmain.cfファイルに次のようなものを入れることです:

virtual_alias_maps = regexp:/etc/postfix/virtual_alias

regexp一部は、トリックを行います。また、/etc/postfix/virtual_aliasあなたは次のようなものを入れます:

/^test/ you@yourdomain.com

この例では、宛先が「test」で始まるすべてのメールを受信する必要があります。/ etc / postfix / virtual_aliasをポストマップし、postfixをリロードすることを忘れないでください。


6

私にとって最も簡単に機能する上記の回答/コメントを組み合わせるには(プライマリドメインが1つあります):
以下を追加します/etc/postfix/main.cf

luser_relay = user@domain.com (or local system user)
local_recipient_maps =

local_recipient_maps =値が設定されていません)

ローカルユーザーlinuxアカウントを使用し、同じユーザーを/ etc / aliasesに追加して、ユーザーがすべてのメールをroot、postmasterなどに取得できるようにします。

また、この同じアドレスを自分で組み合わせてvirtual_alias_maps、この同じプライマリアカウントで仮想ドメインのキャッチオールをポイントすることもできます。

詳細については、luser_relayを参照してください。


3

mydomainにキャッチオールアドレスを使用する場合は/etc/aliases、次のようにregexと組み合わせて使用できます。

/etc/postfix/main.cf追加
alias_maps = hash:/etc/aliases, regexp:/etc/postfix/catch-all-local.regexp

/etc/postfix/catch-all-local.regexp追加
!/^owner-/ your-catch-all-user

これでうまくいくはずです。それは私のために働いて、並行して設定されたvirtual_alias_mapsで動作します。


0

Postfixにはあまり知られていない静的ルックアップテーブルタイプがあり、まさにこの目的に使用できます。

alias_database = static:user@example.com
alias_maps = static:user@example.com

user@example.comは、このシステムのローカルでない場合は、おそらくで終わる行を置き換えることにより、すべてのバウンスメッセージを破棄したいと思いますbouncediscardしてmaster.cfメールのループを避けるために。


-4

私はkilljoyになるのは嫌いですが、あなたの問題はPostfixを使用していることです。Postfixはまさにこの演習を非常に困難にします。私は知っている:数年前にそれをしなければならなかったし、それを正しくするのに何日もかかった。このluserオプションは正しいものですが、他にも正しい方法があります。(そして、オプションの名前でさえ、Postfixの作者は実際にこれをサポートしたくなかったことを示しています。)

Courierに切り替えることをお勧めします。Courierは、既存のエイリアスシステムを拡張する方法があるため、この「キャッチオール」メソッドをはるかに賢明な方法でサポートしています。


1
Postfixはそれをまったく難しくしません。仮想エイリアスは、Postfixでキャッチオールを行う標準的な方法であり、非常に簡単です。つまり、自分の個人ドメイン用のおもちゃのメールサーバー以外では、キャッチオールは非常に悪い考えです。
ロブチャンター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.