Apache James のインストールと自動起動設定



メールとの連携プログラムを
「cronで定期的にプログラムを起動し、メールサーバのメールを読む」
という方式で実現していましたが、それだとcronの待ち時間分
タイムラグが発生してしまいます。

割とリアルタイムに処理したいプログラムを書きたくなったので、
昔ちょこっと調べていたApache Jamesに再びスポットを当てることにしました。


今回は、Debianにインストールしてみます。


JamesはJavaで動作するので、Javaがインストールされていなければ、
インストールしておきます。
※いつもの手順なので割愛

Jamesをダウンロードします。
http://james.apache.org/download.cgi

james-binary-2.3.1.tar.gzをダウンロードしました。

適当にディレクトリを作成し、展開します。

mkdir /usr/local/jakarta
tar xvzf james-binary-2.3.1.tar.gz
mv james-2.3.1 /usr/local/jakarta/james-2.3.1
ln -s /usr/local/jakarta/james-2.3.1 /usr/local/jakarta/james


起動スクリプトに実行権限を与えます。
cd /usr/local/jakarta/james/bin
chmod 755 run.sh phoenix.sh
※run.shからphoenix.shが呼ばれるので、両方に実行権限を付与する。

これで起動できます。
# ./run.sh
Using PHOENIX_HOME: /usr/local/jakarta/james
Using PHOENIX_TMPDIR: /usr/local/jakarta/james/temp
Using JAVA_HOME: /usr/local/jdk1.6.0_06
Running Phoenix:

Phoenix 4.2

James Mail Server 2.3.1
Remote Manager Service started plain:4555
POP3 Service started plain:110
SMTP Service started plain:25
NNTP Service started plain:119
FetchMail Disabled


起動時に実行&デーモンで動作してほしいので・・・

vi /etc/init.d/james
#!/bin/bash
# james Start the James Mail server.
#
NAME=james
DAEMON1="/usr/local/jakarta/james/bin/phoenix.sh"
PIDFILE=/var/run/$NAME.pid
trap "" 1
export LANG=C
export JAVA_HOME=/usr/local/jdk1.6.0_06
export PHOENIX_HOME=/usr/local/jakarta/james
test -f $DAEMON || exit 0
case "$1" in
start)
$DAEMON1 $1
;;
stop)
$DAEMON1 $1
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop}"
exit 1
;;
esac

※bash書いたことないので、怪しいです。


実行権限付与
chmod 755 /etc/init.d/james


自動実行設定
update-rc.d james start 90 2 3 4 5 . stop 10 0 1 6 .



これで、とりあえずメールサーバとして動作します。

その他詳細設定は、杉浦さんが詳しく解説されています。
http://www.nurs.or.jp/~sug/soft/james/index.htm


次は、Mailetの開発を思い出します・・・


もどる