Gestión de contactos de Outlook en archivos PST

Agregar contactos de Outlook a archivos PST

Crear archivo PST nuevo y agregar subcarpetas demuestra cómo crear un archivo PST e incluir subcarpetas dentro de él. Con Aspose.Email puede agregar un MapiContact a la subcarpeta Contactos de un archivo PST que haya creado o cargado. A continuación se presentan los pasos …

  1. Cree un MapiContact objeto.
  2. Establezca las propiedades del MapiContact como nombre, género, direcciones de correo electrónico, números de teléfono, direcciones físicas e información profesional utilizando diferentes constructores y métodos.
  3. Crear un PST usando el PersonalStorage.create() método.
  4. Crear una carpeta predefinida (Contactos) en la raíz del archivo PST accediendo a la carpeta raíz y luego llamando al add_mapi_message_item() método.

El siguiente fragmento de código le muestra cómo crear un contacto MAPI y luego agregarlo a la carpeta Contactos de un archivo PST recién creado:

Guardar contactos de Outlook como archivos MSG

Para acceder a la información de contactos de un archivo PST de Outlook y guardar el contacto en disco en formato MSG, Aspose.Email proporciona el PersonalStorage y el MapiContact clases. El fragmento de código a continuación muestra cómo recuperar toda la información de contactos de un archivo PST y guardarla en disco en formato MSG:

  1. Cargar el archivo PST en el PersonalStorage clase.
  2. Explorar la carpeta Contactos.
  3. Obtener el contenido de la carpeta Contactos para obtener la colección de mensajes.
  4. Iterar a través de la colección de mensajes.
  5. Llame al PersonalStorage.extract_message() método para obtener la información del contacto en el MapiMessage clase.
  6. Llame al MapiMessage.save() método para guardar el contacto en disco en formato MSG.

Exportar contactos de Outlook como archivos VCF

Para acceder a la información de contactos de un archivo PST de Microsoft Outlook y guardar el contacto en disco en formato vCard (VCF), use el PersonalStorage y MapiContact clases. El código a continuación carga un archivo PST desde el disco y guarda todos los contactos en formato vCard (VCF). Los archivos VCF pueden usarse en cualquier otro programa que pueda cargar el archivo de contacto vCard estándar. Si abre 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 muestra cómo exportar contactos de Outlook PST a formato vCard (VCF):

  1. Usar PersonalStorage.from_file para abrir el archivo PST.
  2. Acceda a la carpeta Contactos usando el get_sub_folder.
  3. Recorrer contactos:
  4. Extraer cada contacto usando pst.extract_message(message_info) y almacenarlo como un elemento de mensaje MAPI.
  5. Imprimir el nombre y el ID de entrada de cada contacto.
  6. Guardar el contacto como archivo 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)

Gestionar listas de distribución de Outlook en archivos PST

Aspose.Email para Python API permite crear una lista de distribución - una colección de varios contactos. Una lista de distribución puede guardarse en disco en formato Outlook MSG y puede verse/manipularse al abrirla en MS Outlook.

Crear y guardar listas de distribución

El fragmento de código a continuación muestra cómo crear un archivo PST y agregar una lista de distribución. También implica crear y agregar contactos a la lista de distribución dentro del archivo PST.

  1. Definir detalles del contacto - establecer displayName y correo electrónico para cada contacto.
  2. Cree un nuevo archivo PST usando PersonalStorage.create() con formato UNICODE.
  3. Crear carpeta Contactos usando create_predefined_folder().
  4. Instanciar MapiContact objetos con el nombre para mostrar y correo electrónico, luego agregar contactos a la carpeta usando add_mapi_message_item().
  5. Crear miembros de la lista de distribución instanciando MapiDistributionListMember para cada contacto y estableciendo entry_id con decodificación base64.
  6. Agregar miembros a MapiDistributionListMemberCollection.
  7. Crear una lista de distribución instanciando MapiDistributionList, estableciendo su cuerpo y asunto.
  8. Usar add_mapi_message_item() para agregar la lista de distribución a la carpeta de contactos.
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);

Leer listas de distribución de archivos PST

El siguiente fragmento de código le muestra cómo leer una lista de distribución de un archivo 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()

Actualizar listas de distribución en archivos PST de Outlook

Para actualizar una lista de distribución en un archivo PST, por ejemplo para agregar un nuevo miembro, use el siguiente ejemplo 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)