
Есть ли способ поиска по message-id в Outlook, когда он подключен к общему серверу IMAP? Или есть ли способ поиска message-id в загруженном файле .pst? Я провел довольно много поисков по этому вопросу, но не нашел способа сделать это только с Outlook, а не с Exchange.
решение1
У вас есть три варианта:
Поиск только в выбранной папке.Настройте текущий вид папки или создайте новый, нажмите «Фильтр» и перейдите на вкладку «SQL» в его настройках. Установите флажок «Изменить эти критерии напрямую» и введите следующее:
http://schemas.microsoft.com/mapi/proptag/0x1035001F = 'message-id-to-search'
это ограничит список сообщений сообщениями, имеющими идентификатор сообщения «message-id-to-search».
Расширенный поиск.Для этого вам нужно будет создать макрос VBA. Хорошие новости, что он состоит всего из двух функций. В редакторе Outlook VBA ( ALT+ F11) откройте Project1 -> Microsoft Outlook Objects -> ThisOutlookSession и создайте как минимум два Sub. Что-то вроде этого:
Private Sub Application_AdvancedSearchComplete(ByVal SearchObject As Search) If SearchObject.Tag = "MessageId" Then Set Results = SearchObject.Results MsgBox "Message-ID search complete. " & Results.Count & " result(s) found." For i = 1 To Results.Count Results.Item(i).Display Next End If End Sub Public Sub SearchMessageId() Set Folder = Session.PickFolder If Not Folder Is Nothing Then r = MsgBox("Include subfolders?", vbYesNoCancel, "Search by Message-ID") If r <> vbCancel Then MessageId = InputBox("Message-ID:") If MessageId <> "" Then Application.AdvancedSearch "'" & Folder.FolderPath & "'", "http://schemas.microsoft.com/mapi/proptag/0x1035001F = '" & MessageId & "'", r = vbYes, "MessageId" End If End If End If End Sub
Используйте правила Outlook.Я имею в виду правила "с определенными словами в заголовке сообщения". Отключите их и запускайте вручную, когда нужно скопировать найденные сообщения или пометить их флагом и/или категорией. Не забудьте отредактировать message-id для поиска перед каждым запуском!
решение2
Невозможно выполнить поиск по message-id в Outlook с помощью мгновенного поиска или расширенного поиска. Все, что я могу придумать, это использовать правила Outlook с "С определенными словами в заголовке сообщения". Замените "определенные слова" на message-id, который вы хотите найти. Возможно, стоит выделить письмо, скопировав/переместив его в определенную папку.