送信者が特定のドメインのメールをサーバー側で拒否したいことがあります。この記事ではPostfixで送信者が特定のドメインのメールをサーバーで拒否する設定について紹介します。
メールクライアントのフィルタリングや迷惑メール防止機能を利用すると、迷惑メールやスパムメールが防げますが、メールの数が多くなるとクライアントでの処理も面倒になります。また、メールボックスがあふれてしまうケースもあります。そのため、サーバー側で特定のドメインを拒否したい状況になります。この記事ではメールサーバーでPostfixを利用した際に、送信者のアドレスが、特定のドメインのメールを拒否する設定を紹介します。
拒否するドメインの一覧を指定するため、Postfixの設定ファイルmain.cfを編集します。
main.cfを開き、以下の行を追加します。
"hash:"以降は拒否リストファイルの位置のため、ファイル名やパスは変更可能です。
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_non_fqdn_sender, hash:/etc/postfix/reject_sender
reject_unknown_sender_domain は送信元メールアドレスが存在しない場合に拒否する設定です。
reject_non_fqdn_sender がクライアントの MAIL FROM コマンドのアドレスが FQDN 形式でない場合に拒否する設定です。
ドメインの拒否リストを作成します。"/etc/postfix/reject_sender"ファイルを作成します。
ファイルには以下を記述します。
と記述すると、送信者がexample.com のメールを拒否します。拒否後、拒否した旨のメッセージを返信します。
と記述すると、送信者がexample.com のメールを拒否しますが、拒否された旨のメッセージを返信しません。
リストファイルの例です。
penguin@example.com REJECT
duck@example.com REJECT
example.net REJECT
example.jp REJECT
リスト作成後、ハッシュマップを作成します。下記のコマンドを実行します。
今回の例では以下のコマンドになります。
/usr/sbin/postmap /etc/postfix/reject_sender
Postfixを再起動し新しい設定ファイルを有効にします。以下のコマンドを実行します。
/etc/rc.d/init.d/postfix reload
または、
/etc/rc.d/init.d/postfix restart