Агент транспорта Exchange — создание элемента почты

Я пишу транспортный агент Exchange и, кажется, все понял с точки зрения его фактической разработки. Но теперь пришло время для тестирования, и я столкнулся с проблемой.

Я прослушиваю событие OnEndOfData, чтобы просмотреть всю электронную почту. Электронное письмо приходит упакованным в объект EndOfDataEventArgs, который содержит объект MailItem. Именно этот объект MailItem содержит электронное письмо и вызывает проблему. Я хочу создать объект MailItem, чтобы я мог проверить, что все работает должным образом, когда получено электронное письмо. Но пока мне это не удалось.

Обратите внимание, что это объект Microsoft.Exchange.Data.Transport.MailItem, а не Microsoft.Office.Interop.Outlook.MailItem. Таким образом, использование Application.CreateItem() не будет работать.

MailItem является абстрактным, поэтому я попытался создать его подкласс. Но при компиляции выяснилось, что MailItem содержит ряд абстрактных внутренних свойств и/или методов. Таким образом, поскольку я должен переопределить их, но не могу этого сделать из-за невозможности их увидеть, этот подход не работает.

Есть ли какой-то заводской метод, который мне не хватает? Есть ли какой-то встроенный класс, расширяющий MailItem, который я упустил? Или просто нет способа создать MailItem вне библиотек DLL агента транспорта Exchange?


person user2879372    schedule 14.10.2013    source источник


Ответы (2)


Не уверен, что вы хотите создать объект mailiitem для тестирования. Пожалуйста, сообщите цель разработки агента, чтобы мы могли помочь вам лучше. Объект mailitem представляет отправленное электронное письмо, и вы сможете получить большую часть деталей электронного письма. из объекта mailitem в зависимости от события, на которое вы нацелены при отладке агента.

person Vivek Madhav    schedule 19.10.2013

В большинстве сценариев используется только MailItem.Message и не нужны никакие другие свойства самого MailItem. Поскольку EmailMessage можно легко создать, возможно, вы сможете использовать его для тестирования.

Ваш реальный обработчик событий может просто вызвать метод, указывающий MailItem.Message, и для тестирования вы можете вызвать этот же метод с созданным вами тестовым сообщением.

person maf-soft    schedule 07.11.2019