Gerenciando contatos do Outlook em arquivos PST

Adicionar Contatos do Outlook a Arquivos PST

Criar Novo Arquivo PST e Adicionar Subpastas Demonstra como criar um arquivo PST e incluir subpastas nele. Com Aspose.Email você pode adicionar um MapiContact à subpasta Contatos de um arquivo PST que você criou ou carregou. Abaixo estão os passos para adicionar um MapiContact a um arquivo PST:

  1. Crie um MapiContact objeto.
  2. Defina as propriedades do MapiContact, como nome, gênero, endereços de e‑mail, números de telefone, endereços físicos e informações profissionais, usando diferentes construtores e métodos.
  3. Criar um PST usando o PersonalStorage.create() método.
  4. Criar uma pasta predefinida (Contatos) na raiz do arquivo PST acessando a pasta raiz e então chamando o add_mapi_message_item() método.

O trecho de código a seguir mostra como criar um contato MAPI e então adicioná-lo à pasta Contatos de um arquivo PST recém-criado:

Salvar Contatos do Outlook como Arquivos MSG

Para acessar informações de contato de um arquivo PST do Outlook e salvar o contato em disco no formato MSG, o Aspose.Email fornece o PersonalStorage e o MapiContact classes. O trecho de código abaixo mostra como recuperar todas as informações de contato de um arquivo PST e salvá‑las em disco no formato MSG:

  1. Carregar o arquivo PST no PersonalStorage classe.
  2. Navegar pela pasta Contatos.
  3. Obter o conteúdo da pasta Contatos para obter a coleção de mensagens.
  4. Iterar pela coleção de mensagens.
  5. Chame o PersonalStorage.extract_message() método para obter as informações de contato no MapiMessage classe.
  6. Chame o MapiMessage.save() método para salvar o contato no disco em formato MSG.

Exportar Contatos do Outlook como Arquivos VCF

Para acessar informações de contato de um arquivo PST do Microsoft Outlook e salvar o contato em disco no formato vCard (VCF), use o PersonalStorage e MapiContact classes. O código abaixo carrega um arquivo PST do disco e salva todos os contatos no formato vCard (VCF). Os arquivos VCF podem então ser usados em qualquer outro programa que possa carregar o arquivo de contato padrão vCard. Se você abrir qualquer arquivo VCF no Microsoft Outlook, ele se parece com o da captura de tela abaixo.

todo:image_alt_text

O trecho de código a seguir mostra como exportar contatos de um PST do Outlook para o formato vCard (VCF):

  1. Usar PersonalStorage.from_file para abrir o arquivo PST.
  2. Acesse a pasta Contatos usando o get_sub_folder.
  3. Iterar pelos Contatos:
  4. Extraia cada contato usando pst.extract_message(message_info) e armazene‑o como um item de mensagem MAPI.
  5. Imprima o nome e o ID de entrada de cada contato.
  6. Salve o contato como um arquivo VCF usando contact.save.
from aspose.email.storage.pst import PersonalStorage
from aspose.email.mapi import ContactSaveFormat

# Load the Outlook PST file
pst = PersonalStorage.from_file("my.pst")

# Get the Contacts folder
folder_info = pst.root_folder.get_sub_folder("Contacts")

# Loop through all the contacts in this folder
message_info_collection = folder_info.get_contents()
for message_info in message_info_collection:
    # Get the contact information
    contact = pst.extract_message(message_info).to_mapi_message_item()

    # Display some contents on screen
    print("Name: " + contact.name_info.display_name + " - " + message_info.entry_id_string)

    # Save to disk in vCard VCF format
    contact.save("D:\\" + contact.name_info.display_name + ".vcf", ContactSaveFormat.V_CARD)

Gerenciando Listas de Distribuição do Outlook em Arquivos PST

A API Aspose.Email for Python possibilita criar uma lista de distribuição – uma coleção de múltiplos contatos. Uma lista de distribuição pode ser salva em disco no formato Outlook MSG e pode ser visualizada/manipulada ao abri‑la no MS Outlook.

Criar e salvar listas de distribuição

O trecho de código abaixo demonstra como criar um arquivo PST e adicionar uma lista de distribuição. Também envolve a criação e adição de contatos à lista de distribuição dentro do arquivo PST.

  1. Definir detalhes de contato - definir displayName e e‑mail para cada contato.
  2. Crie um novo arquivo PST usando PersonalStorage.create() com formato UNICODE.
  3. Criar pasta Contatos usando create_predefined_folder().
  4. Instanciar MapiContact objetos com o nome exibido e e‑mail, então adicione contatos à pasta usando add_mapi_message_item().
  5. Crie membros da lista de distribuição instanciando MapiDistributionListMember para cada contato e definindo entry_id com decodificação base64.
  6. Adicionar membros a MapiDistributionListMemberCollection.
  7. Crie uma lista de distribuição instanciando MapiDistributionList, definindo seu corpo e assunto.
  8. Usar add_mapi_message_item() para adicionar a lista de distribuição à pasta de contatos.
displayName1 = "Sebastian Wright"
email1 = "SebastianWright@dayrep.com"

displayName2 = "Wichert Kroos"
email2 = "WichertKroos@teleworm.us"

personalStorage = PersonalStorage.create(dataDir + "CreateDistributionListInPST_out.pst", FileFormatVersion.UNICODE)

contactFolder = personalStorage.create_predefined_folder("Contacts", StandardIpmFolder.CONTACTS)

   # Create contacts
   strEntryId1 = contactFolder.add_mapi_message_item(MapiContact(displayName1, email1))
   strEntryId2 = contactFolder.add_mapi_message_item( MapiContact(displayName2, email2))

   member1 = MapiDistributionListMember(displayName1, email1)
   member1.entry_id_type = MapiDistributionListEntryIdType.CONTACT
   member1.entry_id = base64.b64decode( bytes(strEntryId1, "utf-8") )

   member2 = MapiDistributionListMember(displayName2, email2)
   member2.entry_id_type = MapiDistributionListEntryIdType.CONTACT
   member2.entry_id = base64.b64decode( bytes(strEntryId1, "utf-8") )

   members = MapiDistributionListMemberCollection()
   members.append(member1)
   members.append(member2)

   distribution_list = MapiDistributionList("Contact list", members)
   distribution_list.body = "Distribution List Body"
   distribution_list.subject = "Sample Distribution List using Aspose.Email"     
                    
   # Add distribution list to PST 
   contactFolder.add_mapi_message_item(distribution_list);

Ler listas de distribuição de arquivos PST

O trecho de código a seguir mostra como ler uma lista de distribuição de um arquivo PST:

from aspose.email.mapi import MapiMessage

# Load the MAPI message from file
message = MapiMessage.load("dl.msg")

# Convert the message to MAPI distribution list
dlist = message.to_mapi_message_item()

Atualizar Listas de Distribuição em Arquivos PST do Outlook

Para atualizar uma lista de distribuição em um arquivo PST, por exemplo para adicionar um novo membro, use o seguinte exemplo de código:

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

folder = pst.get_predefined_folder(ae.storage.pst.StandardIpmFolder.CONTACTS)

# Add a new member to each distribution list in pst
for msg in folder.enumerate_messages():
    # Check if the message has the "IPM.DistList" message class
    if msg.message_class == "IPM.DistList":
        dist_list = pst.extract_message(msg).to_mapi_message_item()
        # Create a new member to add
        member = ae.mapi.MapiDistributionListMember("Edward R. Manuel", "EdwardRManuel@example.com")
        dist_list.members.append(member)
        # Update DL in PST
        folder.update_message(msg.entry_id_string, dist_list)