ConversationID для MailItem в разных версиях Outlook

Я работаю над плагином Outlook, который регистрирует почту в нашей системе. Нам нужна одна запись на каждый почтовый поток / цепочку. Мы разрабатываем 2 версии (для Outlook 2003 и 2010) плагинов.

В Outlook 2010 я использую свойство ConversationID элемента MailItem для идентификации потока сообщений. Насколько безопасно использовать это свойство? Один и тот же идентификатор разговора для mailthread независимо от версии сервера обмена?

Для Outlook 2003 этого свойства не нахожу. Я вижу свойство ConversationIndex. Это можно как-нибудь использовать?

Некоторые из наших пользователей будут использовать 2003, а некоторые будут использовать 2010, идентификатор, который мы используем для цепочки писем, должен быть одинаковым в разных версиях Outlook.


person Onkar    schedule 24.10.2013    source источник


Ответы (2)


PR_CONVERSATION_INDEX Свойство MAPI использовалось еще в Outlook 97, если я правильно помню.

В объектной модели Outlook 2003 это свойство не раскрывается, но оно все еще присутствует на уровне MAPI. Поскольку PropertyAccessor не был доступен до Outlook 2007, вам доступны следующие варианты: CDO 1.21 или Redemption.

person Dmitry Streblechenko    schedule 24.10.2013

Вот что я думаю сделать, чтобы идентифицировать разговоры, зарегистрированные в нашей системе, из Outlook.

Outlook 2003 -

Используйте (первые 44 символа ConversationIndex) + идентификатор пользователя. Мне пришлось добавить идентификатор пользователя, поскольку индекс разговора для одной и той же почтовой цепочки может отличаться для разных пользовательских машин.

Outlook 2010 -

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

Пожалуйста, поправьте меня, если я чего-то упускаю.

person Onkar    schedule 29.10.2013