web-dev-qa-db-ja.com

Postfix:送信者に応じて単一のメールアドレスをリダイレクトする方法

Postfixにルールを追加しようとしています。

私の目標は次のとおりです。([email protected])以外の誰かが([email protected])にメールを送信したら、それを([email protected])に転送します。 [email protected]がメールを送信している場合は、単にメールが流れるようにします。要約すると、送信者が[email protected]でない場合は、メッセージを[email protected]にリダイレクトします。送信者IS [email protected]の場合は、リダイレクトしないでください。

参考までに、info @ example.comはエイリアスであり、/ etc/postfix/virtualで定義されており、複数の受信者に送信されます。

私はpcreheader_checksを使用していますが、それは単に機能していません-何も起こらず、すべてのメールはリダイレクトされずに以前と同じように流れています。

これを行うためのより良い/より簡単な方法があれば、私はすべての耳です!

したがって、 この投稿 および この投稿 の指示に従って、main.cfおよびheaders_checkに次の行を追加しました。

main.cf:

header_checks = pcre:/etc/postfix/headers_check

/ etc/postfix/headers_check

/To:[email protected]/ && /From:(?([email protected]).)*/ REDIRECT [email protected]

ただし、何も起こりません。すべてのメールは引き続き[email protected]にドロップされます。 「From」チェックを削除して、info @ example.comに送信されたすべてのメッセージを取得してリダイレクトできるかどうかを確認しました。しかし、これもうまくいきませんでした。走った

postmap -q "From:[email protected]\nTo:[email protected]" pcre:/etc/postfix/headers_check

と応答を受け取りました

&& /(?([email protected]).)*/ REDIRECT [email protected]

また、postfix(postfix reload)を再起動して、構成がロードされたことを確認しました。

また、これは多数の仮想ホストを備えたマシンであり、それぞれに独自の電子メールアドレスとエイリアスがあることに注意してください。すべて/ etc/postfix/virtualで結合されます。

これを達成する方法についてアドバイスをありがとう!

1
Ryan Griggs

なぜ この回答 が受け入れられ、賛成されたのかわかりません。 Postfixドキュメント postfixは一度に1つのヘッダー行しか調べないと明確に述べています。

これらのルールは、一度に1つの論理メッセージヘッダーまたは1つの本文行で機能します。ある回線に対して行われた決定は、次の回線に引き継がれません。

したがって、FromToヘッダーを組み合わせるというアイデアはサポートされていません接尾辞による。


もう1つの方法は、電子メールヘッダーのアドレスの代わりにエンベロープアドレスを使用することです。これを行うには、制限クラスと呼ばれる接尾辞機能を使用できます。見る

Main.cfにこの行を追加します

smtpd_restriction_classes = specialsender
specialsender = permit
smtpd_recipient_restrictions = 
    ...
    check_sender_access hash:/etc/postfix/mycompany.redirection,
    check_recipient_access  hash:/etc/postfix/redirect.sales
    ...

の内容 /etc/postfix/mycompany.redirection

[email protected]     specialsender

の内容 /etc/postfix/redirect.sales

[email protected]      REDIRECT [email protected]

使い方

接尾辞がこの行に遭遇したとき

check_sender_access hash:/etc/postfix/mycompany.redirection

そして、specialsenderクラスの[email protected]を見つけ、接尾辞はリダイレクトなしでそれを許可します。別のメールアドレスがチェックされます

check_recipient_access  /etc/postfix/redirect.sales

また、受信者== [email protected]の場合、sales @ example.comにリダイレクトされます。

1
masegaloeh