我正在开发一个数据库项目,我需要创建Outlook 2007插件,将当前预览的消息保存到我的数据库中.
有人可以给我一个关于如何在Delphi中创建Outlook插件的分步指南,以及如何部署它?
谢谢
加载项Express看起来不错.
如果你只是想学习并了解如何做到这一点,只需google for Delphi Outlook addin(我很确定"addin"应该比你在这个上下文中的"插件"给你更多相关的结果)你应该想出一个稍微过时但仍然正式正确的样本插件的数量,例如来自Dmitry Streblechenko 的Babelfish插件(它不再有用,因为它依赖的Web服务不再存在但仍然显示基础)或来自Paul Qualls的样本插件(这是遗憾的是,原始网站不再提供).还有一个完整来源的邮件白名单插件,但我还没看过.
但是,迟早你会想要开始使用像ADX这样经过验证的框架,特别是如果你的插件将在公司外部使用.我们在Delphi中开发了一个共享软件插件,并且插件中大约75%的代码只是为各种版本的Outlook(特别是Outlook XP)和不同的设置提供支持(最值得注意的是使用Word进行消息编辑的选项已经对我们来说是一个主要的表格.
另一个因素是必须不断解决愚蠢的OOM安全模型.在没有Redemption或Outlook Security Manager的情况下,你几乎被破坏了.特别是不能高度推荐赎回,这不仅是为了避免安全提示,而且是为了简化过多繁琐的常规任务,并拥有自己的稳固,易用的框架.
[补充:]我们确实从我们自己开发的本土框架开始,所有用户都很好,直到用户数量和支持爆炸的不同配置数量.我们大约一年前切换到ADX,从未回头.从一开始就使用Redemption是一个明智的选择 - 在我们开始之前要么花几个月或者花几个月学习扩展MAPI(你仍然倾向于选择更容易,因为一旦Redemption引导你超过前几个障碍).
BTW:对于任何自尊的插件开发人员(无论使用何种编程语言),另一个不可或缺的工具是OutlookSpy.这将真正允许您查看(并操纵)Outlook内部(以及某种程度上的Exchange)发生的事情,并让您更好地了解您的插件必须做什么才能达到您想要的效果.
我使用Delphi构建了一个outlook加载项(将房间预订系统集成到约会表单中).
一些忠告:
购买和使用加载快递.它将为您节省大量时间,并允许您构建在安装时不需要任何第三方组件的COM加载项.我们首先尝试构建我们自己的组件,虽然我们设法将按钮放在表单上,但是花费的时间与结果不成比例.
如有疑问,请使用加载项快速支持服务.他们知道他们的东西.
outlook的COM接口(在delphi/ocx/servers /文件夹中找到)是你的朋友.Add-In Express仅提供围绕此功能的(更多)更方便的包装器.
要避免的事情:
直接MAPI调用.它可以完成,事实上我不得不求助它来修改传输中的消息流,但它是一个真正的PITA,可以使用并且记录很差.
一次性表格.我们浪费了大量时间来尝试使用一次性表格.仅使用已发布的表单.您可以从代码中将表单发布到本地文件夹,因此在实践中这不是什么大问题.更好的是使用表单区域,这是扩展表单的最强大的方式.
假装像Delphi中的COM就像普通的VCL编程一样.如果您没有COM经验,我的建议是阅读您可以获得的任何和所有文档.一些经验丰富的经验教训是在函数结束之前始终将变量设置为nil,这样对象可以被outlook正确释放,并始终从对象请求适当的接口而不是尝试转换它.
我用Delphi创建了一个用于Excel(创建我自己的用户自定义函数)的插件.你需要的是一个实现_IDTExtensibility2接口的Addin.
现在我不知道确切的步骤,但搜索_IDTExtensibility2会对你有所帮助.
检查这篇文章是否有一个很好的方法._IDTExtensibility2接口的OnConnection过程为您提供了Outlook应用程序的条目.