Я пишу транспортный агент Exchange и, кажется, все понял с точки зрения его фактической разработки. Но теперь пришло время для тестирования, и я столкнулся с проблемой.
Я прослушиваю событие OnEndOfData, чтобы просмотреть всю электронную почту. Электронное письмо приходит упакованным в объект EndOfDataEventArgs, который содержит объект MailItem. Именно этот объект MailItem содержит электронное письмо и вызывает проблему. Я хочу создать объект MailItem, чтобы я мог проверить, что все работает должным образом, когда получено электронное письмо. Но пока мне это не удалось.
Обратите внимание, что это объект Microsoft.Exchange.Data.Transport.MailItem, а не Microsoft.Office.Interop.Outlook.MailItem. Таким образом, использование Application.CreateItem() не будет работать.
MailItem является абстрактным, поэтому я попытался создать его подкласс. Но при компиляции выяснилось, что MailItem содержит ряд абстрактных внутренних свойств и/или методов. Таким образом, поскольку я должен переопределить их, но не могу этого сделать из-за невозможности их увидеть, этот подход не работает.
Есть ли какой-то заводской метод, который мне не хватает? Есть ли какой-то встроенный класс, расширяющий MailItem, который я упустил? Или просто нет способа создать MailItem вне библиотек DLL агента транспорта Exchange?