Acessar e Gerenciar Propriedades MAPI do Outlook

MAPI properties são itens de metadados usados em mensagens do Microsoft Outlook, definindo atributos como remetente, destinatário, assunto, anexos e dados personalizados.

Aspose.Email for C++ permite que os desenvolvedores acessem, modifiquem e removam essas propriedades programaticamente em MapiMessage objetos, anexos e propriedades nomeadas.

O MapiProperty classe representa uma propriedade MAPI, que contém:

  • Name – O identificador de string da propriedade.
  • Tag – Um identificador numérico usado para referenciar a propriedade.
  • Data – Um array de bytes que representa o valor da propriedade.

Ler Propriedades MAPI

Aspose.Email permite ler propriedades MAPI usando tags de propriedade.

O exemplo de código a seguir demonstra como ler e exibir a propriedade assunto de um arquivo de mensagem MAPI (.msg).

  1. Obtenha o caminho do diretório onde os arquivos de mensagem Outlook estão armazenados.
  2. Carregue o arquivo de mensagem Outlook ("message.msg") em um MapiMessage objeto.
  3. Acesse a coleção de propriedades MAPI da mensagem.
  4. Tente recuperar a propriedade assunto usando PR_SUBJECT (ANSI) tag.
  5. Se a propriedade assunto ANSI não for encontrada, tente recuperar a propriedade assunto Unicode usando PR_SUBJECT_W.
  6. Se a propriedade assunto existir, exiba seu valor string no console.

Definir propriedades MAPI

As propriedades MAPI podem ser definidas para mensagens ou destinatários a fim de especificar atributos personalizados, tipo de e‑mail ou status de sincronização.

O exemplo de código a seguir demonstra como criar uma mensagem MAPI, definir múltiplas propriedades MAPI personalizadas incluindo detalhes do remetente e do destinatário, bandeiras da mensagem e hora de modificação, e então salvar a mensagem em um arquivo.

Nota: O auxiliar ConvertDateTime() converte System::DateTime para um array de bytes de filetime compatível com MAPI para propriedades de data/hora da seguinte forma:

int64_t filetime = t.ToFileTime();

System::ArrayPtr<uint8_t> d = System::MakeArray<uint8_t>(8, 0);

d[0] = (uint8_t)(filetime & 0xFF);

d[1] = (uint8_t)((filetime & 0xFF00) >> 8);

d[2] = (uint8_t)((filetime & 0xFF0000) >> 16);

d[3] = (uint8_t)((filetime & 0xFF000000) >> 24);

d[4] = (uint8_t)((filetime & 0xFF00000000) >> 32);

d[5] = (uint8_t)((filetime & 0xFF0000000000) >> 40);

d[6] = (uint8_t)((filetime & 0xFF000000000000) >> 48);

d[7] = (uint8_t)(((uint64_t)filetime & 0xFF00000000000000) >> 56);

Ler Propriedades MAPI Nomeadas

Named MAPI properties são propriedades personalizadas adicionadas por usuários ou aplicativos.

Aspose.Email permite a leitura dessas propriedades de mensagens e anexos.

Leitura de Propriedades MAPI Nomeadas de Arquivos MSG

O exemplo de código a seguir demonstra como carregar um arquivo de mensagem MAPI, recuperar todas as suas propriedades MAPI nomeadas e iterar sobre elas para encontrar e exibir os valores de propriedades nomeadas específicas ("TEST" e "MYPROP"). Ele mostra como acessar propriedades personalizadas ou estendidas em uma mensagem MAPI enumerando a coleção de propriedades e processando condicionalmente as propriedades com base em seus identificadores de nome.

Acessando Propriedades MAPI Nomeadas em Anexos

Propriedades MAPI nomeadas em anexos podem ser recuperadas de forma semelhante:

Removendo Propriedades MAPI

Você pode remover tanto propriedades MAPI padrão quanto nomeadas de mensagens ou anexos como mostrado no exemplo de código abaixo: