試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Sylpheedにおける迷惑メールフィルタに関するメモ(バージョン2.7系時点)

Sylpheedにはメニュー「設定 - 振り分けの設定」でルールを追加していくことで、興味のない内容のメールや一部のスパムメールなどはある程度の法則に基づいたものであれば手動で個別に条件を登録して振り分けることもできる(各ヘッダや本文による振り分けも結構有用ではある)が、悪質なスパムメールの場合、メールの各ヘッダは偽装され、「1行コメント+URL」などの似たような形のコメント/URL違いなどが色々と入ってきて、個別にルールを作成していってもまたルールから外れたものが新しく出てくるという繰り返しとなり、振り分けの設定のルールを個別に追加していく手間もかかる上にルール数も多くなってメンテナンスもしにくくなる。そこで、外部の迷惑メール(スパム)フィルタを用いるための機能を用いることにした。

Sylpheedがサポートする迷惑メールフィルタ

バージョン2.7系の時点ではSylpheedが対応している迷惑メールフィルタツールは

の2つで、bogofilterは多くのディストリでパッケージが用意されているのだが、設定後にツールバーの「迷惑メール」を押してもメール一覧から「迷惑メールに指定」にしても、次の受信時にフィルタしてくれなかった。
そこでbsfilterを試すことにしたが、ディストリのパッケージにはなっていないこともある。Debian/Ubuntu/Gentooにはあるが、Mandrivaには(2010.0の時点では)なかった。

bsfilterを手動で入手/配置する場合の入手と配置

bsfilterRubyスクリプトアーキテクチャに依存せず、ビルド作業が必要ない。しかし、システムにRubyがインストールされていなければRubyをインストールしておく必要がある。
手動でbsfilterを入手/配置する場合
http://sourceforge.jp/projects/bsfilter/
から.tgzファイルをダウンロード・展開し、中のbsfilter/bsfilterというスクリプトファイルを${HOME}/bin/などの適当な場所に移動もしくはコピーしておく。他のファイルは動作には不要。

Sylpheed側の設定

メニュー「設定 - 全般の設定」で「迷惑メール」タブの「迷惑メール対策を有効にする」のチェックを入れ、学習コマンドを「bsfilter」にすると、迷惑メールを処理する際のコマンド行が自動的に設定される。
bsfilterを手動で入手/配置した場合、その配置ディレクトリがSylpheed実行時の環境変数PATHに含まれない場合はスクリプトの場所を絶対パスで記述する必要がある。
例えば、スクリプト${HOME}/bin/に配置し、かつSylpheed実行時の環境変数PATHにこのディレクトリが含まれない場合は

  • 迷惑メール: /home/[ユーザ名]/bin/bsfilter -C -s -u
  • 非迷惑メール: /home/[ユーザ名]/bin/bsfilter -c -S -u
  • 判定コマンド: /home/[ユーザ名]/bin/bsfilter

のようにするか、スクリプトを含むディレクトリを環境変数PATHに入れてからSylpheedを起動する。

env PATH=${PATH}:~/bin sylpheed

各コマンド行の下では迷惑メールと判定されたメールが移動される(Sylpheed内の)フォルダを指定でき、更にその下では振り分けに関する細かい挙動の設定が行える。

通常の振り分けとの優先順位について

別途振り分けのルールを設定して運用している場合、「通常の振り分けの前に迷惑メールを振り分ける」にチェックすると、新しくメールを受信したときに先に迷惑メールの判定を行い、迷惑メールと判定したものについては通常の振り分けは行われない。
もし、迷惑メールフィルタと別に振り分けを行っていて、振り分けのほうを優先したい場合はこのチェックは外しておくとよい。

その後の使い方について

迷惑メールフィルタは、しばらく迷惑メールとそうでないものとを正しく振り分けるという「学習」を続けることで使えるものへと成長していく。
初期段階では誤検出も出るため、迷惑メールのフォルダをまめにチェックして、迷惑メールでないものはメール一覧で「迷惑メールではない」を選択して正しく判定できるように修正する必要がある。

なお、bsfilterの学習データは${HOME}/.bsfilter/以下に保存され、学習データを破棄したい場合はこのディレクトリごと消し、別のところに持っていきたい場合はこのディレクトリを複製することになる。

関連URL:

使用したバージョン: