Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java小程序电子邮件问题_Java_Security_Email_Servlets - Fatal编程技术网

Java小程序电子邮件问题

Java小程序电子邮件问题,java,security,email,servlets,Java,Security,Email,Servlets,我正在创建一个用于公司网站的Java小程序 小程序本质上是一种动态在线表单,它将提示用户提供产品的某些重要订单详细信息,然后向公司维护的收件箱中的地址发送电子邮件。我已经在本地测试环境中创建了小程序,但当我将其移动到测试位置(位于实际小程序最终运行的同一Web服务器上)时,我收到以下错误(来自IE中的Java控制台): 问题是(根据我在这个主题上所做的一些研究),公司的Web服务器(运行该网站)和邮件服务器(电子邮件的最终目的地,以及我试图与JavaMail API一起使用以发送电子邮件的SMT

我正在创建一个用于公司网站的Java小程序

小程序本质上是一种动态在线表单,它将提示用户提供产品的某些重要订单详细信息,然后向公司维护的收件箱中的地址发送电子邮件。我已经在本地测试环境中创建了小程序,但当我将其移动到测试位置(位于实际小程序最终运行的同一Web服务器上)时,我收到以下错误(来自IE中的Java控制台):

问题是(根据我在这个主题上所做的一些研究),公司的Web服务器(运行该网站)和邮件服务器(电子邮件的最终目的地,以及我试图与JavaMail API一起使用以发送电子邮件的SMTP服务器)位于不同的IP地址(虽然完全位于同一网络上)。因此,由于此小程序不受信任(且未签名),因此该小程序没有访问SMTP服务的安全权限

我已经想到了几种方法来解决这个问题,但是我真的很感激关于这个问题的一些建议,我应该使用带有JavaMail API的Java Servlet来允许表单发送电子邮件吗?还是我应该尝试自己对小程序进行签名,从而允许小程序访问公司的SMTP服务器


对此问题的任何意见/建议都会有所帮助,非常感谢。

现在的标准做法是只接受来自被认为是真正邮件服务器的机器的邮件,以尽量避免接收垃圾邮件。即使您的邮件服务器现在没有这样设置,将来也可能会这样。因此,要经得起未来考验,使用servlet


(使用servlet的另一个原因是防火墙,但这可能不适用于您。)

现在的标准做法是只接受来自被认为是正版邮件服务器的机器的邮件,以尽量避免接收垃圾邮件。即使您的邮件服务器现在没有这样设置,将来也可能会这样。因此,要经得起未来考验,使用servlet


(使用servlet的另一个原因是防火墙,但这可能不适用于您。)

我不会依赖客户端的SMTP。你永远不知道客户端防火墙会阻止哪些端口。你不想让表单发送电子邮件。如果小程序在用户本地计算机上运行,那么他们可以对通过你的系统发送电子邮件的能力进行反向工程。只需对你的应用程序进行签名,这可能会解决问题e问题。@Daisetsu我不明白为什么您认为对应用程序进行签名会阻止它被反向工程。(另外,安全性很难做到正确,所以“仅仅”对应用程序进行签名可能不是最好的主意(同样,信任已签名的应用程序)。)@Tom,我指的是他是如何提到他认为签名可以解决问题的。我不是暗示通过签署程序可以防止程序被反向工程。我不会依赖客户端的SMTP。你永远不知道客户端防火墙会阻止哪些端口。你不想让表单发送电子邮件。如果applet在用户的本地计算机上运行,然后他们可以对通过您的系统发送电子邮件的能力进行反向工程。只需对您的应用程序进行签名,这可能会解决问题。@Daisetsu我不明白为什么您认为对应用程序进行签名会阻止其进行反向工程。(此外,安全性出人意料地难以正确实现,因此“仅仅”对应用程序进行签名可能不是最好的主意(类似地,信任已签名的应用程序)@Tom,我指的是他如何提到他认为签名可以解决问题。我并不是暗示通过签署程序可以防止它被反向工程。感谢回复,我已经与我公司的一些人讨论了这个问题,我想我将使用servlet。感谢回复,我已经讨论了我的问题与我公司的一些人讨论,我想我将使用servlet。
DEBUG: can't get java.home: java.security.AccessControlException: 
access denied (java.util.PropertyPermission java.home read)