Cygwinの最近のブログ記事

数多くのスパムメールが飛び交う昨今、近年ではメールサーバ側でスパムフィルタを適応することがよくありこの hatotech.org でも SpamAssassin が適応されています。会社でも適応したいねえと ITEMAN とも話しているのですがなかなか時間が取れないということで導入至らずな現状なもののどうにかしたいと思い MDA レベルで導入してみることに。cygwin で。

まずは SpamAssassin の導入。perl で動いているプログラムですが、CPAN で導入することができます。

CPAN> install Mail::Spamassassin

以上。cygwin ながらもアッサリ導入できました。素晴らしい。構築に若干時間はかかりました。

続いて適応。私は fetchamil + procmail の黄金パターンでメール取り込みを行っており、procmail にてフィルタリングする形になります。.procmailrc で以下のような感じ。

# procmail 初期セッティング
PATH=/usr/bin:/usr/local/bin:/bin
MAILDIR=$HOME/Mail
DEFAULT=$MAILDIR/inbox/.
LOGFILE=$MAILDIR/from-log
LOCKFILE=$HOME/.lockmail

# Spamassassin 適応
:0fw
| /usr/bin/spamc

# spam と認定されたら spam へ
:0
* ^X-Spam-Status: Yes*
spam/.

SpamAssassin 側で各メールの Header に
X-Spam-Checker-Version:
X-Spam-Level:
X-Spam-Status:
というラインが追加されますので、その値を使ってあとはお好きなようにという感じです。X-Spam-Status: の Yes/No で判断するのが良さそうです。
あとは spamd コマンドで SpamAssassin デーモンを立ち上げておきます。

spam も日々進化していますので spam と認識できないメールもあるでしょうし、逆に Spam と判断されてしまったメールもあるかと思います。そんなときのために sa-learn というコマンドが別途準備されています。これを使うことで SpamAssssin に勉強させることができます。
目的のメールを仮に ~/Mail/spam-learn に置いたとして、

メールを spam として勉強させる

sa-learn --spam ~/Mail/spam-learn

メールを非 spam として勉強させる

sa-learn --ham ~/Mail/spam-learn

あとは /etc/mail/spamassassin/local.cf に別途 spam ワードとして登録できる模様。実際やってないですが、日本語も JIS コードに変換した状態で記載すれば適応できるようです。

1/11 の PC ソフトウェア更新の際に cygwin の perl も 5.8.6 になったようですが、そこで配布されている perl の @INC が以前から変わっているようです。

5.8.5 までの @INC は perl -V でみると そのバージョンのディレクトリを掘ってそこにある module を読みに行く形になってました。したがって CPAN などで導入した module は perl のバージョンが変わると読みにいかない状態となっていました。毎回 -l オプションをつけたり スクリプト毎に @INC に push して path を追加するのもメンドくせえってことで今まではバージョンがかわる毎に CPAN shell を叩いて再度 module を導入していたのですが。

今回配布されている perl から、@INC が 5.8 というまとまったディレクトリ名でコンパイルされています。したがって今後 5.8 系統のバージョンアップが行われた際には module の再導入はいらないということになります。地味ながらもこれは嬉しい。というかようやく気付いたかコノヤロウというエラソーなことを言いつつ毎度お世話になっております今後ともどうぞ宜しくお願いします。

apache-1.3.31 と php-4.3.8 を cygwin で導入した。

数ヶ月前に会社の自 PC に導入したけど何か気にいらんまま動いてて、そのうち pear upgrade コマンドが動かなくなってしまったくらいなんですが(これの修正、いい加減 php 本家に取り込んでくれんかなあ)、今回は完璧。しっかり libphp4.dll も作れた。ステップも押さえた。しっかりとメモを残してくださる方々にはホント感謝ですねえ。うちも見習って今後のためにまとめてあとで wiki に書いておこう。

でも apache 環境では動かしてなかったりする。cgi は hatotech.org とか会社の web server でテストするし、コマンドラインで簡単なテストが動いたり、pear upgrade で目的の package を引っ張って来てソースがローカルで見れる環境がほしい、って程度なのだ。

cygwin 1.5.10-3 へ UP した途端、日本語を含むパス以下のファイルが開けなくなったという情報が 2ch スレにてあがってます。
自分の使用環境にはあんまりそういうものはなさげだけど、ちょっと気になるので注意兼ヲチするためのメモ。

cocot ってのがあるのを知る。こりゃ面白いね。まさに cygwin user ならではのものですな。

で、さっそく導入しようとするものの、iconv 周りのエラーが発生。
ありゃりゃ?何でだろうと思って調べると、すでに同じ問題で GANAware さんとこで解決してた。素晴らしいことに patch まで用意してもらえている。ということで無事導入成功。

実際に動作させてみる。ウホウホ、こりゃあいい。今まで Terminal を cygwin (local) 用、linux (作業) 用、Sun (Server) 用と分けて立ち上げていたけど、これならば cygwin で screen 使って cocot 経由の telnet, ssh で行けるな。

会社の cygwin を入れなおすと、今まで動いてたこの組み合わせが動かなくなってしまった。症状は家の PC と同じで、/var/spool/mail/ に username で全部たまって行っちゃう。振り分けが全然行われない。難儀やのう。

すべてのメールを inbox へいれるような .procmailrc を用意したとしても、全然処理してくれない。会社で動いている .procmailrc をベースに作ってるんで、つまらん間違いとかはないと思ってるんだけどなあ。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちCygwinカテゴリに属しているものが含まれています。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01