2013-08-21 4 views
1

Мы создаем систему управления связью поверх Outlook. Одной из важных задач, которые мы хотим достичь, является получение всех сообщений (.msg-файлов?) В том же потоке вместе с их вложениями и их размещение в одной и той же папке внутри репозитория CMS.Извлечение всех сообщений Outlook в одном потоке

Проблема, с которой мы сталкиваемся, - это то, как мы знаем программно, что конкретное сообщение (или файл .msg?) И вложение относится к конкретному потоку.

Скажем, для первого сообщения мы создаем папку в репозитории. Затем мы хотим, чтобы все сообщения (вместе с вложениями) были отправлены в качестве ответа на исходное сообщение для автоматического перехода в ту же папку.

Я попытался найти, если их заголовок установлен в .msg-файле, чтобы определить поток, но ничего не нашел.

Но все еще интересно, как клиент Outlook может отображать сообщения, упорядоченные как иерархия потоков связи. Поэтому должен быть какой-то способ, чтобы мы могли получить эту информацию, хранящуюся где-нибудь. Я просто хочу знать, как я могу получить к нему доступ.

+0

Я считаю, что перспективы использует текст в сообщение Тема для группы электронных писем разговоры. Поскольку он сгруппировал не относящиеся к делу электронные письма вместе с пустыми темами электронной почты в моем Outlook 2010. – PatricK

+0

, так что значит, если мы изменим строку темы при написании ответа, она не будет группировать этот конкретный ответ в том же потоке? – Mahesha999

+0

Он не группировался, когда я отвечаю на изменение текста темы. Но когда я изменяю тему измененного ответа, он не сгруппировал его с первым. Логика может быть, если текущий субъект отличается от субъекта в ответе, он будет рассматривать его как новое сохранение. – PatricK

ответ

0

Используйте PR_CONVERSATION_INDEX свойство (вы можете увидеть его в OutlookSpy, если нажать на кнопку IMessage)
отслеживания Разговор документирована на MSDN: http://msdn.microsoft.com/en-us/library/office/cc765583.aspx

+0

Эй, извините за поздний отклик. Я возился с тем, что вы указали мне, и, похоже, это работает. Однако вы можете просто объяснить, где хранится этот 'PR_CONVERSATION_INDEX'? В файле '.msg'? На сервере Exchange/Outlook клиента? Просто хочу знать, могу ли я получить доступ к этому же свойству, используя некоторую библиотеку Java. – Mahesha999

+0

PR_CONVERSATION_INDEX является одним из свойств MAPI. Вы можете увидеть его в OutlookSpy (http://www.dimastr.com/outspy) - нажмите кнопку «Сообщение». –

+0

Значит, он не хранится в '.msg' файле? Или в каком-то зашифрованном файле Outlook? или в обменном сервере? Я мог бы казаться глупым здесь. Но ** действительно хочу знать о физическом хранилище не только о том, как получить к нему доступ **. Также я новичок в MAPI, поэтому не знаю, где эти свойства MAPI фактически хранятся и извлекаются из ...... – Mahesha999

1

Сохранение группировки указано в заголовке сообщения: «Message-ID:», «Ссылки:» & «В ответ на:» вы можете просмотреть его с помощью Outlook VBA с помощью функции ниже, которую я нашел ранее.

Private Function GetInetHeaders(olkMsg As Outlook.MailItem) As String 
    ' Purpose: Returns the internet headers of a message.' 
    ' Written: 4/28/2009' 
    ' Author: BlueDevilFan' 
    ' Outlook: 2007' 
    Const PR_TRANSPORT_MESSAGE_HEADERS = "http://schemas.microsoft.com/mapi/proptag/0x007D001E" 
    Dim olkPA As Outlook.PropertyAccessor 
    Set olkPA = olkMsg.PropertyAccessor 
    GetInetHeaders = olkPA.GetProperty(PR_TRANSPORT_MESSAGE_HEADERS) 
    Set olkPA = Nothing 
End Function 
+0

эй, я попробую это и вернусь, но может потребоваться некоторое время с того момента, когда моя среда внезапно опустилась. – Mahesha999

Смежные вопросы