2010-06-10

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

仕事で他プロジェクトの応援に借り出されて忙しかったので間が空いてしまった。(-_-;

前回、メール受信ができるように設定を行ったので、メール受信するプログラムを作っていく。
まずは必要となるソースを生成しておく。とりあえずコントローラとサービスは必要なので、これらを生成しておく。
  • メール受信のコントローラ: "gen-controller"で /src/../controller/mail/ReceiveController.java と /test/../controller/mail/ReceiveControllerTest.java を生成する。
  • メール受信のサービス: "gen-service"で /src/../service/MailService.java と /test/../service/MailServiceTest.java を生成する。

さて最初はMailServiceのテストだが、仕様を考えなければいけないのでGAE/Jでのメール受信について調べてみる。
メール受信に関しては「Google App Engineドキュメント」の[Java]-[Services]-[Mail]-[Receiving Email]に書かれている。
ここの「Handling Incoming Email」を読むと下記のコードでMimeMessageオブジェクトが取得できる。
import java.util.Properties;
import javax.mail.Session;
import javax.mail.internet.MimeMessage;

Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
MimeMessage message = new MimeMessage(session, req.getInputStream());

ということで、メール受信のサービス MailServiceの仕様は次のようにする
[receiveメソッド]
  • 引数
    • 受信メールアドレス: コントローラに渡される受信メールアドレス
    • InputStream:メールの内容(上記コード例のreq.getInputStream())
  • 処理内容
    • 引数 InputStreamからMimeMessageを生成する
    • MimeMessageから"From", "To", "件名", "本文"を取り出す
    • 取り出した項目から受信メールを表すモデルクラス(MailItem)を生成する
    • 生成したMailItemを戻り値として返す

風邪気味なので今日はここまで、次回はMailServiceTestを作成する。

0 件のコメント: