2012-03-18 163 views
0

我想知道PlayFramework是如何擴展的。Playframework擴展/覆蓋點

我心目中的情況下是覆蓋梅勒組件:在某些情況下,它可能是有趣的,覆蓋它在「開發」模式下測試應用程序,也可以肯定使用的組件實現發送郵件到我們的developper郵件ADRESS (即使郵件在功能上被髮送給「真實」用戶)。 它也可用於將郵件轉發到專用於發送郵件的平臺(免費或收費)(如果webhosting提供有限的郵件發送功能......)。

請讓我知道,如果看看如何磨片可以覆蓋梅勒組件(不砍playframework核心源代碼,但通過增加模塊或插件)

最好的問候, 盧瓦克

回答

2

Mail組件是而不是插件。你需要做什麼來完成你的使用案例將是創建你自己的,或者擴展play.libs.Mail類,並且在發送郵件時,使用你自己的類而不是發佈的Play類。

你可以看到這裏的類 - https://github.com/playframework/play/blob/master/framework/src/play/libs/Mail.java

+0

我明白你的解決方案,但問題是,我將不得不通過調用我的實現來改變對Mail類的所有調用... – loicg 2012-03-18 16:03:50

+0

是你已經實現的調用,核心播放或其他模塊? – Codemwnci 2012-03-18 16:16:17

+0

我的意思是有很多模塊(不僅在我的應用程序中)使用該郵件組件。目標是將Mailer實現替換爲另一個(通過配置),而不會影響使用它的模塊和應用程序。你看到我的觀點了嗎? – loicg 2012-03-18 17:12:06

0

對於發展中發揮有一個模擬的郵件(你設置它在你的application.conf)。模擬郵件只會將郵件的內容打印到外殼,Eclipse控制檯等。

對於生產來說,最簡單的方法可能是將主機設置爲使用類似SSMTP或Nullmailer的東西,例如,您可以使用GMail帳戶併發送電子郵件使用谷歌的SMTP服務器,如果你想要一個便宜的設置。使用SSMTP/Nullmailer的好處在於,Play完全不瞭解您的郵件配置,並且您可以隨時更改,而無需執行任何代碼更改。

+0

你的建議可以覆蓋我的需求。我會調查並通知您是否可以。謝謝。 – loicg 2012-03-20 20:18:09