1

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

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

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

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

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

4

2 回答 2

0

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

于 2013-10-19T11:11:19.940 回答
0

大多数场景只使用MailItem.Message,不需要MailItem自身的任何其他属性。由于EmailMessage可以轻松创建,也许您可​​以将其用于测试。

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

于 2019-11-07T17:28:57.667 回答