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>



もどる