回答:
transport(5)マップは、EメールがPostfixによってルーティングされる方法を再定義するために使用されます。
/etc/postfix/main.cfに次の行を追加します。
transport_maps = hash:/etc/postfix/transport
次の内容で新しいファイル/ etc / postfix / transportを追加します。
.example.com :
example.com :
* discard:
example.com
メールサーバーがメールを送信するドメインに置き換えます。サブドメインを気にしない場合は、最初の行を削除してください。
postmap(1)で編集した後にファイルをハッシュし、postfixをリロードして変更を有効にすることを忘れないでください:
# postmap /etc/postfix/transport && postfix reload
標準のsmtpd_recipient_restrictionsまたはより正確にはcheck_recipient_accessで受信者を簡単に制限できます。
次の内容のaccess(5)テーブル/etc/postfix/access
を作成するだけです(example.comはメールの送信を許可するドメインです):
example.com OK
一部の特定のアドレスのみを許可することもできます。
user1@example.com OK
user2@example.com OK
postmap(1)で編集した後、ファイルをハッシュすることを忘れないでください:
# postmap /etc/postfix/access
次に、main.cfに次の受信者制限を設定します。
smtpd_recipient_restrictions =
hash:/etc/postfix/access
reject
そしてPostfixをリロードします:
postfix reload
その後、動作するかどうかをテストします。
だから誰かが私がしたようにこれにつまずいた場合:答えは確かにheader_checksであり、それはそのように機能します:
次の行をに追加します/etc/postfix/main.cf
。
header_checks = regexp:/etc/postfix/header_checks
/etc/postfix/header_checks
この内容の新しいファイルを追加します。
/^To:.*@allowed-domain.com/ DUNNO
/^To:.*@/ REDIRECT redirect@example.com
allowed-domain.com
メールサーバーがメールを送信するドメインに置き換えます。redirect@example.com
他のすべての電子メールがリダイレクトされる電子メールアドレスに置き換えます。
複数のドメインを許可する必要がある場合、最初の行は次のようになります。
/^To:.*@(allowed-domain.com|another-domain.com)/ DUNNO
リダイレクトする代わりに、他のすべてのメールを単純にドロップできます。上記の2行目を次のものに置き換えます。
/^To:.*@/ DISCARD No outgoing mails allowed
説明:
header_checks
ファイルと行ごとに照合されます。To:
許可されたドメインを含む)、次のヘッダー行にスキップし、ヘッダーチェックを最初から再度開始します。他の行は一致しないため、これはメールが配信されることを意味します。To:
別の外部電子メールアドレスを含む)、メールをリダイレクトします。Cc:
とBcc:
?