Trabalhando com Propriedades MAPI

Acessando e Definindo Propriedade MAPI do Outlook

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

  • Name: uma string que representa o nome da propriedade.
  • Tag: um long que representa a tag da propriedade.
  • Data: um array de bytes que representa os dados da propriedade.

Obtendo Propriedade MAPI usando a Tag de Propriedade MAPI

Para obter propriedades MAPI:

  1. Crie uma instância de MapiMessage carregando a partir de arquivos ou stream.
  2. Obtenha a MapiProperty de MapiMessage.Properties pelas chaves MapiPropertyTag.
  3. Obtenha os dados da MapiProperty pelo método GetX.

O trecho de código a seguir mostra como obter uma propriedade MAPI usando a tag de propriedade MAPI.

Definindo Propriedades MAPI

O trecho de código a seguir mostra como definir propriedades MAPI.

onde a definição do método convertDateTime é a seguinte:

Lendo Propriedades MAPI Nomeadas de Arquivos MSG do Outlook

Aspose.Email fornece um conjunto de APIs para trabalhar com arquivos MSG, incluindo a extração de propriedades MAPI nomeadas.

Ler Propriedades MAPI Nomeadas de arquivo MSG

Para ler propriedades MAPI nomeadas, podemos usar a propriedade named_properties do MapiMessage classe. O exemplo de código a seguir mostra como carregar uma mensagem, recuperar todas as propriedades MAPI nomeadas, iterar sobre cada propriedade para verificar seu valor:

import aspose.email as ae

msg = ae.mapi.MapiMessage.load("my.msg")

# Get all named MAPI properties
properties = msg.named_properties.values
# Read all properties in foreach loop
for prop in properties:
    #  Read any specific property
    if prop.descriptor.canonical_name == "PidLidSideEffects":
        print(f"{prop.descriptor.canonical_name} = {prop}")
    if prop.descriptor.canonical_name == "PidLidInternetAccountName":
        print(f"{prop.descriptor.canonical_name} = {prop}")

Lendo Propriedade MAPI Nomeada de um Anexo

Aspose.Email possibilita recuperar todas as propriedades MAPI nomeadas de um anexo. O exemplo de código a seguir mostra como ler propriedades MAPI nomeadas de anexos:

import aspose.email as ae

msg = ae.mapi.MapiMessage.load("my.msg")

# Get all named MAPI properties
attach_properties = msg.attachments[0].named_properties.values
# Read all properties in foreach loop
for prop in attach_properties:
    #  Read any specific property
    if prop.descriptor.name == "AttachmentOriginalUrl":
        print(f"{prop.descriptor.name} = {prop.get_string()}")
    if prop.descriptor.name == "AttachmentWasSavedToCloud":
        print(f"{prop.descriptor.name} = {prop.get_boolean()}")

Remover Propriedades de MSGs e Anexos

Este exemplo de código demonstra a criação de uma mensagem Outlook MSG com conteúdo de corpo e um arquivo de mensagem anexado. Também demonstra como excluir uma propriedade de anexo da mensagem criada.

import aspose.email as ae

# create an MSG
msg = ae.mapi.MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
msg.set_body_content("<html><body><h1>This is the body content</h1></body></html>", ae.mapi.BodyContentType.HTML)

# load message and add it to created MSG as attachment
attachment = ae.mapi.MapiMessage.load(attach.msg")
msg.attachments.add("Outlook2 Test subject.msg", attachment)

# count of attachment properties before removal
print(f"Before removal = {msg.attachments[0].properties.count}")

# Delete anyone attachment property
msg.attachments[0].remove_property(923467779)

# count of attachment properties after removal
print(f"Before removal = {msg.attachments[0].properties.count}")