vine-users ML アーカイブ



[vine-users:079962] Re: Sylpheed + bogofilter

  • From: Ryuichi TAKASE <r-takase@xxxxxxxxxx>
  • Subject: [vine-users:079962] Re: Sylpheed + bogofilter
  • Date: Thu, 14 Jan 2010 08:28:22 +0900
高瀬です.

> nkf -mQj | bogofilter -N -s 
> とやると処理できるような感じなのですが、
> これをこのまま Sylpheed の設定の「迷惑メール」のコマンドに
> 入れても、うまく動作せず、wordlist.db を作ってくれません。
> 何かよい方法はないでしょうか?

ターミナルエミュレータのコマンドラインから

 $ sylpheed --debug

と打ち込んでShylpheedを起動すると,
何が行なわれているか端末に情報が表示されます.


・「迷惑メール」ボタンをクリックすると,端末に
-----------------
bogofilter -N -s -I "/home/foo/Mail/inbox/1577"
filter_action_exec(): move: dest_folder = #mh/Mailbox/trash
メッセージ 1577 を trash に移動するようにセットしました
-----------------
と表示され,


・門脇さんのように「全般の設定」から迷惑メールの設定を変更したときは
-----------------
execute_command_line(): executing: nkf -mQj | bogofilter -N -s -I "/home/foo/Mail/inbox/1577"
|: No such file or directory
bogofilter: No such file or directory
-N: No such file or directory
-s: No such file or directory
-I: No such file or directory
-----------------
と表示されますので,パイプ記号"|"や"bogofilter",その引数"-N -s"も
nkfコマンドで変換するファイルの名前として扱われているのでしょう.
シェルを介さずに,プログラムが実行されているので.


・そこで,次のようなシェルスクリプトを作り
----------------- ここから
#!/bin/sh
TMP=/tmp/$$.bogowrapper
/usr/bin/nkf -mQj $1 > $TMP
/usr/bin/bogofilter -N -s -I $TMP
/bin/rm -f $TMP
----------------- ここまで
これを,例えば bogowrapper というファイル名で
PATHの通ったディレクトリに保存します.

そのシェルスクリプトに実行許可を出し(chmod 755 bogowrapper),
「全般の設定」から迷惑メールの設定を
"bogofilter -N -s" から "bogowrapper" に変更します.


このような方法でどうでしょうか.

上記のようにして「迷惑メール」ボタンをクリックすると,
端末の表示では正常に動いているように見えます.
bogofilter の動作の結果までは確認していませんが.

-------------------------------------------------------------------------
高瀬竜一 <r-takase@xxxxxxxxxx>

独立行政法人 産業技術総合研究所
知能システム研究部門 タスクビジョン研究グループ
-------------------------------------------------------------------------