PostFix ブラックリストの設定

PostFix ブラックリストの設定

Dovecot/IMAP で PostFix を使用して基本的な電子メール サーバーをセットアップしました。しかし、ブラックリストの設定で問題が発生しています。

以下は私のpostfix main.cfです

smtpd_recipient_restrictions = check_sender_access mysql:/etc/postfix/blacklist.cf reject_unauth_destination

ブラックリスト.cf

user = mailuser
password = mailuser2011
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 'REJECT' FROM blacklist WHERE email='%s' AND id=( SELECT id FROM virtual_users WHERE email='%u')

私の SQL テーブルには、ブラックリスト用の 2 つの列があります。つまり、 と で、ididemailは個々のユーザー、 email はブラックリストに登録されたアドレスです。

私がやりたいのは、メールの受信者を参照して、データベースからアドレスの一致を取得することです。電子メールの値をデータベース内に存在するものにハードコードすると、ブロックされたユーザーからのメールを拒否できるようになります。

%uただし、 (受信者を指すと想定)を使用すると、まったくブロックされません。

答え1

Postfix のルックアップ テーブルは、キーと値のルックアップです。つまり、キーがあり、ルックアップ後に値を取得します。あなたの場合 (check_sender_access)、キーは送信者であり、送信者のみです。したがって、2 つのキー (送信者と受信者) を持つという要件は、Postfix では実行できません。

それを解決する唯一の方法はポリシー委任、検索を行うための複数のキー (送信者、受信者、IP、ホスト名、HELO など) があります。

しかし、一方で、送信者アドレスは偽造するのが最も簡単なので、送信者アドレスに頼るのは非常に悪い考えです。

関連情報