Postfixでスパムを2つの方法で処理する

Postfixでスパムを2つの方法で処理する

私は、smtpd から入ってくるメールが spamassassin によって自動的にフィルタリングされるように postfix を設定しました (これにより、ヘッダーが追加されたメールがメールキューに再挿入されます)

ここで、スパムとみなされるメッセージに対して 2 つのことを行いたいと思います。

  1. メールが再度送信される場合(エイリアスのため)、その場でメールを破棄する
  2. メールがローカル仮想ユーザー宛ての場合、メールは Dovecot に渡され、スパム フォルダーに配置されます。

このように postfix を設定できますか? すべてのエイリアスとユーザー情報は MySQL にあります。現在はすべてのスパム メールを破棄していますが (main.cf の header_checks を使用)、上記の状況の方が望ましいです。

答え1

送信メールを処理するために、master.cf に別の SMTP リスナー プロセスを設定できます。次のようなコマンドで、ポート 26 でリッスンするプロセスを開始できます。

26        inet  n       -       n       -       18       smtpd -o header_checks=[your checks] mydestination= relayhost=

ローカル配信を無効にし、ローカルホスト以外からのメールを受け付けないようにするには、少し調整する必要があるかもしれません。次に、main.cf に次の内容を追加します。

relayhost=127.0.0.1:26

もちろん、そのファイルからヘッダーチェックを削除します。

メール送信は 26 の 2 番目の smtpd プロセスに中継され、スパムとして失敗したメッセージはドロップされます。メールを直接配信するのではなく、ダウンストリーム サーバーに渡す必要がある場合は、そのリスナーでリレーホストを指定することもできます。

次に、すでに提案したように、Dovecot を使用してローカル ユーザー向けの残りのフィルタリングを設定します。

もちろん、これを行う際には、メッセージにメールホップをいくつ追加するかを考慮する必要があります。一部のメールプロバイダでは、かなりの数のホップでメッセージがドロップされるからです(たとえば、Gmailは10または15程度でドロップされます)。

関連情報