2004年08月30日
川俣晶の縁側ソフトウェア技術雑記total 4973 count

spamの洪水だけでなく、あらゆるメールが1つのメールボックスに飛び込んでくる混迷をprocmailで迅速打開!

Written By: 川俣 晶連絡先

 電子メール運用に関する不満は、かなり前から抱えています。

 その手の話題をたまに書いたりしますが、それに対するリアクションはかなりずれているものが多い感じで、泣けます。

 どのあたりがずれているのかというと、たとえばC#からOutlookを制御して電子メールを送信させるというようなコンテンツで意図したことは、「spamってうざいね。フィルタリングしたいね」ということでは「全く無い」と言うことです。往々にして、そう受け取られてしまいますが、そうではないのです。(親切に説明していないことも多いので、分かりにくいかもしれませんが)

 もちろん、spamフィルタリングできれば、それは一助になります。しかし、spamフィルタリングは、こちらが必要とする電子メール処理システムの一部として必要だと考えただけの話であって、本質は電子メールの流れを意図的にコントロールすることにあります。コントロールされた流れの一部に、Outlookのspamフィルタリング機能を入れられないか、というのが上記コンテンツの本来の趣旨です。

なぜ電子メールの流れを制御したいのか §

 なぜ電子メールの流れを制御したいのかというと、ほとんどのあらゆるメールがたった1つのメールボックスに向かって流れ込んでくるという状況があるためです。

 spamはもとより、DMも、仕事のメールも、私用のメールも、全部1つのメールボックスに入り込みます。それを整理するだけでも一苦労です。もちろん、メールクライアントが持つ自動分類機能も活用していますが、それだけではあまりに不足です。特に、休まなければならない時間に仕事の脂っこいメールを受信してしまう、という事態はぜひとも回避したいと思うわけです。

それを実現するために必要な機能 §

 それを実現するためには、受信した電子メールを条件によって仕分けするプログラムが、メールクライアントが受信する前の段階で仕分け処理をしてくれれば良いことになります。たとえば、Fromにこの文字列を含んでいればこのメールボックスに転送する、といったルールを与えると、あとはそれに従って自動的に第1段階の仕分けをしてくれるプログラムです。

 そういうプログラムは、りすと亭のソースを使えばさほど問題なく作れるだろうと目処は付いていました。.NET Frameworkには正規表現クラスもあるし。

 問題は、spamフィルタをどうするか、というところで時間が無く作業は止まっていました。

spamフィルタについての疑惑 §

 そもそも、spamフィルタが自分の期待に対して十分かという疑問もありましたし。

 本当に正しく判定してくれるのか。

 判定結果のハンドリングに柔軟性は十分か。

 単純に、spamが減れば嬉しいと言うわけではなく、たとえ1通でも重要なメールが届かないのは困ります。

 更に、spamも巧妙化を続けていて、明らかに一般のメールと識別できないものも送られてきています。

 それだけの問題を抱えながら、本当にspamフィルタを苦労して使う意義があるのでしょうか。(意義のある人もいるでしょうが、私の場合の話です)

しかし、spamフィルタ抜きで良ければ即座にも…… §

 要らないメールを排除しようと思うと大変ですが。ここでは、欲しいメールだけすくい上げて分類転送するだけという機能性も想定されています。では、後者の機能だけでは不十分でしょうか?

 実は、それだけでもかなり役に立つという気がしてきました。

 それならすぐ書けるというので、書き始めようとしましたが。

 その程度のプログラムが、既に作られていない訳がない、と思い直して検索してみると。procmailを使うと、まさにそれが可能だということが分かりました。ちょっと設定ファイルが間違いを誘発しやすい構造でイマイチでしたが、自作するよりははるかに少ない手間で使えます。

 というわけで、FreeBSDサーバ上でportsからmakeしてあっという間にインストール完了。いくつかの条件を付加して試してみると良好に動きます。

 まだまだルールは十分とは言えませんが、非常に快適なので、しばらく運用してみたいと思います。

 ちなみに、事前分類はしていますが、到着した全てのメールのSubjectには目を通しています。その作業を行わないというのは私には怖すぎるので。ただ、メールのより分け作業の手間は大幅に軽減されています。それだけでも大収穫です。

実は強力だったSubjectのiso-2022-jpチェック §

 Subjectにiso-2022-jpという文字列を含むかどうかのチェックが実はかなり強力であることが分かりました。(Subjectに日本語を含むかどうかの判定)

 これだけで、自分が必要とするメールと必要としないメールを、かなりの精度で仕分けてくれます。もちろん、それで完全というわけではありませんから、他のルールを足していく必要があります。

 しかし、どうせ後で目視チェックが必要だと割り切って運用するのであれば、自動分類が完璧である必要もなく、分類間違いの手動訂正の手間が減るだけで儲けもの。

 むしろ、設定1個でこんなにも有益な分類ができるとは、という予想外の感動が大きいぐらいです。

参考にしたURL §

http://suken.jp/~tet/FreeBSD/procmail.rhtml

http://www.jaist.ac.jp/~fjt/procmail.html

 余談ですが、procmailを使って、更にその上でspamフィルタを併用することもできそうですね。私は、当面spamフィルタは入れないと決めたので、そのような構成にはしませんが。少しでも時間を取って調べるといろいろ分かって面白いですね。え? その程度のことも知らなかったのかって? そうです。その程度のことも知らないUN*Xミーハーってやつですから。

Facebook

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20040830140324
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.