【问题标题】:Access Outlook2003 from an application (Java) running on a Tomcat (started as a service)从运行在 Tomcat 上的应用程序 (Java) 访问 Outlook2003(作为服务启动)
【发布时间】:2012-01-19 09:27:30
【问题描述】:

我想通过运行在 Tomcat 服务器上的 Java 应用程序从本地安装的 Microsoft Outlook 交换电子邮件。 在过去,这不是问题,但由于我们将 tomcat 服务器从“正常”启动例程切换为作为服务启动(出于性能原因这样做),我与 Outlook 的连接不再工作。

由于我在很长一段时间内一直在寻找解决方案(没有找到解决方案),所以我决定在这里留下一个帖子。

我已经知道了,那

Outlook 对象模型不适合在 Windows 服务中运行

可以在http://support.microsoft.com/kb/237913 找到。由于启动服务时未加载注册表配置单元 HKEY_CURRENT_USER。

但在这种情况下,我认为一个简单的“不 - 那是不可能的”不能成为解决方案,这就是我在这里寻求帮助的原因。

  • 例如是否可以让tomcat 上的应用程序启动一个新的本地应用程序,然后连接到Outlook?
  • 是否可以手动加载 HKEY_CURRENT_USER 配置单元?
  • 或者另一方面,通过使用我尚未提及的解决方案来做到这一点?

提前非常感谢!

【问题讨论】:

  • 为什么需要通过outlook?我认为更简洁的设计是直接使用 SMTP 和 IMAP 与邮件服务器通信
  • @Rolf Rander 感谢您的快速回复,通过 Outlook 保持连接是必要的,因为该项目的前提是用户可以上传 Outlook 附带的电子邮件。在这种情况下,我不能保证用户想要上传的每封电子邮件也可以通过 SMTP/IMAP 访问。例如,如果用户以这种方式配置他的 Outlook,则所有电子邮件都被获取,并且没有一个也在线存储。另一个方面是用户是否想上传草稿。
  • 啊,好的。我对windows(或outlook)了解不多,但可能服务在任何用户上下文之外运行(根据定义),但要运行outlook,您需要一个用户上下文(运行像outlook这样的最终用户应用程序服务可能没有意义)。

标签: java tomcat windows-services outlook-2003


【解决方案1】:

您可能需要为 Outlook 创建一个插件,该插件使用网络服务(或类似服务)将电子邮件提交给您的应用程序。

我相信这是实现此类需求的常用方法。

【讨论】:

  • 嗨@Ralf 非常感谢您的帮助。但我相信使用 Outlook 插件无法承受这种情况,因为服务器上运行的应用程序也无法访问它。 :-(
  • 我认为您需要 Outlook 来联系服务器,而不是相反。
猜你喜欢
  • 1970-01-01
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-27
  • 1970-01-01
相关资源
最近更新 更多