Mailetを使用したプログラム

メールを受信したときに何かプログラムを実行させたい場合、Mailetを使用します。

Meilet を作るには、org.apache.mailet.GenericMailet クラスを継承したクラスを作成します。

受け取ったメールの情報がorg.apache.mailet.Mailクラスのオブジェクトとして渡されるので、送信されたメールの内容に応じて処理を記述することが可能です。


.jarの準備

JAMES_HOME/apps/james.sar の拡張子を zip に変更し、解凍する。

出来たフォルダの /SAR-INF/lib 以下の jar をクラスパスに含めます。


サンプルプログラム

org.apache.mailet.GenericMailet クラスを継承したサンプルプログラム(Hello TestMailet!と表示するだけ)を作成します。


package sample;

import javax.mail.MessageingException;
import org.apache.mailet.GenericMailet;
import org.apache.mailet.mail;

public class SampleMailet extends GenericMailet{
	public void sevice(Mail arg0)throws MessagingException(
		System.out.println("Hello TestMailet!");
	}
}

.jarの作成

作成したプログラムを.jarにします。

Eclipse では、パッケージを右クリック → エクスポートから簡単に jar ファイルを作成できます。


Eclipseのメニュー表示

jarの作成1

jarの作成2


Mailetの登録

作成した jar を JAMES_HOME/apps/james/SAR-INF/lib にコピーします。

JAMES_HOME/apps/james/SAR-INF/config.xml の140行目付近に作成したプログラムのパッケージ名を記述します。

<mailetpackages>
	<mailetpackage>org.apahe.james.transport.mailets</mailetpackage>
	<mailetpackage>sample</mailetpackage>
</mailetpackages>

次にプログラムを起動する条件を270行目付近に記述します。

<processor name="transport">

	<mailet match="UserIs=fujishinko" class="sample.SampleMailet"></mailet>

この記述でユーザ “fujishinko” にメールが届いた場合に処理を実行します。


メール送信

fujishinko@localhost宛てにメールを送ると・・・


実行結果

おお、ちゃんとプログラムが実行されています。




もどる