Trabalhando com Contatos em Arquivo PST

Adicionando Contato ao PST

Criar um Novo Arquivo PST e Adicionar Subpastas mostrou como criar um arquivo PST e adicionar uma subpasta a ele. 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 MapiContact a um PST:

  1. Crie um objeto MapiContact.
  2. Defina as propriedades do MapiContact usando diferentes construtores e métodos.
  3. Crie um PST usando o método PersonalStorage.create().
  4. Crie uma pasta pré-definida (Contatos) na raiz do arquivo PST acessando a pasta raiz e, em seguida, chamando o método add_mapi_message_item().

O seguinte trecho de código mostra como criar um MapiContact e depois adicioná-lo à pasta de contatos de um arquivo PST recém-criado.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
# Create three Contacts
contact1 = MapiContact("Sebastian Wright", "SebastianWright@dayrep.com")
contact2 = MapiContact("Wichert Kroos", "WichertKroos@teleworm.us", "Grade A Investment")
contact3 = MapiContact("Christoffer van de Meeberg", "ChristoffervandeMeeberg@teleworm.us", "Krauses Sofa Factory", "046-630-4614046-630-4614")
# Contact 4
contact4 = MapiContact()
contact4.name_info = MapiContactNamePropertySet("Margaret", "J.", "Tolle")
contact4.personal_info.gender = MapiContactGender.FEMALE
contact4.professional_info = MapiContactProfessionalPropertySet("Adaptaz", "Recording engineer")
contact4.physical_addresses.work_address.address = "4 Darwinia Loop EIGHTY MILE BEACH WA 6725"
contact4.electronic_addresses.email_1 = MapiContactElectronicAddress("Hisen1988", "SMTP", "MargaretJTolle@dayrep.com")
contact4.telephones.business_telephone_number = "(08)9080-1183"
contact4.telephones.mobile_telephone_number = "(925)599-3355(925)599-3355"
# Contact #5
contact5 = MapiContact()
contact5.name_info = MapiContactNamePropertySet("Matthew", "R.", "Wilcox");
contact5.personal_info.gender = MapiContactGender.MALE;
contact5.professional_info = MapiContactProfessionalPropertySet("Briazz", "Psychiatric aide");
contact5.physical_addresses.work_address.address = "Horner Strasse 12 4421 SAASS";
contact5.telephones.business_telephone_number = "0650 675 73 300650 675 73 30";
contact5.telephones.home_telephone_number = "(661)387-5382(661)387-5382";
# Contact #6
contact6 = MapiContact();
contact6.name_info = MapiContactNamePropertySet("Bertha", "A.", "Buell");
contact6.professional_info = MapiContactProfessionalPropertySet("Awthentikz", "Social work assistant");
contact6.personal_info.personal_home_page = "B2BTies.com";
contact6.physical_addresses.work_address.address = "Im Astenfeld 59 8580 EDELSCHROTT";
contact6.electronic_addresses.email_1 = MapiContactElectronicAddress("Experwas", "SMTP", "BerthaABuell@armyspy.com");
contact6.telephones = MapiContactTelephonePropertySet("06605045265");
personalStorage = PersonalStorage.create(dataDir + "SampleContacts_out.pst", FileFormatVersion.UNICODE)
contactFolder = personalStorage.create_predefined_folder("Contacts", StandardIpmFolder.CONTACTS)
contactFolder.add_mapi_message_item(contact1)
contactFolder.add_mapi_message_item(contact2);
contactFolder.add_mapi_message_item(contact3);
contactFolder.add_mapi_message_item(contact4);
contactFolder.add_mapi_message_item(contact5);
contactFolder.add_mapi_message_item(contact6);
personalStorage.dispose()

Salvar informações de contatos do arquivo PST em formato MSG

Este artigo explica como acessar informações de contato de um arquivo PST do Outlook e salvar o contato no disco em formato MSG. As classes PersonalStorage e MapiContact são usadas para obter e exibir as informações de contato. Os passos para obter as informações de contato são:

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

O seguinte trecho de código mostra como recuperar todas as informações de contato do arquivo PST e salvar no disco em formato MSG.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
pst = PersonalStorage.from_file(dataDir + "SampleContacts_out.pst")
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)
messageInfoCollection = folderInfo.get_contents()
for messageInfo in messageInfoCollection:
# Get the contact information
mapi = pst.extract_message(messageInfo)
contact = mapi.to_mapi_message_item()
# Display some contents on screen
print("Name: " + contact.name_info.display_name)
#Save to disc in MSG Format
if contact.name_info.display_name is not None:
contact.save(dataDir + "Contacts\\" + contact.name_info.display_name + "_out.msg")
contact.save(dataDir + "Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)

Salvar informações de Contatos do arquivo PST em formato VCF

Este artigo mostra como acessar informações de contato de um arquivo PST do Microsoft Outlook e salvar o contato no disco em formato vCard (VCF). Use as classes PersonalStorage e MapiContact para obter informações de contato do arquivo PST. Para obter as informações de contato:

  1. Carregar o arquivo PST na classe PersonalStorage.
  2. Navegar até a pasta Contatos.
  3. Obter o conteúdo da pasta Contatos para obter a coleção de mensagens.
  4. Percorrer a coleção de mensagens.
  5. Chamar o método PersonalStorage.extract_message() para obter as informações de contato na classe MapiContact.
  6. Usar as diferentes propriedades da classe MapiContact para acessar as informações de contato.

O programa abaixo carrega um arquivo PST do disco e salva todos os contatos em formato vCard (VCF). Os arquivos VCF podem ser usados em qualquer outro programa que possa carregar o arquivo de contato vCard padrão. Se você abrir qualquer arquivo VCF no Microsoft Outlook, ele se parecerá com o da captura de tela abaixo.

todo:image_alt_text
O seguinte trecho de código mostra como exportar contatos do Outlook PST para o formato vCard (VCF).
from aspose.email.storage.pst import PersonalStorage
from aspose.email.mapi import ContactSaveFormat

# Carregar o arquivo PST do Outlook
pst = PersonalStorage.from_file("my.pst")

# Obter a pasta Contatos
folder_info = pst.root_folder.get_sub_folder("Contacts")

# Percorrer todos os contatos nesta pasta
message_info_collection = folder_info.get_contents()
for message_info in message_info_collection:
    # Obter as informações de contato
    contact = pst.extract_message(message_info).to_mapi_message_item()

    # Exibir algumas informações na tela
    print("Nome: " + contact.name_info.display_name + " - " + message_info.entry_id_string)

    # Salvar no disco em formato vCard VCF
    contact.save("D:\\" + contact.name_info.display_name + ".vcf", ContactSaveFormat.V_CARD)

Trabalhando com Listas de Distribuição

É possível criar uma lista de distribuição usando a API Aspose.Email, que é uma coleção de vários contatos. Uma lista de distribuição pode ser salva no disco em formato MSG do Outlook e pode ser visualizada/manipulada abrindo-a no MS Outlook.

Criando e Salvando uma Lista de Distribuição

O seguinte trecho de código mostra como criar e salvar uma lista de distribuição.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
displayName1 = "Sebastian Wright"
email1 = "SebastianWright@dayrep.com"
displayName2 = "Wichert Kroos"
email2 = "WichertKroos@teleworm.us"
os.remove(dataDir + "CreateDistributionListInPST_out.pst")
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);

Lendo uma Lista de Distribuição de um PST

O seguinte trecho de código mostra como ler uma lista de distribuição de um PST.

from aspose.email.mapi import MapiMessage

# Carregar a mensagem MAPI do arquivo
message = MapiMessage.load("dl.msg")

# Converter a mensagem para uma lista de distribuição MAPI
dlist = message.to_mapi_message_item()