がっつり技術系のネタになります。
日本語の情報が殆ど無いJames3で自分の意図したプログラムが動くようになるまで。
読者の多くには無縁の内容に反省しながらも書き残しておきます。
.
あなたの投資を自動化します
オートマチックトレード
松村博史
.
・
現在シグナルメールを受けて証券会社に注文を入れるシステムに着手したところです。
先日のエントリーで「受けたメールを文言解釈プログラムに渡す」ことに躓いていると申しました。
本家のドキュメント
http://james.apache.org/server/3/config-mailetcontainer.html
を読むとmailetcontainerとつくファイルになにか書けばいいことはわかります。
次の記事で
http://d.hatena.ne.jp/comeonke/20061105/1162780538
<mailet match="RecipientIs=hello@test" class="mystudy.HelloMailet" />
を書けばいいことがわかります。
がこの記事はjames2に関して書いてあるのでそのままでは使えませんでした。
ということで色々試してみました。
jamesの設定ファイルのフォルダに移動
#cd james_install_directory/conf
templateをコピー
#cp mailetcontainer-template.conf mailetcontainer.conf
James3のコンフィグファイルを編集
#vi mailetcontainer.conf
こんな構造になっています。
<processors>
<processor state="root" enableJmx="true">
<mailet match="条件" class="mailet継承クラス"/>
または
<mailet match="条件" class="mailete継承クラス">
<processor>飛び先</processor>
</mailet>
こういうのがいくつもある
</processor>
<processor state="error" enableJmx="true">
<mailet match="All" class="ToRepository">
<repositoryPath>file://var/mail/error/</repositoryPath>
</mailet>
</processor>
<processor state="transport" enableJmx="true">
<mailet match="なにか条件" class="SetMimeHeader">
<name>X-WasSigned</name>
<value>true</value>
</mailet>
<mailet match="All" class="mystudy.HelloMailet"/>
</processor>
<processor state="spam" enableJmx="true"> 内容省略
<processor state="virus" enableJmx="true"> 内容省略
<processor state="local-address-error" enableJmx="true"> 内容省略
<processor state="relay-denied" enableJmx="true"> 内容省略
<processor state="bounces" enableJmx="true"> 内容省略
</processors>
あちこち書いてみましたが、今回の目的で効いたのはtransport節の中でした。
transport節の中にもmailetがいくつかあるので、class=”SetMineHeader”の2つのmailetのあとに書いておきました。
<mailet match=”All” class=”mystudy.HelloMailet”/>
さてmailetcontainer.conf。時間のあるときにもっと調べてみたいと思います。
.
.
いつもありがとうございます。ランキングに参加しています。
ご協力いただけると嬉しいです。
株をされている方はこちら 証券先物の方はこちら FXの方はこちら
ピンバック: javaでメール受信。muitipartに苦戦(MineMessage利用) | 株、先物とFXの自動売買をつくる船場の社長ブログ
ピンバック: javaでメール。そしたら文字化け(MineMessage利用) | 株、先物とFXの自動売買をつくる船場の社長ブログ