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 …
- Cree un MapiContact objeto.
- 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.
- Crear un PST usando el PersonalStorage.create() método.
- 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:
- Cargar el archivo PST en el PersonalStorage clase.
- Explorar la carpeta Contactos.
- Obtener el contenido de la carpeta Contactos para obtener la colección de mensajes.
- Iterar a través de la colección de mensajes.
- Llame al PersonalStorage.extract_message() método para obtener la información del contacto en el MapiMessage clase.
- 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.
![]() |
|---|
El siguiente fragmento de código muestra cómo exportar contactos de Outlook PST a formato vCard (VCF):
- Usar PersonalStorage.from_file para abrir el archivo PST.
- Acceda a la carpeta Contactos usando el get_sub_folder.
- Recorrer contactos:
- Usar get_contents() para obtener toda la información de mensajes en la carpeta.
- Iterar sobre message_info_collection con un bucle.
- Extraer cada contacto usando pst.extract_message(message_info) y almacenarlo como un elemento de mensaje MAPI.
- Imprimir el nombre y el ID de entrada de cada contacto.
- 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.
- Definir detalles del contacto - establecer displayName y correo electrónico para cada contacto.
- Cree un nuevo archivo PST usando PersonalStorage.create() con formato UNICODE.
- Crear carpeta Contactos usando create_predefined_folder().
- Instanciar MapiContact objetos con el nombre para mostrar y correo electrónico, luego agregar contactos a la carpeta usando add_mapi_message_item().
- Crear miembros de la lista de distribución instanciando MapiDistributionListMember para cada contacto y estableciendo entry_id con decodificación base64.
- Agregar miembros a MapiDistributionListMemberCollection.
- Crear una lista de distribución instanciando MapiDistributionList, estableciendo su cuerpo y asunto.
- 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)
