2010-06-03

GAE/J + Slim3 : メール受信アプリを作ってみる(1)

会社で開発しているGAE/J + Slim3アプリの開発作業がようやく起動に乗ってきたので、"個人的興味"で"個人的"なアプリを作ってみる。
単なるWebアプリではつまらないので、メールで処理依頼を受け付けられるようにしてみる。
ということで、メールを受信するアプリをGAE/J + Slim3で作ってみる。

まずは設定関係から...
この設定を行えば、アプリ宛のメール"abc@xyz.appspotmail.com"が受けられるようになる。
[war/WEB-INF/appengine-web.xml]
<inbound-services>
    <service>mail</service>
</inbound-services>

[war/WEB-INF/web.xml]
<security-constraint>
    <web-resource-collection>
        <url-pattern>/_ah/mail/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>

受信したメールをどのようにアプリで受け取るかというと、URL "/_ah/mail/メールアドレス"にマッピングされるのでサーブレットで処理すればよい。
Slim3の場合、AppRouter.javaでメール受信処理を行うコントローラのURLへのルーティングを定義すればよい。(Slim3 Controller - URL mapping参照)
[controller/AppRouter.java]
public AppRouter() {
  addRouting("/_ah/mail/{address}", "/mail/receive?address={address}");
}
このコードでは、メールを受信すると /mail/receiveにリクエストがくることになる。またメールの宛先(To)アドレスはリクエストパラメータ"address"として渡されてくる。

これでメールを受信する準備が整ったのでメール受信用のコントローラを作ってみる。もちろん、テストもネ!

0 件のコメント: