Propriedades MAPI de Pesquisa do Outlook: Como Encontrar Itens por ‘PR_MESSAGE_CLASS’
🔍 WiseChecker

Propriedades MAPI de Pesquisa do Outlook: Como Encontrar Itens por ‘PR_MESSAGE_CLASS’

A pesquisa do Outlook funciona bem para encontrar e-mails por remetente ou assunto, mas falha quando você precisa localizar itens por uma propriedade MAPI específica, como PR_MESSAGE_CLASS. Essa propriedade armazena o tipo de mensagem, como IPM.Note para e-mail padrão ou IPM.Appointment para itens de calendário. A pesquisa integrada do Outlook não expõe propriedades MAPI diretamente na caixa de pesquisa. Este artigo explica como usar consultas DASL e Advanced Find para localizar itens por PR_MESSAGE_CLASS.

Principais Conclusões: Pesquisar Itens do Outlook por PR_MESSAGE_CLASS

  • Advanced Find (Ctrl+Shift+F): Permite pesquisar por propriedade MAPI usando a sintaxe de consulta DASL na pasta de pesquisa.
  • Sintaxe de consulta DASL “urn:schemas:httpmail:messageclass”: A tag de propriedade exata para filtrar por PR_MESSAGE_CLASS na pesquisa do Outlook.
  • Pastas de Pesquisa com critérios personalizados: Persista seu filtro PR_MESSAGE_CLASS como uma Pasta de Pesquisa reutilizável que é atualizada automaticamente.

ADVERTISEMENT

Entendendo PR_MESSAGE_CLASS e Propriedades MAPI no Outlook

PR_MESSAGE_CLASS é uma propriedade MAPI que identifica o tipo de um item do Outlook. Cada classe de item segue uma convenção de nomenclatura definida pelo Outlook e complementos de terceiros. Valores comuns incluem IPM.Note para mensagens de e-mail, IPM.Appointment para eventos de calendário, IPM.Contact para contatos e IPM.Task para tarefas. Formulários personalizados e complementos podem registrar suas próprias classes de mensagem, como IPM.Note.CustomForm ou IPM.Post para itens de discussão.

O Outlook armazena essa propriedade internamente, mas não a exibe na interface de pesquisa padrão. A caixa de pesquisa corresponde a campos visíveis como assunto, corpo e nome do remetente. Para consultar PR_MESSAGE_CLASS, você deve usar a sintaxe DASL (DAV Search and Locating) compatível com a caixa de diálogo Advanced Find do Outlook. As consultas DASL visam o namespace MAPI subjacente e podem filtrar qualquer propriedade que o Outlook exponha por meio de seu provedor de pesquisa.

A tag de propriedade para PR_MESSAGE_CLASS em DASL é urn:schemas:httpmail:messageclass. Essa string mapeia diretamente para a propriedade MAPI 0x001A001F para classes de mensagem do tipo string. Ao construir uma consulta DASL, você compara essa propriedade com um valor específico de classe de mensagem usando operadores como EQ, LIKE ou CONTAINS.

Passos para Encontrar Itens por PR_MESSAGE_CLASS Usando Advanced Find

O Advanced Find é a ferramenta integrada do Outlook que suporta consultas DASL. Siga estas etapas para criar um filtro de pesquisa por PR_MESSAGE_CLASS.

  1. Abra o Advanced Find
    Pressione Ctrl+Shift+F no teclado. A caixa de diálogo Advanced Find aparece com as guias Search e Browse.
  2. Vá para a guia Advanced
    Clique na guia Advanced na caixa de diálogo Advanced Find. Esta guia contém os controles Field, Condition e Value para construir uma consulta DASL.
  3. Defina o campo da propriedade MAPI
    Clique no botão Field e selecione All Mail Fields > Message Class se aparecer na lista. Se Message Class não estiver visível, escolha User-defined fields in folder > New Field. Na caixa Name, digite PR_MESSAGE_CLASS, defina Type como Text e clique em OK.
  4. Defina a condição e o valor
    No menu suspenso Condition, selecione contains ou is (exactly). Para correspondências exatas, escolha is (exactly). Na caixa Value, digite a string da classe de mensagem, como IPM.Appointment. Clique em Add to List.
  5. Execute a pesquisa
    Clique em Find Now no topo da caixa de diálogo. O Outlook pesquisa a pasta atualmente selecionada e exibe os itens correspondentes no painel de resultados abaixo.

Para pesquisar em todas as pastas, selecione All Mail and Post Items no menu suspenso Look antes de executar a pesquisa. A guia Advanced suporta múltiplas condições combinadas com lógica And/Or para filtros complexos.

Usando uma Consulta DASL Diretamente no Advanced Find

Se o campo Message Class não aparecer, você pode inserir uma consulta DASL manualmente. Na guia Advanced, clique em Field > All Mail Fields > Message e digite a string da propriedade DASL na caixa Value. Use este formato:

urn:schemas:httpmail:messageclass LIKE '%IPM.Note%'

Substitua IPM.Note pela classe que deseja encontrar. O operador LIKE com sinais de porcentagem corresponde a qualquer classe de mensagem que contenha essa substring. Para uma correspondência exata, remova os sinais de porcentagem e use:

urn:schemas:httpmail:messageclass = 'IPM.Appointment'

ADVERTISEMENT

Criando uma Pasta de Pesquisa Persistente para PR_MESSAGE_CLASS

As Pastas de Pesquisa permitem salvar uma consulta DASL para que o Outlook preencha automaticamente a pasta com itens correspondentes. Isso é útil para monitoramento contínuo de classes de mensagem específicas.

  1. Crie uma nova Pasta de Pesquisa
    Vá para Folder > New Search Folder na faixa de opções. Role até o final da lista e selecione Create a custom Search Folder. Clique em Choose.
  2. Nomeie a pasta
    Na caixa de diálogo Custom Search Folder, digite um nome descritivo, como Itens de Compromisso.
  3. Defina os critérios
    Clique em Criteria e vá para a guia Advanced. Siga os mesmos passos do Advanced Find para adicionar a condição PR_MESSAGE_CLASS. Clique em OK para salvar.
  4. Selecione as pastas a serem pesquisadas
    Na caixa de diálogo Custom Search Folder, clique em Browse para escolher quais pastas a Pasta de Pesquisa monitora. Selecione sua caixa de correio e quaisquer subpastas. Clique em OK duas vezes.

A Pasta de Pesquisa aparece em Search Folders no painel de pastas. O Outlook a atualiza automaticamente conforme novos itens chegam ou são alterados.

Problemas Comuns ao Pesquisar por PR_MESSAGE_CLASS

Advanced Find não retorna resultados mesmo com itens existentes

A causa mais comum é uma string de classe de mensagem incorreta. Verifique o nome exato da classe abrindo um item e executando uma macro VBA para ler sua propriedade PR_MESSAGE_CLASS. Alternativamente, use OutlookSpy ou MFCMAPI para inspecionar o valor da propriedade. Confirme também se a pasta que você está pesquisando contém itens dessa classe. Uma pasta de calendário não conterá itens IPM.Note.

O campo Message Class não aparece na lista de campos

O Outlook oculta certas propriedades MAPI do seletor de campos. Crie um campo definido pelo usuário chamado PR_MESSAGE_CLASS conforme descrito nas etapas acima. O campo mapeia para a propriedade MAPI correta quando você o adiciona.

A Pasta de Pesquisa não é atualizada após adicionar novos itens

Atrasos na indexação podem fazer com que uma Pasta de Pesquisa pareça vazia. Aguarde a conclusão da indexação do Windows Search. Para forçar uma atualização, clique com o botão direito na Pasta de Pesquisa e selecione Update Folder. Se o problema persistir, reconstrua o índice de pesquisa em File > Options > Search > Indexing Options > Advanced > Rebuild.

Item Advanced Find (Pesquisa Única) Pasta de Pesquisa (Persistente)
Descrição Filtro temporário usando Ctrl+Shift+F Consulta salva que atualiza automaticamente
Tempo de configuração Menos de 2 minutos 5 minutos com seleção de pasta
Reutilização Deve recriar cada vez Persiste até ser excluída
Melhor para Investigações pontuais Monitoramento contínuo de classes de mensagem
Método de consulta DASL Inserção manual ou seletor de campo Guia Advanced da caixa de diálogo Criteria

Pesquisar por PR_MESSAGE_CLASS oferece controle preciso sobre quais tipos de itens do Outlook aparecem nos resultados. Use o Advanced Find para consultas únicas e Pastas de Pesquisa para filtros recorrentes. Você pode estender a mesma técnica para outras propriedades MAPI, como PR_SENDER_NAME ou PR_SUBJECT, usando suas tags DASL correspondentes. Para automação avançada, considere escrever uma macro VBA que execute um filtro DASL em um temporizador ou em resposta a um evento de alteração de pasta.

ADVERTISEMENT