
- Categorias de Propriedades MAPI
- Listando Todas as Propriedades MAPI
- Listando Propriedades Nomeadas MAPI
- Recuperando Propriedades por Descritor
- Recuperando Propriedades por Tag
- Usando o Método GetProperty
- Trabalhando com Propriedades Personalizadas
Gerenciar dados de e-mail programaticamente pode ser complexo, especialmente quando se lida com as propriedades da Interface de Programação de Aplicativos de Mensagens (MAPI). Essas propriedades são atributos ou metadados associados a objetos MAPI, como mensagens, pastas, destinatários e outros componentes em um sistema de mensagens. Essas propriedades fornecem informações detalhadas sobre o objeto, como o assunto de um e-mail, o endereço do remetente, a data em que um e-mail foi enviado e mais. As propriedades MAPI são amplamente utilizadas em clientes de e-mail e outras aplicações de mensagens para gerenciar e manipular dados de e-mail. Este artigo se aprofunda em várias técnicas para acessar, enumerar e manipular propriedades MAPI usando Aspose.Email para .NET.
API .NET para Gerenciar Propriedades MAPI em C#
Aspose.Email para .NET fornece suporte abrangente para manipulação de propriedades da Interface de Programação de Aplicativos de Mensagens, permitindo que os desenvolvedores gerenciem e manipulem dados de e-mail com controle detalhado. É também uma API extensa que permite que os desenvolvedores equipem suas aplicações de e-mail com recursos robustos para processamento de mensagens e outras tarefas relacionadas.
Usando o Aspose.Email para .NET, os desenvolvedores podem criar soluções sofisticadas de gerenciamento e processamento de e-mail. Para começar a utilizar a biblioteca, você pode baixá-la do site da Aspose ou NuGet e integrá-la ao seu projeto.
Categorias de Propriedades MAPI
Certifique-se de que você tem o Aspose.Email em seu projeto e vamos começar. As propriedades MAPI podem ser categorizadas em três tipos principais: propriedades padrão, propriedades nomeadas e propriedades personalizadas (definidas pelo usuário). Cada categoria serve a um propósito diferente e fornece diferentes níveis de flexibilidade e controle para os desenvolvedores que trabalham com dados de e-mail. Aqui está uma visão geral de cada tipo:
Propriedades Padrão
Definidas pela especificação MAPI, possuem tags de propriedades predefinidas e são comumente usadas para atributos padrão de objetos de mensagens. Por exemplo:
- PR_SUBJECT: O assunto da mensagem.
- PR_SENDER_NAME: O nome do remetente.
- PR_DELIVER_TIME: A data e hora em que a mensagem original foi entregue.
Propriedades Nomeadas
Identificadas por um GUID e um nome de string ou um identificador inteiro, essas propriedades permitem uma categorização e identificação mais específicas além das propriedades padrão.
Propriedades Personalizadas (Definidas pelo Usuário)
Definidas pelos desenvolvedores, elas estendem a funcionalidade dos objetos MAPI, permitindo um tratamento de dados personalizado e específico para a aplicação.
Listando Todas as Propriedades MAPI
Para listar todas as propriedades MAPI em uma mensagem, usaremos o método MapiMessage.Load para carregar a mensagem e iterar sobre suas propriedades. O exemplo de código abaixo demonstra como carregar uma mensagem MAPI, iterar através de suas propriedades e imprimir informações detalhadas sobre cada propriedade usando Aspose.Email para .NET:
- Carregue o arquivo de mensagem MAPI do caminho especificado.
- Itere sobre a coleção
msg.Properties.Values
para acessar cada propriedade. - Para cada propriedade MAPI, imprima sua tag, nome canônico e tipo de dado:
- A propriedade Tag fornece o identificador exclusivo para a propriedade MAPI.
- A propriedade Descriptor.CanonicalName fornece o nome legível por humanos da propriedade.
- A propriedade Descriptor.DataType indica o tipo de dado da propriedade.
Listando Propriedades Nomeadas MAPI
Enquanto as propriedades MAPI regulares são identificadas por uma tag de propriedade de 16 bits que consiste em um tipo de propriedade e um identificador de propriedade, as propriedades nomeadas são identificadas por uma combinação de um GUID e um nome de string ou um identificador inteiro:
- GUID (Identificador Global Único): Um identificador único que garante que o conjunto de propriedades seja único. Este GUID é geralmente fornecido pelo desenvolvedor.
- Nome ou ID:
- Um nome de string (sensível a maiúsculas e minúsculas).
- Um identificador inteiro de 32 bits.
O trecho de código a seguir demonstra como usar o Aspose.Email para .NET para iterar através das propriedades nomeadas MAPI de uma mensagem e imprimir informações detalhadas com base no tipo de descritor da propriedade:
- Itere através de cada propriedade nomeada acessando a coleção ‘NamedProperties.Values’ do objeto MapiMessage carregado para obter todas as propriedades MAPI nomeadas.
- Verifique se o Descritor da propriedade nomeada atual é do tipo PidNamePropertyDescriptor. Se for, faça um cast do Descritor para PidNamePropertyDescriptor. Imprima o GUID, Nome Canônico e Tipo de Dado da propriedade.
- Verifique se o Descritor da propriedade nomeada atual é do tipo PidLidPropertyDescriptor. Se for, faça um cast do Descritor para PidLidPropertyDescriptor. Imprima o GUID, Nome Canônico, ID Longo e Tipo de Dado da propriedade.
Assim, imprimimos atributos específicos como PropertySet
, CanonicalName
, DataType
e LongId
dependendo do tipo de descritor (PidNamePropertyDescriptor
ou PidLidPropertyDescriptor
).
Recuperando Propriedades por Descritor
Recuperar propriedades por descritor é uma maneira direta de acessar propriedades MAPI específicas sem iterar por toda a coleção de propriedades. O Aspose.Email para .NET fornece uma maneira conveniente de recuperar propriedades usando a KnownPropertyList. O exemplo de código abaixo demonstra como recuperar e imprimir os detalhes de uma propriedade específica, como o InternetMessageId, se existir.
- Acesse a propriedade InternetMessageId da coleção Properties do objeto MapiMessage usando a KnownPropertyList.
- Verifique se a propriedade não é nula para garantir que exista na mensagem.
- Imprima os detalhes da propriedade recuperada: Tag, Nome Canônico e Tipo de Dado.
- Se o tipo de dado da propriedade for uma string, use o método GetString para recuperar o valor da propriedade e imprimi-lo.
Recuperando Propriedades por Tag
Uma tag de propriedade é um identificador de 32 bits que identifica exclusivamente uma propriedade MAPI. Ela consiste em um ID de propriedade e um tipo de propriedade. Usando tags de propriedade, você pode acessar diretamente propriedades específicas dentro de uma mensagem MAPI. O exemplo de código abaixo demonstra como recuperar e imprimir os detalhes de uma propriedade específica, como PR_HASATTACH, se existir.
- Use o MapiPropertyTag para acessar diretamente a propriedade PR_HASATTACH da coleção Properties do objeto MapiMessage.
- Verifique se a propriedade não é nula para garantir que exista na mensagem.
- Imprima os detalhes da propriedade recuperada: Tag e Tipo de Dado.
- Se o tipo de dado da propriedade for booleano, use o método GetBoolean para recuperar o valor da propriedade e imprimir se a mensagem tem anexos.
Usando o Método GetProperty
O método GetProperty simplifica o processo de recuperação de propriedades regulares e nomeadas de uma mensagem MAPI. Este método permite que você acesse diretamente uma propriedade pelo seu descritor ou tag sem verificar manualmente a coleção de propriedades. O exemplo de código abaixo demonstra como utilizar o método GetProperty para acessar propriedades MAPI específicas:
- Use o método GetProperty para acessar diretamente a propriedade CurrentVersionName da classe KnownPropertyList.
- Verifique se a propriedade não é nula para garantir que exista na mensagem.
- Use o método GetString para recuperar o valor da propriedade e imprimi-lo.
Aqui, GetProperty
é usado para acessar diretamente a propriedade CurrentVersionName
.
Trabalhando com Propriedades Personalizadas
As propriedades MAPI personalizadas são propriedades adicionais que não fazem parte do conjunto predefinido de propriedades MAPI. Elas são criadas para armazenar dados específicos da aplicação e são definidas pelo desenvolvedor. Ao permitir que os desenvolvedores definam e usem propriedades adicionais, a MAPI fornece uma maneira flexível e poderosa de armazenar e gerenciar dados personalizados dentro de aplicações de mensagens. Propriedades personalizadas são propriedades nomeadas (usadas um GUID e um nome de string). O Aspose.Email introduz uma abordagem que você pode usar para buscar todas as propriedades personalizadas definidas na mensagem. Isso é alcançado com o método GetCustomProperties. O exemplo de código abaixo demonstra como buscar e imprimir todas as propriedades personalizadas definidas em uma mensagem MAPI:
- Use o método GetCustomProperties para obter uma coleção de todas as propriedades personalizadas definidas na mensagem.
- Itere através de cada propriedade personalizada na coleção recuperada.
- Imprima os detalhes da propriedade: Tag, Nome Canônico e Tipo de Dado.
Conclusão
Este artigo explorou várias técnicas para acessar, enumerar e manipular propriedades MAPI usando Aspose.Email para .NET. O Aspose.Email fornece suporte abrangente para lidar com essas propriedades, permitindo que os desenvolvedores gerenciem e manipulem dados de e-mail com controle detalhado. Usando esta biblioteca, os desenvolvedores podem criar soluções sofisticadas de gerenciamento e processamento de e-mail, facilitando o trabalho com propriedades padrão, nomeadas e personalizadas.
Além disso, o Aspose.Email fornece documentação abrangente, uma extensa referência de API e uma variedade de ferramentas online gratuitas e aplicativos para aprimorar seu processo de desenvolvimento. Os desenvolvedores também podem acessar um fórum de suporte gratuito para assistência e insights da comunidade, e se manter atualizados com as últimas dicas e tutoriais através do blog da Aspose. Esses recursos são inestimáveis para maximizar o potencial da biblioteca em seus projetos.