Apache James + Groovy でメール連携アプリケーション その2
前回作成したMainProcess.jarとMailData.javaをjarで固めます。
今回は、dkdc.jarという名称で作成しました。
配置方法はいくつかあるようですが、今回は一番簡単と思う方法を採用します.
Jamesを配置したフォルダを[$JAMES]とすると
[$JAMES]/apps/james/SAR-INF/
にlibというフォルダを作成します.
その中に、今回作成したdkdc.jarとGroovyを実行するために、
groovy-all-1.5.6.jarを配置します.
また、Jamesのコネクションプーリングを使用して、
MySQLに接続するので、
[$JAMES]/libにmysql-connector-java-5.0.8-bin.jar
を配置しました。
まとめると・・・
[$JAMES]/lib
mysql-connector-java-5.0.8-bin.jar
[$JAMES]/apps/james/SAR-INF/lib/
dkdc.jar
groovy-all-1.5.6.jar
Jamesがメールを受信した時に作成したプログラムを呼び出すよう、
[$JAMES]/apps/james/SAR-INF/config.xml
を編集します.
■まずは、メールサーバとしての設定
<postmaster>test@exmple.com</postmaster>
<servernamesautodetect="true"autodetectIP="true">
<servername>localhost</servername>
<servername>exmple.com</servername>
</servernames>
■作成したプログラムのパッケージ名をmailetに登録
<mailetpackages>
<mailetpackage>org.apache.james.transport.mailets</mailetpackage>
<mailetpackage>org.apache.james.transport.mailets.smime</mailetpackage>
<mailetpackage>jp.dip.dkdc.james</mailetpackage>
</mailetpackages>
■test@exmple.comがメールを受信したらプログラムを呼び出すよう指定。
加えて、実行するスクリプト名も指定
<spoolmanager>
<processor name="root">
<mailet match="RecipientIs=test@exmple.com" class="jp.dip.dkdc.james.MainProcess">
<script>append.groovy</script>
</mailet>
■必要であれば、メールのgatewayを指定
※コメントアウトされているので注意
<gateway>[プロバイダのメールサーバ]</gateway>
<gatewayPort>25</gatewayPort>
■プーリングするDBの設定
<database-connections>
<data-source name="dkdc" class="org.apache.james.util.dbcp.JdbcDataSource">
<driver>com.mysql.jdbc.Driver</driver>
<dburl>jdbc:mysql://localhost:3306/dkdc?useUnicode=true&characterEncoding=utf8&autoReconnect=true</dburl>
<user>[ユーザ名]</user>
<password>[パスワード]</password>
<max>20</max>
</data-source>
</database-connections>
もどる