レジュメ - ECL:電子商取引研究室 - 近畿大学

平成 17 年 12 月 15 日
ECL 卒研ゼミ関係者各位
近畿大学理工学部情報学科
自然言語処理研究室
藤森浩忠
James
1 James とは
5 James の動作
Java Apache Mail Enterprise Server ApacheJames を
Mailet は James に組み込み メール受信時に起動さ
開発しているのは名前のとおり ApacheProject の James
れ何らかの処理を行うプログラムである。Mailet は受信
サブプロジェクトです。もともと Java を専門とした
メールに対して,任意の条件によって起動するように定
ApacheJJakarta プロジェクトの一つとしてこの James
義する。つまり Matcher と Mailet は組みあわせて利用
は開発されてきたとのことですが、それから昇格して
する。Matcher も Mailet も標準でいくつか提供されて
ApacheJames プロジェクトとして Jakarta から切り離
いるが,自身で作成することが可能である。また Mailet
されたようです。100 単一のサーバーアプリケーション
にはメール送信機能も提供されており,返信メールの送
で、メール送信/保存の両方を扱うことが可能 Java2 プ
信などの機能が簡単に実現でき,アプリケーションに無
ラットフォーム及び JavaMail 1.2 API に準拠
限の可能性を与えるものとなっている。Matcher,Mailet
2 機能
POP3 サーバー機能 メール受信用 SMTP サーバー機
能 メール送信用 MNTP サーバー機能 ニュースサーバー
FetchPOP 機能あるメールサーバのメールを自分のメー
ルサーバにダウンロードする機能のようです。【重要】
メール・アプリケーション組み込み機能
3 James の構成
とも作成は比較的簡単だ。両者とも,独自のクラスを作
成するためのスーパークラスが提供されているので,そ
のクラスを継承したクラスを作成すればよい。 6 Meilet が実行される仕組み
James がメールを受け取ると、一番上の [root] プロ
セッサに渡される。メールを渡された [root] プロセッ
サは、あらかじめ用意しておいたブラックリストによっ
てスパムメールかそうでない正当なメールかを判断し
James は自身の動作のために,Apache Avalon プロ
ます。スパムメールと判断された場合にはそのメールは
ジェクトのアプリケーション・フレームワークを利用し
[spam] プロセッサに渡されることになります。一方で正
ている。Apache Avalon プロジェクトはコンポーネント
当なメールと判断された場合には [trancport] プロセッ
指向のサーバープログラムを作成するための,フレーム
サにメールは渡されます。次に [tranceport] プロセッサ
ワークやコンポーネントを提供するプロジェクトである。
はローカルのユーザ宛てかどうかを判断し、ローカルの
この Avalon のフレームワーク上に James は構築されて
ユーザ宛ての場合はユーザのメール BOX に保存します。
いる。James 内には Mailet が複数配置される
それ以外だった場合には [error] プロセッサにメールを渡
4 Avalon
します。このように James がメールを受け取ると、プロ
セッサによって条件判断が行われ、その条件にあったプ
Avalon のフレームワークを J2EE アプリケーショ
ロセッサへメールが渡されてそこで処理または次の判断
ン・サーバー,James を1つの Web アプリケーショ
が行われて別のプロセッサに渡されるというように処理
ン,Mailet がサーブレットと考えると判りやすいだろ
が進んでいきます。 この処理の流れの中で、条件判断
う。James のアークテクチャは Avalon のフレームワー
を行うのが [Matcher] と呼ばれるクラスです。さらに次
クに大きく依存しているが,James の利用においては,
のプロセッサにメールを渡したり、ユーザのメール BOX
Avalon フレームワークを意識することはそう多くはな
に保存したりするのが [Mailet] です。この [Matcher] と
い。Avalon プロジェクトは,前述のようなフレームワー
[Mailet] は共に Java のクラスとして定義されており、れ
クやコンポーネントから方法論まで提供している非常に
を拡張する [Matcher] や [Mailet] をユーザが自ら作成す
巨大なプロジェクトである。
ることも可能。ユーザの意図した条件やそれに伴うユー
ザ独自の処理を行わせることが可能になります。また、
ここで紹介した James がメールを受け取ってからの流れ
はすべて conf.xml の中に記述されている設定ですので、
この流れは自由に変更することが可能です。