我正在創建一個Java Applet,以便在公司網站上進行在線使用。Java Applet電子郵件問題
小應用程序本質上是一個動態在線表單,它將提示用戶輸入產品的某些重要訂單詳細信息,然後將電子郵件發送到位於公司維護的收件箱中的地址。我在本地測試環境中創建了applet,但是當我將它移動到測試位置(位於與真實applet最終將運行的同一webserver上)時,出現以下錯誤(從IE中的Java控制檯) :
DEBUG: can't get java.home: java.security.AccessControlException:
access denied (java.util.PropertyPermission java.home read)
(從一些研究,我關於這個問題進行的)問題是,該公司的網絡服務器(運行的網站)和郵件服務器(這是電子郵件的最終目的地,也是我試圖使用JavaMail API來發送電子郵件的SMTP服務器)位於不同的IP地址(儘管位於同一網絡中)。因此,由於此applet不可信(和未簽名),Applet不具有訪問SMTP服務的安全權限。
我想過一些解決這個問題的方法,但是我真的很感謝關於此問題的一些建議,我是否應該使用Java Servlet和JavaMail API來允許表單發送電子郵件?或者我應該自己嘗試簽署小程序,並允許小程序訪問公司的SMTP服務器?
對此事的任何意見/建議將有所幫助,非常感謝。
我不會依賴於來自客戶端的SMTP。你永遠不知道哪些端口可以被客戶端的防火牆阻止。 – 2011-04-18 20:10:15
你不想讓表單發送電子郵件。如果小程序在用戶本地計算機上運行,那麼他們可以逆向設計通過系統發送電子郵件的能力。只需在您的應用程序上簽名,即可解決問題。 – Daisetsu 2011-04-18 21:40:06
@Daisetsu我不明白你爲什麼認爲簽名應用程序會阻止它被逆向工程。 (另外,安全性出人意料地難以正確對待,因此「僅僅」簽署應用程序可能不是最好的主意(同樣,信任已簽名的應用程序)。) – 2011-04-19 01:00:37