如何使用Delphi解析和删除发件箱中的本地MAPI消息库消息

时间:2012-05-11 04:44:54

标签: delphi mapi

我有一个使用Outlook发送到通讯组列表的第三方应用程序。我认为这是使用扩展MAPI完成的。如果生成大量邮件,Outlook可能会挂起,我想创建一个服务,读取存储在MessageStore的发件箱中的邮件,通过SMTP网关发送电子邮件,并从发件箱中删除已发送的邮件。所有这一切都应该在不需要运行Outlook的情况下完成 - 但仍然会安装Outlook。

我想知道我刚才描述的内容是如何在不使用任何第三方商业组件的情况下使用Delphi完成的。我已经研究了很多天但找不到任何示例代码或示例。虽然有很多简单MAPI的代码。感谢任何指针。 :)

2 个答案:

答案 0 :(得分:2)

您需要的是Outlook自动化,您需要查看已经提到的Dmitry的Outlook对象模型。

有关Outlook对象模型的文档可在MSDN上找到:http://msdn.microsoft.com/en-us/library/aa221870(v=office.11).aspx

这应该让您开始从任何应用程序自动化Outlook:http://msdn.microsoft.com/en-us/library/aa209963(v=office.11).aspx是的,它是关于从Visual Basic应用程序自动化Outlook,但无论您使用哪种环境来自动化Outlook,概念都是相同的。

Deborah Pate的网站虽然似乎不再定期更新,但仍然保留了有关Delphi中任何Office应用程序自动化的非常有价值的信息:http://www.djpate.freeserve.co.uk/Automation.htm

从那里开始,这个问题将帮助您开始寻找发件箱:Outlook Object Model - Detecting Mailboxes

答案 1 :(得分:1)

Outlook会异步发送消息,因此我认为问题是使用Outlook对象模型(在主Outlook线程上发生)的第三方应用生成消息。提交消息后,将以异步方式发送消息。