
汎用 IMAP サーバーに接続しているときに、Outlook でメッセージ ID で検索する方法はありますか? または、ダウンロードした .pst ファイルでメッセージ ID を検索する方法はありますか? これについてかなり検索しましたが、Exchange ではなく Outlook だけでこれを行う方法は見つかりませんでした。
答え1
次の 3 つのオプションがあります。
選択したフォルダーのみを検索します。現在のフォルダー ビューをカスタマイズするか、新しいフォルダー ビューを作成するには、[フィルター] をクリックして、設定の [SQL] タブに移動します。[これらの条件を直接編集する] チェック ボックスをオンにして、次のように入力します。
http://schemas.microsoft.com/mapi/proptag/0x1035001F = 'message-id-to-search'
これにより、メッセージ リストが「message-id-to-search」メッセージ ID を持つメッセージに制限されます。
詳細検索。そのためには、VBA マクロを作成する必要があります。幸いなことに、マクロの長さは 2 つの関数だけです。Outlook VBA エディター ( ALT+ F11) で、Project1 -> Microsoft Outlook Objects -> ThisOutlookSession を開き、少なくとも 2 つの 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 ルールを使用します。つまり、「メッセージ ヘッダーに特定の単語がある」というルールです。これらのルールを無効にして、見つかったメッセージをコピーしたり、フラグやカテゴリでタグ付けしたりする必要がある場合は手動で実行します。実行する前に、検索するメッセージ ID を編集することを忘れないでください。