2012-02-06 10 views
1

数秒ごとに電子メールサーバーにpingを実行し、到着した新しい電子メールをすべて取り込むIMAPポーラーを開発する必要があります。Play Frameworkを使用した電子メールfetcher

私はもう一度別のアプリケーションで行っていますが、Spring Integrationの受信メールチャネルを使用しました。

Playで「再生」を開始したばかりで、これを達成するための最良の方法は何かわかりません。 JavaMailはすでにメールを取得する可能性を提供していることは知っていますが、実際にこれをパッケージ化する方法はわかりません。これは別のモジュール、別のプラグイン、サービス、またはsthですか?

ポーリング機能をジョブとして実装する必要がありますか?

注:注:上記の説明は、そうではないと示唆しているかもしれませんが、WebアプリケーションBTWです。

答えて

2

この解決するために、いくつかのオプションがあります:

1)は、一定の間隔でジョブを作成するに

ドキュメントをIMAPサーバーをポーリングするジョブでJavaを使用して利用可能であり、かなり単純です毎分または5分ごとに実行するようにジョブを設定して、新しい電子メールを実際に確認するコードを追加するだけです。

http://www.playframework.org/documentation/1.2.4/jobs

あなたがIMAPに新しい電子メールをチェックする方法を探しているなら、そこにスタック交換を通じて顔をしています。 Getting mail from GMail into Java application using IMAP

2)カスタムルートでIMAPサーバーをポーリングするラクダモジュールを使用して、あなたがしたい場合、これはヘビー級ソリューションであり、唯一の推奨

/プロセッサ:たとえば、この質問をチェックアウトはGmailをポーリングしますApache Camelの他の機能の使用。

モジュールがここにあります:あなたはラクダの使用方法の周りにあなたの頭を取得したら、IMAPのメッセージをポーリングするためにラクダを使ってhttp://www.playframework.org/modules/camel

はかなり簡単ですが、IMAPルートの具体的な情報はここにある:http://camel.apache.org/mail.html

0

お客様のご要望が正しく理解されている場合は、私の意見では、この—の場合はPlayを使用しないでください。 PlayはHTTPリクエストを処理するためのWebフレームワークです。あなたの要件はHTTPについて何も言わないので、Playの大部分です!役に立たないだろう。

これを実行するには、Playのサーバーランタイムとジョブ(およびcron)アーキテクチャを使用しますが、意図していないものについては、フレームワークの機能を悪用することになります。また、ビルドしたいアプリケーション/サービス(たとえばPythonランタイム)のようなアプリケーション/サービスに必要なことは、Playの要件を継承することもできます。

私はあなたがではないと思うのですが、を使用してください。このためにPlayを使用してください。これをSpringを使用した簡単でわかりやすいJavaアプリケーションとして作成してください。 Spring's scheduling capabilitiesを使用すると、必要なものを簡単に実装することができます。

当然ながら、今後この上にWebフロントエンドを構築しようとすると、まったく別の話になります。

+0

まあ、それは完全にWebアプリケーションですが、メールでも制御できるものです – preslavrachev

関連する問題