如何让客户指定他们的电子邮件服务器信息?

时间:2012-09-19 13:50:54

标签: java email-integration

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

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

有更好的方法吗?

3 个答案:

答案 0 :(得分:2)

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

  • 它们在Java中很容易处理(您可以轻松地读取和写入它们,它们由Map支持。
  • 他们可以在紧急情况下手动编辑,比XML更容易。

有一些缺点:

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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