Trabajando con contactos en archivos PST

Agregar contacto al PST

Crear un nuevo archivo PST y agregar subcarpetas mostró cómo crear un archivo PST y agregarle una subcarpeta. Con Aspose.Email, puedes agregar un MapiContact a la subcarpeta Contactos de un archivo PST que hayas creado o cargado. A continuación se presentan los pasos para agregar un MapiContact a un PST:

  1. Crear un objeto MapiContact.
  2. Establecer las propiedades del MapiContact utilizando diferentes constructores y métodos.
  3. Crear un PST usando el método PersonalStorage.create().
  4. Crear una carpeta predefinida (Contactos) en la raíz del archivo PST accediendo a la carpeta raíz y luego llamando al método add_mapi_message_item().

El siguiente fragmento de código te muestra cómo crear un MapiContact y luego agregarlo a la carpeta de contactos de un archivo PST recién creado.

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()

Guardar información de contactos del archivo PST en formato MSG

Este artículo explica cómo acceder a la información de contacto de un archivo PST de Outlook y guardar el contacto en el disco en formato MSG. Se utilizan las clases PersonalStorage y MapiContact para obtener y mostrar la información del contacto. Los pasos para obtener la información de contacto son:

  1. Cargar el archivo PST en la clase PersonalStorage.
  2. Navegar por la carpeta de Contactos.
  3. Obtener el contenido de la carpeta de Contactos para obtener la colección de mensajes.
  4. Recorrer la colección de mensajes.
  5. Llamar al método PersonalStorage.extract_message() para obtener la información de contacto en la clase MapiMessage.
  6. Llamar al método MapiMessage.save() para guardar el contacto en el disco en formato MSG.

El siguiente fragmento de código te muestra cómo recuperar toda la información de contacto del archivo PST y guardarla en el disco en 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)

Guardar información de contactos del archivo PST en formato VCF

Este artículo muestra cómo acceder a la información de contacto de un archivo PST de Microsoft Outlook y guardar el contacto en el disco en formato vCard (VCF). Utiliza las clases PersonalStorage y MapiContact para obtener la información del contacto del archivo PST. Para obtener la información del contacto:

  1. Cargar el archivo PST en la clase PersonalStorage.
  2. Navegar por la carpeta de Contactos.
  3. Obtener el contenido de la carpeta de Contactos para obtener la colección de mensajes.
  4. Recorrer la colección de mensajes.
  5. Llamar al método PersonalStorage.extract_message() para obtener la información de contacto en la clase MapiContact.
  6. Utilizar diferentes propiedades de la clase MapiContact para acceder a la información del contacto.

El programa a continuación carga un archivo PST desde el disco y guarda todos los contactos en formato vCard (VCF). Los archivos VCF pueden ser utilizados en cualquier otro programa que pueda cargar el archivo de contacto estándar vCard. Si abres cualquier archivo VCF en Microsoft Outlook, se verá como el de la captura de pantalla a continuación.

todo:image_alt_text
El siguiente fragmento de código te muestra cómo exportar contactos desde Outlook PST a formato vCard (VCF).
from aspose.email.storage.pst import PersonalStorage
from aspose.email.mapi import ContactSaveFormat

# Cargar el archivo PST de Outlook
pst = PersonalStorage.from_file("my.pst")

# Obtener la carpeta de Contactos
folder_info = pst.root_folder.get_sub_folder("Contacts")

# Recorrer todos los contactos en esta carpeta
message_info_collection = folder_info.get_contents()
for message_info in message_info_collection:
    # Obtener la información del contacto
    contact = pst.extract_message(message_info).to_mapi_message_item()

    # Mostrar algunos contenidos en pantalla
    print("Nombre: " + contact.name_info.display_name + " - " + message_info.entry_id_string)

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

Trabajando con listas de distribución

Es posible crear una lista de distribución utilizando la API de Aspose.Email, que es una colección de múltiples contactos. Una lista de distribución se puede guardar en disco en formato MSG de Outlook y puede ser vista/manipulada abriéndola en MS Outlook.

Crear y guardar una lista de distribución

El siguiente fragmento de código te muestra cómo crear y guardar una lista de distribución.

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);

Leer una lista de distribución de un PST

El siguiente fragmento de código te muestra cómo leer una lista de distribución de un PST.

from aspose.email.mapi import MapiMessage

# Cargar el mensaje MAPI desde el archivo
message = MapiMessage.load("dl.msg")

# Convertir el mensaje a una lista de distribución MAPI
dlist = message.to_mapi_message_item()