gpt4 book ai didi

java - 如何在服务器上使用 SMTP 正确设置 Java Web Applet

转载 作者:行者123 更新时间:2023-12-01 15:32:23 28 4
gpt4 key购买 nike

我需要一个 Java Web 小程序通过 SMTP 发送自动电子邮件。从编程的角度来看,我对服务器和通信比较陌生。因此,我没有使用 servlet,只是在我的 Web 小程序中运行 java mail api。当我通过 Netbeans 运行它并使用 Glassfish 时,它运行良好。我想将其放在公司的服务器上,以便可以从他们的网站运行。

我知道如何嵌入小程序等,但我不确定电子邮件服务将如何准确工作。据我了解,我需要在服务器的类路径上或小程序运行时在附近的目录中设置适当的 jar 文件(邮件、激活、pop3 等)。我假设该服务器将执行类似于 Glassfish 的操作,因为我可以在 netbeans 之外编译并运行小程序中的所有内容,但当小程序尝试发送电子邮件时会出现 classnotfound/classnotdef 错误。这似乎是由于缺乏类似于 Glassfish 的服务器环境造成的。

同样,我对服务器通信和结构这一领域还很陌生,因此任何帮助介绍的指南都会很有用。除此之外,任何快速启动建议也将不胜感激,以暂时插入工作。

最后,Glassfish 以及 Apache 和 Tomcat 等其他服务到底为 Netbeans 提供了什么?他们似乎需要在 Netbeans 中开发任何与 Web 相关的内容,尽管我可以在 Netbeans 之外运行小程序(不包括邮件服务),但它实际上在做什么?它是一个模仿完整服务器流程的假服务器吗?我花了几个小时试图了解更多有关这些事情的信息,但我发现的所有这些都没有基本的方法/原因。

感谢您的指导。

最佳答案

Where would I place that on the server,..

位于 JRE 可访问的位置。服务器的某些目录禁止小程序(和一般浏览),但 JRE 应该能够从中加载 Jars 的一个位置是与 HTML 相同的目录。这不是最佳解决方案,但它会起作用。

如果您希望使用“最佳”,我会将所有小程序的所有 Jars 放在一个目录中,/lib(位于公共(public)站点的根目录 - mydomain.com -> mydomain.com/lib)。

..and do I need to direct the applet to it?

是的。这是使用 applet 元素的 archive 属性完成的。请参阅The APPLET Tag了解更多详情。

<小时/>

一旦使用普通小程序元素工作,最好转换为使用 deployJava.js 启动。 。该脚本对 JRE 进行最小版本检查。但首先要在一台机器上使用 applet 元素让它工作,该机器已经具有运行该 applet 所需的最低 JRE - 它更简单。

<小时/>

顺便说一句 - 此小程序需要经过最终用户的数字签名和信任,然后才能将电子邮件发送到其他域的地址。从服务器发送邮件的优点之一是小程序可以被沙箱化,因为它只需要“打电话回家”即可发送信息 - 服务器会完成其余的工作。

<小时/>

Regarding the digitally signature, I have not heard about that being a requirement for sending the mail.

你前面的学习曲线很陡峭。 ;)

Could you explain why it would need to be signed?

参见What Applets Can and Cannot Do .

未签名的小程序

未签名的小程序可以执行以下操作:

  • 他们可以与来自的主机建立网络连接。
  • ...

引自 Oracle,我的强调大胆。做出这个决定的原因之一是因为(当时的所有者)Sun 不希望小程序因跨站点资源请求而名声不佳(我直接从您的站点上提取图像以在我的站点上的小程序中显示它) )。它被称为热链接,并且非常令人不悦,因为我的网站获得了好处(和访问者),但您的网站正在为资源托管和下载付费。

另一个原因是小程序可能会启动然后通过请求单个资源数千次来攻击站点。获取一个“kewl”小程序游戏,在一千个浏览器中发生这种情况(隐藏在后台),您可能会导致网站崩溃。这称为“拒绝服务”攻击。

因此 Sun 决定,小程序只有获得用户的信任才能跨域,而获得这种信任的唯一方法是开发人员对代码进行签名,JRE 询问用户是否允许它运行,用户按提示确定。

最近,Sun 开始识别 ..cross-domains.xml(或类似的名称)。如果您将这些文件之一放在站点上的正确名称/位置,则可以向 JRE 发出信号,表明可以允许来自其他站点的小程序访问资源(无需用户给予明确的许可) )。

我怀疑这是否适用于电子邮件,即使邮件发送到的域有适当的文件允许它。但我没有测试过。

关于java - 如何在服务器上使用 SMTP 正确设置 Java Web Applet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9421098/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com