2012-02-06 17 views
1

我需要開發一個IMAP輪詢器,它每隔幾秒鐘ping一個電子郵件服務器並獲取每個到達的新電子郵件。使用Play Framework的電子郵件獲取器

我已經爲另一個應用程序做了一次,但在那裏我使用了Spring Integration的入站郵件通道。

我剛剛開始玩「玩」,我不確定實現這一目標的最佳方式是什麼。我知道JavaMail已經提供了獲取郵件的可能性,但我不確定如何實際打包郵件。這應該是一個單獨的模塊,一個單獨的插件,服務,還是......?

輪詢功能是否應該作爲一項工作來實施?

NOTE:它是一個網絡應用程序BTW,雖然上面的描述可能暗示它不是。

回答

2

有解決這幾個選項:

1)使用Java在作業輪詢IMAP服務器定期對創建工作

文檔可以是非常直接的,只需將作業設置爲每分鐘或5分鐘運行一次,然後添加代碼以實際檢查新電子郵件。

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

如果你正在尋找如何檢查對IMAP新郵件則必須通過有堆棧交換看看。例如,要查詢的Gmail看看這個問題:Getting mail from GMail into Java application using IMAP

2)使用駱駝模塊輪詢IMAP服務器的自定義路線/處理器

這是一個重量級的解決方案,只是建議,如果你想使用Apache Camel的其他功能。

該模塊可在這裏:http://www.playframework.org/modules/camel

用駱駝來輪詢IMAP郵件是相當容易的,一旦你得到解決如何使用駱駝的頭,對IMAP路線的具體信息是在這裏:http://camel.apache.org/mail.html

0

在我看來,如果我正確理解了你的要求,你就不應該在這個—上使用Play。 Play是一個旨在處理HTTP請求的Web框架。您的要求根本就不說HTTP,所以Play的很大一部分!將是無用的。

可能使用Play的服務器運行時和Job(和cron)體系結構來運行它,但是你會濫用框架的功能來實現它們從未打算的目的。您也可能繼承Play的需求,而這些需求對於您想要構建的應用程序/服務(例如Python運行時)而言實際上並不需要。

我認爲你應該不是使用Play for this,而是使用Spring創建一個簡單,直接的Java應用程序。通過Spring's scheduling capabilities,您可以輕鬆實現自己想要的功能。

當然,當你打算在未來建立一個網絡前端時,這會使它成爲一個完全不同的故事。

+0

哦,不,它完全是一個網絡應用程序,但也可以通過郵件進行控制 – preslavrachev 2012-02-06 17:44:04

相關問題