从delphi控制邮件客户端

时间:2010-10-13 10:39:31

标签: delphi outlook outlook-addin mapi

我在这里有一个问题,我们需要从Embarcadero Delphi 2010控制Outlook。

我们今天使用了一些第三方组件来打开邮件发送窗口,这可以解决一些时间问题。但现在它似乎在较新的Outlook版本上失败了。

是否有任何组件专门用于控制Delphi的Outlook,或者是否有任何MAPI客户端可以作为更好的替代品。

我们需要做的基本上是: 1.在Outlook中启动新邮件(将收件人作为参数发送) 2.接收已发送的消息,以便我们存储它 3.将Outlook中的消息拖放到我们的应用程序中。

如果最终用户不使用outlook,则正常的MAPI就足以作为替换。

我在哪里找到一个很好的健壮组件来为我做这样的工作?

2 个答案:

答案 0 :(得分:5)

对于前两个步骤,使用与Delphi捆绑在一起的Outlook2000.pas单元的常规OLE自动化应该可以正常工作,但您可能需要查看Dmitry Streblechenko的Redemption库:http://dimastr.com/redemption/这简化了许多更低级别(扩展)MAPI任务显着。

要拦截已发送的邮件,您应创建TItems的实例,并将其连接到您可以从OutlookApplication.Session.GetDefaultFolder(olFolderSentMail)获取的文件夹参考。然后,您可以为其OnItemAdd事件分配事件处理程序。

对于阻力&从Outlook下载到您的应用程序中,您可以查看Anders Melanders优秀(和免费)Drag& Drop库(包括与Outlook交互的示例):http://melander.dk/delphi/dragdrop/

答案 1 :(得分:1)

我很久以前就已经使用过这些组件而且非常棒

http://www.add-in-express.com/add-in-delphi/

以下是Outlook的一些功能

http://www.add-in-express.com/add-in-delphi/programming-outlook.php