我一直在写一个Exchange传输代理,我似乎已经在实际开发它的过程中解决了所有的问题。但现在是测试的时候了,我遇到了一个问题。
我正在收听OnEndOfData事件,这样我就可以查看整个电子邮件了。电子邮件包装在一个EndOfDataEventArgs对象中,该对象包含一个MailItem对象。正是这个MailItem对象包含了电子邮件,并导致了这个问题。我想要构造一个MailItem对象,这样我就可以测试当收到电子邮件时,一切都能按预期操作。但到目前为止,我还无法做到这一点。
注意,这是一个Microsoft.Exchange.Data.Transport.MailItem对象,而不是 Microsoft.Office.Interop.Outlook.MailItem。因此,使用Application.CreateItem()将无法工作。
MailItem是抽象的,所以我尝试将它子类化。但编译后发现,MailItem包含许多抽象的内部属性和/或方法。因此,由于我必须重写它们,但由于无法看到它们,所以不能这样做,所以这种方法不起作用。
有什么工厂的方法我错过了吗?有什么内置类可以扩展MailItem,我忽略了吗?还是根本没有办法从Exchange传输代理DLL之外创建MailItem?
发布于 2013-10-19 11:11:19
不确定您是否要为testing.pls创建mailitem对象,告诉您开发代理的目的,以便我们可以帮助u better.mailitem对象表示发送的电子邮件,并且您将能够从mailitem对象获取邮件的大部分细节,这取决于调试代理的目标事件。
发布于 2019-11-07 17:28:57
大多数场景只使用MailItem.Message,不需要MailItem本身的任何其他属性。由于EmailMessage可以很容易地创建,也许您可以使用它来进行测试。
真正的事件处理程序可以只调用指定MailItem.Message的方法,而对于测试,您可以使用构建的测试消息调用相同的方法。
https://stackoverflow.com/questions/19363336
复制相似问题