2

我的 Web 应用程序安装在许多客户服务器上。由于应用程序需要发送电子邮件(密码恢复),我需要一种为每个客户设置电子邮件服务器信息的好方法。

我是否应该只有一个 xml 文件,每个客户都可以在其中填写电子邮件服务器信息,然后应用程序从那里获取它?

有没有更好的方法?

4

3 回答 3

2

没有更多信息,很难给你具体的建议。对于独立应用程序,我倾向于使用简单的属性文件(javadoc)。

  • 它们在 Java 中易于处理(您可以轻松地读写它们,它们由Map.
  • 它们可以在紧急情况下手动编辑,比 XML 容易得多。

有一些缺点:

  • 它们只是 ASCII (ISO-8859-1),所以如果你想编写扩展的 unicode 字符,你可能会遇到麻烦。如果您从 Java 中写入和读取文件,则不会有任何问题 - Properties 类将为您完成此转换。
  • 某些 SMTP 服务器需要身份验证。将未加密的密码存储到每个人都可以读取的属性文件中是一种不好的做法。在这种情况下,您需要提出某种可逆加密机制,这本身就是一个挑战。您也必须为 XML 执行此操作。您可以指定用户自己使用权限来保护此文件,尽管这远没有自己加密它强大。

我敢肯定有更好的方法 - 你会得到很多答案 - 但恕我直言,这些文件很简单,相对坚固且易于处理。

于 2012-09-19T14:01:36.447 回答
1

我只会使用 JavaProperties文件格式,因为 XML 很重,需要解析,并且要捕获的数据点之间实际上没有层次关系,用于定位电子邮件服务器(名称、端口等)。

于 2012-09-19T13:55:32.457 回答
1

为什么不直接使用属性文件和java.util.PreferencesAPI?如果您只是指定主机/用户名/密码组合,我不确定您是否需要 XML 提供的复杂性/灵活性。

如果您想更加灵活,请查看Apache Commons Config库,它允许您抽象出配置机制并指定层次结构。如果您要提供邮件服务器配置,您还可以/应该配置什么?

于 2012-09-19T13:55:39.217 回答