私はamavisを実行しているpostfixサーバーとSpamAssassinを使用してスパムのフィルタリングを支援しています。スパムとして検出されたメッセージは、ユーザーのMaildirに配信されると次のようになります。
From tom @ tom-mint Fri Mar 15 01:46:20 2013 Return-Path:<tom @ tom-mint> X-Original-To:tom @ my -server.com Delivered-To:[email protected] X-Virus-Scanned:Debian amavisd-new at my-server.com X-Spam-フラグ:YES X-Spam-Score:6.463 X-Spam-Level:****** X-Spam-Status:はい、スコア= 6.463 tagged_above = 2必須= 6.31 tests = [DRUGS_ERECTILE = 2.221、FH_FROMEML_NOTLD = 0.18、 FSL_HELO_NON_FQDN_1 = 0.001、HELO_NO_DOMAIN = 0.001、RCVD_IN_PBL = 3.558、 RDNS_DYNAMIC_BR_NA.KID_BR_NA_KNA_DYNAMIC_DYNAMIC_BR_NA_KID_DYNAMIC = BR autolearn = no 日付:2013年3月15日金曜日01:46:19 -0400 宛先:[email protected] 件名:*** SPAM *** hello User-Agent:Heirloom mailx 12.5 10/20/10 Content-Type:text/plain; charset = us-ascii From:tom @ tom-mint(Tom) Status:RO buy some viagra!
特に***SPAM***
が前に付いた件名とX-Spam-Flag: YES
ヘッダーに注意してください。
これらのメッセージを特別なジャンクフォルダーに保存するようにpostfix
を構成する最良の方法は何ですか?
私の調査によると、これを行うにはpostfixとは別のメール配信ツールを使用する必要があるようですが、どのアプローチが最適かわかりません。日付の情報がたくさんあるようで、postfixがメッセージをフォルダに配置できるかどうか疑問に思っています。
メールディレクトリはすべてMaildirです。
Postfixのlocal(8)ローカル配信エージェントのmanページの大まかな閲覧は、このタイプの機能のヒントを示していません-予想通り。この種のタスクは通常、procmailにオフロードされます(おそらく、mailbox_commandディレクティブを介して)。これにより、キッチンシンクを管理しながら、記述したタスクを処理できます。 procmailの欠点は設定ファイル形式であり、柔軟性と簡単に見つかる大量の例です。最近procmailより良いものが現れたとしても、私はそうではありません。
しかし、私のお金では、MTAを使いこなす方法を見つけたとしても、その道をたどることはしませんでした。この種のメール分類には、バルーニングの方法があり、MTAがないためです(私が知っていること:おそらくExchangeは、知っていますが)柔軟なメッセージハンドラー/配信エージェントとしても機能します。
これは、単一のヘッダーコンテンツに基づいて必要な処理を実行するprocmailレシピです(DEFAULTは配信ディレクトリで、多くの場合$ HOME/Mail /のようなものです)。
:0
* ^X-Spam-Flag: YES
$DEFAULT/.Spam/
編集:(これは、以下のコメントに記載されているように、maildirメールボックス形式を想定しています。mboxを使用する場合は、最後のスラッシュを省略してください)
エイリアンライフフォームが言ったように、これはprocmailの仕事です。これは、メールサーバーのローカル配信エージェントの代わりにはなりません。 afterと呼ばれる別のプロセスで、MDAが処理を実行します。
Procmailでメールをソートする必要がある各ユーザーは、ホームディレクトリに.forward
というファイルを作成する必要があります。そのファイルには次のものが含まれている必要があります。
"|exec /usr/local/bin/procmail || exit 75"
"
記号とすべてで完了します。
ALFは、基本的に.procmail
ファイルを投稿しています。このファイルは、スパムでタグ付けされたメールを別のフォルダーに分類します。
メール配信エージェントは何ですか(main.cf mailbox_commandを参照)? MDAがdovecotの場合、それはSieve IETF標準(rfc5228)をサポートします。これにより、可能性のあるセキュリティホールを公開することなく、procmailよりもはるかに多くのことができます。 procmailをpostfix/dovecotにボルトで固定しないでください。ふるいは完全に統合されています。 Courierを使用している場合は、procmailで問題ありません。ただし、Pigeonholeのsieve/sievecプログラムの方が高速でクリーンです。
以下は、スパムヘッダーを認識してメッセージをごみ箱ファイルに入れる簡単なふるいスクリプトです。
require "fileinto";
if header :comparator "i;ascii-casemap" :contains "Subject" "**SPAM**"
{
fileinto "Trash";
stop;
}