Exchange传输代理 - 创建MailItem

时间:2013-10-14 15:07:45

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

我一直在编写一个Exchange传输代理,我似乎已经在实际开发它的过程中弄明白了。但现在是时候进行测试了,我遇到了问题。

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

请注意,这是Microsoft.Exchange.Data.Transport.MailItem对象, Microsoft.Office.Interop.Outlook.MailItem。因此,使用Application.CreateItem()将无法正常工作。

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

我遗失了哪些工厂方法吗?是否有一些内置类扩展了我忽略的MailItem?或者根本无法从Exchange传输代理DLL外部创建MailItem?

2 个答案:

答案 0 :(得分:0)

不确定yu是否要为testing.pls创建mailiitem对象告诉开发代理的目的,以便我们可以帮助你更好.mailitem对象代表发送的电子邮件,你将能够获得大部分细节来自mailitem对象的电子邮件,具体取决于调试代理的目标事件。

答案 1 :(得分:0)

大多数方案仅使用MailItem.Message,并且不需要MailItem本身的任何其他属性。由于EmailMessage可以轻松创建,因此也许您可以仅使用它进行测试。

您的真实事件处理程序可以只调用指定MailItem.Message的方法,而对于测试,您可以在构造的测试消息中调用相同的方法。