フォト
2009年11月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
無料ブログはココログ

« 2007年1月 | トップページ | 2008年4月 »

2007年2月

2007年2月 2日 (金)

「っぽい」

 会社の内部で利用するシステムでの話。

 宛先を間違えてメールを送信すると、普通はどこかのメールサーバから「こんな宛先は無い」ってことでエラーメールが送信者宛に返ってくることがあると思う。

 よく見かけるのは「MAILER-DAEMON」さんからのメール。メールの中身も英語ばっかり・・・いやよく読めば、なぜエラーになったかも書いてはあるけども。で、エラーになった送信メールの内容も添付されていたりする。

 で、先日のこと。普通に送付されてくるメールと、上述したこのMAILER-DAEMONさんのメールを区別して処理しなければならなくなった。

 受信したメールのデータをPerlで書いたスクリプトに標準入力で突っ込んで、MAILER-DAEMONさんからのメールの時だけは送信者に通知する処理をしてほしいというのだ。

 あ、ちなみに言うと、このシステムで送信するとき、送信者アドレスには送信する人の本当のアドレスではなく、システムで統一された一つの代表アドレスがセットされる。普通のメール送信であれば、Fromには自分のアドレスが入り、MAILER-DAEMONさんからのメールも送信者宛に送付されるので何の問題も無いのだが、このシステムはその辺の事情が特殊になっている。

 スクリプトで処理をするのであれば、MAILER-DAEMONさんからのメールを他のメールと区別するため、何か特徴的なところをとらえて判断しなければならない。

 というわけで、ずーっと普通のメールとMAILER-DAEMONさんからのメールを見比べていたのだが、この二つのメールの違いを具体的にあげるのに現在苦慮している。

 人の目で見れば、エラーメールなどはすぐに見分けられる。メーラーデーモン「っぽい」ねって言うのは見ればわかるのだ。

 「そうか。そういうMAILER-DAEMONっぽいところを見つけて判断すればいいんですね」と、自分の隣に座っているY君(仮)。

 ぃゃぃゃその「っぽい」というところをPerlでどう表現するのかが問題なんだってば。

 とりあえず違うところを列挙してみると、

  • 送信者がMAILER-DAEMON
  • 本文が全部英語
  • エラーになった理由は本文に含まれている
  • 送信したメールの本文はエラーメールの添付となっている

 例えば、この送信者にしても「Mail Delivary Subsystem」さんってパターンもあるらしい。「この送信者なら必ずエラーメール」というわけにはいかないようだ。

 メールに添付ファイルが付くこと自体も当たり前なことだから、エラーメール通知との判別には使え無さそう。

 本文が全部英語・・・・・本文内をgrepすりゃいいか?半角英数記号以外が含まれていたら非英語みたいな判定か。依頼者からのメールが英語のみってことはまぁまず無いだろうし・・・たぶん。


 で、この話を考えながらふと思ったのは、例えば自分などはいろんなソフトメーカーのソフトを買ってユーザ登録をして、そのメーカーからの情報メールを受け取っていたりする。

 ソフトメーカーだけじゃない。例えばショッピングサイトであるとか、オンラインゲームの会社からのメールもたくさん来ている。

 そういうものとスパムメールを区別することってできるんだろうか。

 その手のメールとスパムメールの違いなんて、結構紙一重なんだと思う。

 Y君(仮)「おお、確かに!その違いは難しいですね~」

 自分が必要なメールは普通のメールで、必要無いメールはスパムメールになるんだ。

 例えばよくファイアーウォールソフトについているスパムメールブロック機能であるとか、あとniftyのメールでも学習型のスパムメールブロック機能なんてのがある。あと、秀丸メールにもそんな機能があったなぁ・・・。

 たしかどっかで聞いた話だと、ああいうのはスパムメールに含まれがちな単語の辞書を持ってて、その単語の出現頻度で点数を付けて、何点以上だとスパムメールという判断をする仕組みがあるらしい。

 上述した「っぽい」をプログラムで具現化した一つの形なんだろう。

 Y君(仮)曰く、「そういうのを考えるの苦手なんですよね~」。

 そういう違いを見つけてスクリプト作って、うまく動作したときの快感ったら無いよ? そこが一番おもしろいところだと思うんだけどなぁw

 でもさすがに辞書を作る気にはならない。うん。無理だw

 とりあえず送信者アドレスブロックをすることにした。対処が必要なメールアドレスが新たに出てきたら、その時点で対象に追加する。モグラ叩きだなこりゃ・・・

« 2007年1月 | トップページ | 2008年4月 »