11

我正在处理一个数据库项目,我需要创建 Outlook 2007 插件,将当前预览的消息保存到我的数据库中。

有人可以给我一个关于如何在 Delphi 中创建 Outlook 插件以及如何部署它的分步指南吗?

谢谢

4

5 回答 5

12

Add-in Express看起来不错。

于 2008-10-18T21:59:52.680 回答
12

如果你只是想学习和理解如何去做,只需谷歌搜索 Delphi Outlook 插件(我很确定在这种情况下,“插件”应该比“插件”给你更多相关的结果),你应该想出一个一些稍微过时但仍然正式正确的示例插件的数量,例如来自 Dmitry Streblechenko 的Babelfish 插件(它不再有用,因为它所依赖的 Web 服务不再存在但仍然显示基础知识)或来自 Paul Qualls 的示例插件(这是不幸的是,原始网站不再提供)。还有一个带有完整源代码的邮件白名单插件,但我还没有看过。

但是,您迟早想要开始使用经过验证的框架,例如ADX,尤其是当您的插件将在公司之外使用时。我们在 Delphi 中开发了一个共享软件插件,插件中大约 75% 的代码只是为了支持各种版本的 Outlook(尤其是 Outlook XP)和不同的设置(最值得注意的是使用 Word 进行消息编辑的选项已经对我们来说是主要的食客)。

另一个因素是必须不断解决愚蠢的 OOM 安全模型。如果没有RedemptionOutlook 安全管理器,您几乎会失败。赎回尤其不能被高度推荐,不仅是为了避免安全提示,而且为了简化大量繁琐的日常任务,并拥有一个可靠、易于使用的框架。

[补充:] 我们确实从我们自己的本土框架开始,并且一切都很好,直到用户数量和他们支持的不同配置的数量爆炸式增长。大约一年前,我们切换到 ADX,并且从未回头。不过,从一开始就使用 Redemption 是一件轻而易举的事 - 要么就是这样,要么在我们开始之前花几个月的时间学习 Extended MAPI(一旦 Redemption 指导你完成了前几个障碍)。

顺便说一句:对于任何自尊的插件开发人员(无论使用何种编程语言)来说,另一个不可或缺的工具是OutlookSpy。这将真正让您查看(和操作)Outlook(以及在某种程度上 Exchange)内部发生的事情,并让您更好地了解插件必须做什么才能达到您想要的效果。

于 2008-11-05T14:46:08.657 回答
9

我使用 Delphi 构建了一个 Outlook 插件(将房间预订系统集成到预约表格中)。

一些忠告:

  • 购买和使用插件快递。它将为您节省大量时间,并且允许您构建在安装时不需要任何第三方组件的 COM 插件。我们首先尝试构建自己的组件,尽管我们设法将按钮放在执行某些操作的表单上,但花费的时间与结果不成比例。
  • 如有疑问,请使用插件快速支持服务。他们知道他们的东西。
  • Outlook 的 COM 接口(位于 delphi/ocx/servers/ 文件夹中)是您的朋友。Add-In Express 仅围绕此功能提供(更)方便的包装器。

要避免的事情:

  • 直接的 MAPI 调用。它可以做到,事实上我不得不求助于它来修改传输中的消息流,但它是一个真正的 PITA 可以使用并且文档非常少。
  • 一次性表格。我们浪费了很多时间试图让一次性表格发挥作用。仅使用已发布的表格。您可以通过代码将表单发布到本地文件夹,因此实际上这没什么大不了的。更好的是使用表单区域,这是扩展表单最强大的方式。
  • 在 Delphi 中伪装成 COM 就像普通的 VCL 编程一样。如果您没有 COM 经验,我的建议是阅读您可以获得的所有文档。一些来之不易的教训是始终在函数结束之前将变量设置为 nil,以便 Outlook 可以正确释放对象,并且始终从对象请求适当的接口而不是尝试强制转换它。
于 2008-10-21T19:56:50.340 回答
5

我创建了一个插件,用于使用 Delphi 在 Excel(创建我自己的用户定义函数)中使用。您需要的是一个实现 _IDTExtensibility2 接口的插件。

现在我不知道确切的步骤,但搜索 _IDTExtensibility2 会对您有很大帮助。

查看这篇文章以获得一个很好的方法。_IDTExtensibility2 接口的 OnConnection 过程为您提供了 Outlook 应用程序的入口。

于 2008-10-21T18:54:31.993 回答
-1

糟糕的是,这项工作必须在 Delphi 中完成。与糟糕的过去相比,使用 .NET 和 VSTO 创建 Outlook 插件的痛苦要小得多。我在 COM(一点也不好玩)和以前版本的 VSTO 中制作了 Office 插件,但 VSTO 3 对 Office 开发人员来说是个好消息。

于 2008-10-21T20:01:34.183 回答