【问题标题】:How to use Delphi to parse and delete local MAPI messagestore messages in the Outbox如何使用 Delphi 解析和删除发件箱中的本地 MAPI 消息库消息
【发布时间】:2012-05-11 04:44:53
【问题描述】:

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

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

【问题讨论】:

    标签: delphi mapi


    【解决方案1】:

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

    MSDN 上提供了有关 Outlook 对象模型的文档: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

    【讨论】:

    • 感谢您的详细回答。我的解决方案需要在没有 Outlook 在后台运行的情况下工作。我设法在这个网站上找到了扩展的 MAPI 代码 - evocorp.com/Delphi/ADDExtendedMapi.htm 但是,虽然它可以枚举发件箱中的邮件,但我无法从发件箱中删除邮件。不过它可以从收件箱中删除邮件。
    【解决方案2】:

    Outlook 异步发送消息,所以我认为问题是第三方应用程序使用 Outlook 对象模型生成消息(发生在 Outlook 主线程上)。一旦消息被提交,它们将被异步发送。

    【讨论】:

    • 谢谢。即使没有运行 Outlook,第三方应用程序也能够生成消息。 Outlook 对象模型是否以这种方式工作?
    猜你喜欢
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    • 2016-09-21
    • 2021-05-03
    • 2020-02-04
    • 2011-12-29
    • 2013-02-10
    • 2021-05-13
    相关资源
    最近更新 更多