Postfix で「catch all」と「overrides catch all」を使用してすべてのスレッドをチェックしたと思いますが、それでも問題の解決策が得られません。受信専用 SMTP サーバーを取得しました。これをオープン リレーにしたいのですが、でPostfix version 3.5.8
実現できます。次に、受信者のドメインに応じてこれらのメッセージを少数のユーザーに送信したいので、 で pcre を使用していくつかのパターンを作成しました。virtual_alias_domains=static:yes
/etc/postfix/main.cf
virtual_alias_maps = pcre:/etc/postfix/virtual
/1@test/ test
/2@test/ test2
/@test/ catchallfromtest
/@/ catchall
と/etc/postfix/aliases
test: "/var/mail/test.mail"
test2: "/var/mail/test2.mail"
catchallfromtest: "/var/mail/catchallfromtest.mail"
catchall: "/var/mail/catchall.mail"
コメントアウトすれば /@/ catchall
メールは正しく送信されますが、そうしないとすべてのメールがキャッチオールに送られます。私は多くのアイデアを試しました(異なる順序、別々のファイルに分割、異なるデータベースタイプ、virtual_alias_map
一部のユーザーに対して 、キャッチオールにrecipient_bcc_maps 、luser_relay
ただし のみで機能するため$mydomain
私のケースでは機能しない、パターンと行で除外(!//
))、キャッチオールの異なる形式(//
、/.*@.*/
、/^.*@.*&/
など/.+@.+/
)。 でテストしようとすると
postmap -q "1@test" pcre:/etc/postfix/virtual
正しいエイリアスが返されますが、メールを送信しようとすると catchall になってしまいます。他に試せることはありますか? [ドキュメント][1] より
Patterns are applied in the order as specified in the table, until a pattern is found that matches the input string.
したがって、最初のパターンマッチの直後に停止するはずですが、そうはなりません。[1]:http://www.postfix.org/pcre_table.5.html