【问题标题】:Exchange Transport Agent - Creating a MailItemExchange 传输代理 - 创建 MailItem
【发布时间】:2019-11-08 01:28:57
【问题描述】:

我一直在编写一个 Exchange 传输代理,而且我似乎已经弄清楚了实际开发它的一切。但是现在是测试的时候了,我遇到了一个问题。

我正在监听 OnEndOfData 事件,以便查看整个电子邮件。电子邮件到达时包装在 EndOfDataEventArgs 对象中,该对象包含 MailItem 对象。正是这个包含电子邮件的 MailItem 对象导致了问题。我想构造一个 MailItem 对象,这样我就可以测试收到电子邮件时一切是否按预期运行。但到目前为止,我一直无法这样做。

请注意,这是一个 Microsoft.Exchange.Data.Transport.MailItem 对象,不是 Microsoft.Office.Interop.Outlook.MailItem。因此,使用 Application.CreateItem() 将不起作用。

MailItem 是抽象的,所以我尝试对它进行子类化。但在编译后,发现 MailItem 包含许多抽象的内部属性和/或方法。因此,由于我必须覆盖它们,但由于无法看到它们而无法这样做,因此这种方法不起作用。

是否有一些我缺少的工厂方法?是否有一些内置类扩展了我忽略的 MailItem?还是根本无法从 Exchange 传输代理 DLL 外部创建 MailItem?

【问题讨论】:

    标签: c# exchange-server exchange-transport-agents


    【解决方案1】:

    不确定您是否要创建一个 mailiitem 对象进行测试。请告诉开发代理的目的,以便我们可以更好地帮助您。mailitem 对象代表发送的电子邮件,您将能够获得大部分详细信息来自 mailitem 对象的电子邮件取决于您调试代理时所针对的事件。

    【讨论】:

      【解决方案2】:

      大部分场景只使用MailItem.Message,不需要MailItem本身的任何其他属性。由于EmailMessage 可以很容易地创建,也许您可​​以将其用于测试。

      您的真实事件处理程序可以只调用指定MailItem.Message 的方法,并且为了测试,您可以使用构造的测试消息调用相同的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-05
        • 2014-12-06
        • 1970-01-01
        相关资源
        最近更新 更多