vine-users ML アーカイブ



[vine-users:078066] Re: vine4.2 で amavi sd-new+SpamAssass in

  • From: 長南洋一 <cyoichi@xxxxxxxxxxxxxxx>
  • Subject: [vine-users:078066] Re: vine4.2 で amavi sd-new+SpamAssass in
  • Date: Wed, 20 Feb 2008 23:45:50 +0900 (JST)
長南です。

宮尾さんのメールより [vine-users:078064]
> 
> > > Path を当てたらエラーになる原因、お分かりになりましたか。
>
> > これ、何をおっしゃっているかわかりませんでした。
> > 一昨日、SpamAssassin の設定ファイル(レシピって言うんですか)で
> > 日本語を利用できるようにするパッチを当ててみて、もしかしたら
> > このことではないかと思い当たりました。そうなんでしょうか。
>
> そうです。そうです。

あっ、誤解させてしまったようですね。と言うより、わたしが
宮尾さんの文章を誤解していたのか。

spamassassin は日本語を直接扱うことができません。そこで、
sample-japanese-local.cf を見ていただくとわかるのですが、
Subject に「はじめまして」や「初めまして」があることをチェック
しようとしたら、こんなふうにルールを書くことになります。

  Subject =~ /(\$O\$8|=i)\$a\$\^\$7\$F/

JIS コードによる表現から開始・終了コードを取って、ASCII 文字で表し、
正規表現で用いる特殊文字についてはバックスラッシュでエスケープして
いる、と言えばよいのでしょうか(ちょっと不正確な言い方かもしれません)。
sample-japanese-local.cf のコメントに書いてあるように、

   echo "はじめまして" |nkf -j|awk '{gsub(/\x1B[$(]B/,"");print}'
   echo "初めまして" |nkf -j|awk '{gsub(/\x1B[$(]B/,"");print}'

あるいは、

   echo "はじめまして" |nkf -j |od -c

などとやってみると、感じがわかると思います。

面倒だし、わかりにくいでしょう。そこで、日本語を直接使って
(UTF-8 ですが)、local.cf などのレシピを書けるようにした
パッチが、spamassassin-3.1.8-normalize-test8.patch などなのです。
もちろん、このパッチは spamassassin-3.1.8 のソースに当てます。
UTF-8 を使ったレシピは、やはり「日本 spamassassin ユーザ会」の
サイトにあります。

  http://spamassassin.jp/download/rules/

ですから、日本語スパムのチェックは sample-japanese-local.cf を
レシピに使ってもできます。また、spamassassin にパッチを当ててから、
「日本 spamassassin ユーザ会」で配布している jp_rules-20060729.cf を
利用してもできます。どちらでもよいのです。

> [vine-linux:078057] で
>
> > local.cfとsample-japanese-local.cfを見比べるとlocal.cfは
> > config ファイルでsample-japanese-local.cfはスパム防止のレシピに
> > 見えるのですが

よく見くらべれば、おわかりになると思って、説明しなかったのですが、
/etc/mail/spamassassin/local.cf はレシピの骨組みです。
sample-japanese-local.cf の方は、日本語スパムもチェックできるように、
それに肉付けしたレシピの具体例。ですから、宮尾さんが次のように
おっしゃているとおりなのです。

> 私は今回、長南さんからの投稿が有るまで、sample-japanese-local.cf
> の内容をどこかの設定にコピー&ペーストしたら終わりかと思っていたので、
> [vine-linux:078057] のような事を言いました。

すなわち、local.cf を念のため local.cf.org とリネームしてから、
sample-japanese-local.cf を local.cf という名前で /etc/mail/
spamassassin にコピーすればよい。オリジナルの local.cf を
そのまま残し、sample-japanese-local.cf もそのままの名前で
/etc/mail/spamassassin にコピーするだけでもよいかもしれません。

ただ、sample-japanese-local.cf を利用すると、「... undefined
dependency ...」というメッセージが /var/log/maillog にたくさん
出るので(厳密な意味でのエラーではありません)、嫌だなと思って
いたのです。しかし、そういったメッセージは「その個々のルールが
使えないよ」というだけで、害はなさそうです。
ですから、何も気にせずに sample-japanese-local.cf を使っても、
たぶん大丈夫でしょうし、スパムチェックがかなり利口になるだろうと
思います。まあ、わたしの推測が正しいか間違っているか、実際に使って、
スパムチェックが向上するかどうかで確かめてください。

なお、上記メッセージが気になるのなら、 /var/log/maillog と
/usr/share/doc/spamassassin-3.1.8/README をよく読んで、
工夫すれば、消すことができます。

もう一度言いますが、sample-japanese-local.cf を使おうと、
日本語でレシピが書けるようにパッチを当てようと、どちらでも
よいのです。あるいは、どこかから適当なレシピを探し出してきて、
local.cf にしようと。

-- 
長南洋一