Gestión de contactos de Outlook en archivos PST
Crear, guardar y leer contactos
Aspose.Email le permite crear y procesar contactos de Outlook. El MapiContact la clase proporciona todas las propiedades relacionadas con contactos necesarias para crear y manipular un contacto de Outlook. Este artículo muestra cómo crear, guardar y leer un contacto de Outlook usando el MapiContact clase.
Crear y guardar contactos de Outlook
Para crear un contacto y guardarlo en disco, siga estos pasos:
- Instancie un nuevo objeto de la MapiContact clase.
- Introduzca la información de las propiedades del contacto.
- Agregar datos de foto (si los hay).
- Guarde el contacto en formato MSG o VCard.
El siguiente fragmento de código le muestra cómo crear y guardar un contacto de Outlook:
import aspose.email as ae
data_dir = "path/to/data/directory"
contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
contact.professional_info = ae.mapi.MapiContactProfessionalPropertySet("Awthentikz", "Social work assistant")
contact.personal_info.personal_home_page = "B2BTies.com"
contact.physical_addresses.work_address.address = "Im Astenfeld 59 8580 EDELSCHROTT"
contact.electronic_addresses.email1 = ae.mapi.MapiContactElectronicAddress("Experwas", "SMTP", "BerthaABuell@armyspy.com")
contact.telephones = ae.mapi.MapiContactTelephonePropertySet("06605045265")
contact.personal_info.children = ["child1", "child2", "child3"]
contact.categories = ["category1", "category2", "category3"]
contact.mileage = "Some test mileage"
contact.billing = "Test billing information"
contact.other_fields.journal = True
contact.other_fields.private = True
contact.other_fields.reminder_topic = "Test topic"
contact.other_fields.user_field1 = "ContactUserField1"
contact.other_fields.user_field2 = "ContactUserField2"
contact.other_fields.user_field3 = "ContactUserField3"
contact.other_fields.user_field4 = "ContactUserField4"
# Add a photo
with open(data_dir + "Desert.jpg", "rb") as file:
buffer = file.read()
contact.photo = ae.mapi.MapiContactPhoto(buffer, ae.mapi.MapiContactPhotoImageFormat.JPEG)
# Save the Contact in MSG format
contact.save(data_dir + "MapiContact_out.msg", ae.mapi.ContactSaveFormat.MSG)
# Save the Contact in VCF format
contact.save(data_dir + "MapiContact_out.vcf", ae.mapi.ContactSaveFormat.V_CARD)
Guardar contactos en formato VCF Versión 3
Para guardar un contacto en formato VCF Versión 3, use la propiedad version del VCardSaveOptions clase.
- Crea una nueva instancia de la VCardSaveOptions clase.
- Establezca la propiedad version del objeto VCardSaveOptions a VCardVersion.V30. Esto define la versión vCard a 3.0.
- Llame al guardar método del objeto MapiContact, pasando el nombre de archivo "contact.vcf" y el objeto VCardSaveOptions como parámetros. Esto guarda el contacto como un archivo vCard con el nombre de archivo y opciones especificados.
El siguiente fragmento de código le muestra cómo guardar un contacto en formato VCF Versión 3:
import aspose.email as ae
contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
options = ae.personalinfo.vcard.VCardSaveOptions()
options.version = ae.personalinfo.vcard.VCardVersion.V30
contact.save("contact.vcf", options)
Cargar contactos desde archivos MSG o VCard
El MapiContact la clase puede usarse para cargar contactos en formato Outlook MSG y VCard.
Para cargar un contacto desde MSG, use el siguiente ejemplo de código:
Para cargar un contacto desde VCard, use el siguiente ejemplo de código:
Cargar contactos con codificación especificada
El siguiente fragmento de código le muestra cómo cargar un contacto desde vcard con la codificación especificada.
Guardar archivos VCard con codificación de caracteres personalizada
Al guardar un archivo vCard, puede definir la codificación de caracteres para asegurar la compatibilidad con caracteres no ASCII. Por ejemplo, estableciendo la propiedad preferred_text_encoding del VCardSaveOptions el objeto a "utf-8" garantiza la codificación adecuada del texto no ASCII. Esta característica es particularmente útil para manejar datos de contacto multilingües. A continuación se muestra un ejemplo de cómo configurar y guardar un archivo vCard con codificación de caracteres personalizada:
import aspose.email as ae
contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
options = ae.personalinfo.vcard.VCardSaveOptions()
options.preferred_text_encoding = "utf-8"
contact.save("contact.vcf", options)
Guardar archivos VCard con propiedades extendidas
Además de los campos estándar de vCard, puede mejorar sus archivos vCard incluyendo propiedades extendidas. Estos son atributos adicionales no cubiertos por la especificación estándar de vCard, lo que permite una mayor personalización. Para habilitarlo, establezca la propiedad use_extensions del VCardSaveOptions establezca la clase en True. Esto es particularmente útil para agregar metadatos personalizados o específicos de la aplicación. He aquí cómo puede guardar un archivo vCard con propiedades extendidas habilitadas:
import aspose.email as ae
contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
options = ae.personalinfo.vcard.VCardSaveOptions()
options.use_extensions = True
contact.save("contact.vcf", options)
Leer múltiples contactos en formato VCard
Para recuperar todos los contactos de un VCard, puede usar lo siguiente métodos:
- El método is_multi_contacts determina si un flujo tiene múltiples contactos.
- El método load_as_multiple(file_path) carga una lista de todos los contactos de un archivo VCard.
- El método load_as_multiple(stream) carga una lista de todos los contactos de un flujo VCard.
El fragmento de código a continuación demuestra el proceso de lectura de múltiples contactos desde un archivo VCard:
import aspose.email as ae
contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
options = ae.personalinfo.vcard.VCardSaveOptions()
options.use_extensions = True
contact.save("contact.vcf", options)
if ae.personalinfo.vcard.VCardContact.is_multi_contacts("contact.vcf"):
ae.personalinfo.vcard.VCardContact.load_as_multiple("contact.vcf")
Renderizar información de contacto a MHTML
Un contacto de Outlook puede convertirse a MHTML usando la API de Aspose.Email. El siguiente ejemplo de código muestra cómo generar un archivo MHTML que contiene información de contacto detallada originada en un archivo MSG:
- Cargar el archivo MSG como un MapiMessage objeto.
- Convertir el mensaje a formato EML.
- Preparar opciones de guardado MHT:
- Habilitar la codificación del contenido del cuerpo y preservar los límites originales.
- Establecer opciones de formato MHT para escribir encabezados y renderizar información vCard.
- Definir los campos a renderizar en el MHT.
- Guardar el EML como un archivo MHTML.