我正在创建一个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