すべての接尾辞の電子メールを1つの外部電子メールアドレスにリダイレクトする方法


24

テストメールサーバーを作成するには、次のような要件があります。

テストのためにすべての送信メールをpostfixから単一のアドレスにリダイレクトする方法

ただし、すべてのメールをローカルアカウントではなく外部アカウントに送信する必要があります。

私は次のようなことをしたいと思います:

  • xyz:email@gmail.com

ただし、xyzはローカルでもsmtpでもありません。

回答:


45

/etc/postfix/virtual-regexp次のコンテンツで作成します。

/.+@.+/ email@gmail.com

編集してvirtual_maps構成に/etc/postfix/main.cf追加regexp:/etc/postfix/virtual-regexpします。最終結果は、main.cfで次のようになります。

virtual_maps = hash:/etc/postfix/virtual, regexp:/etc/postfix/virtual-regexp

次を入力して、マップファイルをビルドします。

postmap /etc/postfix/virtual-regexp

これには、virtual.dbが存在する必要もあります。virtualという空のファイルを作成して実行しない場合:

touch /etc/postfix/virtual && postmap /etc/postfix/virtual

出来上がり!


1
Mattias Ahnbergの回答に感謝します。1つの一意の電子メールアドレス(たとえばgmail)がインストールされたpostfixが付いたマシンに複数のメールを送信するのはどうですか。最初のメールは2〜3通しか受信できず、残りは返送されます。
ポストマップ

localユーザー(ルートなど)宛のすべてのメールを外部アドレスにリダイレクトし、他のメールをリダイレクトしないことは可能ですか?私は、アットマーク何とか否定されるべきだと思う
流域

@basin email@gmail.comをroot @ localhostに置き換えると、そうなりますか?
user14645

いいえ、これは答えだと思います:serverfault.com/questions/318426/…–
basin

正規表現テーブルはそのまま使用されますが、それらに対してpostmapを実行しても意味がありません。
チュ・アダム

1

これには時間がかかりましたので:

これからターゲットドメインを除外する場合は、ルールの前に

/.+@exclude1.com/ @exclude1.com
/.+@exclude2.com/ @exclude2.com
...

元の受信者を保持するために、仮想マンページでこれを実現する方法が少しわかりにくいことがわかりました。


-2

ローカルアカウントに移動してから、すべてのメールを外部アドレスに転送するだけで構いませんか?あなたが言及した他の質問のように実行して、procmailを使用してメッセージを転送し、ローカルで削除することができます。このようなことは、おそらくフォルダを/ dev / nullに置き換えることでうまくいくでしょう。

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