「JAMES」で"matcher"&"mailet"の実装から設定までの流れを紹介
メールアプリケーションは楽しそう!と思い、「JAMES」をつかってメールアプリケーションを作成しています。
さてはじめるかと思って、はじめてみると気づくと思いますが、「JAMES」のドキュメントは不親切&不十分ですね(笑)
メールの種類を振り分けるための"matcher"と振り分けたメールの処理を定義する"mailet"の実装方法と、実装したクラスを「JAMES」で利用するための設定方法について、簡単に順を追って説明したいと思います。
超早足です。
(1)必要なファイルを入手する
○「JavaMail API」を入手する
ダウンロードしたファイルを展開します。
できたディレクトリ内にある「mail.jar」ファイルを参照できるようにします。
(JAVA_HOME/jre/lib/ext内に配置するなど。)
○「james-MailetSDK-○.○.○」を入手する
ダウンロードしたファイルを展開します。
展開してできたディレクトリ内にある「james.sar」ファイルを展開して、
SAR-INF/lib以下にある、以下の2つのファイルを参照できるようにします。
*mailet-2.3.jar
*mailet-api-2.3.jar
(2)「matcher」を作成する
GenericMatcherクラスをextendsして、match(Mail mail)メソッドを実装する。
(注)package名は"kazuhiro"とした。
(3)「mailet」を作成する
GenericMailetクラスをextendsして、service(Mail mail)メソッドを実装する。
(注)package名は"kazuhiro"とした
(4)作成したクラスから、jarファイルをつくる
(5)作成したjarファイルを「JAMES_HOME/apps/james/SAR-INF/lib」に配置する
(6)「JAMES_HOME/apps/james/SAR-INF/config.xml」を編集する
○mailetのpackage名を追加する。
<mailetpackages>
(中略)
<mailetpackage>kazuhiro</mailetpackage>
</mailetpackages>
○matcherのpackage名を追加する。
<matcherpackages>
(中略)
<matcherpackage>kazuhiro</matcherpackage>
</matcherpackages>
○matcherで振り分けたメールを処理するmailetを指定する。
<processor name="transport">
<mailet match="MyMatcher" class="MyMailet"></mailet>
(中略)
</processor>
(7)「JAMES」を起動して、メールを送ってみる
(例)メールを受信したとき、ユーザー名が"○○”だったら、messeage nameを表示する
設定がきちんとできていれば、メールを送る(受信する)とコンソールに
Mail1182704731187-0
などと表示されます。
次回は、"matcher"&"mailet"の簡単なサンプルを、紹介したいと思います。