Gestion des contacts Outlook dans les fichiers PST

Créer, enregistrer et lire des contacts

Aspose.Email vous permet de créer et de traiter des contacts Outlook. Le MapiContact classe fournit toutes les propriétés liées aux contacts nécessaires pour créer et manipuler un contact Outlook. Cet article montre comment créer, enregistrer et lire un contact Outlook en utilisant le MapiContact classe.

Créer et enregistrer des contacts Outlook

Pour créer un contact et l’enregistrer sur le disque, suivez ces étapes :

  1. Instanciez un nouvel objet du MapiContact classe.
  2. Saisir les informations des propriétés du contact.
  3. Ajouter les données de photo (le cas échéant).
  4. Enregistrez le contact au format MSG ou VCard.

Le fragment de code suivant vous montre comment créer et enregistrer un contact 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)

Enregistrer les contacts au format VCF version 3

Pour enregistrer un contact au format VCF version 3, utilisez la propriété version du VCardSaveOptions classe.

  1. Créez une nouvelle instance de la VCardSaveOptions classe.
  2. Définissez la propriété version de l’objet VCardSaveOptions sur VCardVersion.V30. Cela fixe la version du vCard à 3.0.
  3. Appelez le enregistrer méthode de l’objet MapiContact, en passant le nom de fichier "contact.vcf" et l’objet VCardSaveOptions en paramètres. Cela enregistre le contact en tant que fichier vCard avec le nom de fichier et les options spécifiés.

Le fragment de code suivant vous montre comment enregistrer un contact au format VCF version 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)

Charger des contacts depuis des fichiers MSG ou VCard

Le MapiContact classe pouvant être utilisée pour charger des contacts aux formats Outlook MSG et VCard.

Pour charger un contact depuis un MSG, utilisez l’exemple de code ci-dessous :

Pour charger un contact depuis un VCard, utilisez l’exemple de code suivant :

Charger des contacts avec un encodage spécifié

Le fragment de code suivant vous montre comment charger un contact depuis un vcard avec le codage spécifié.

Enregistrer les fichiers VCard avec un encodage de caractères personnalisé

Lors de l’enregistrement d’un fichier vCard, vous pouvez définir l’encodage des caractères afin d’assurer la compatibilité avec les caractères non ASCII. Par exemple, en définissant la propriété preferred_text_encoding du VCardSaveOptions objet à "utf-8" assure un encodage correct du texte non ASCII. Cette fonctionnalité est particulièrement utile pour gérer des données de contact multilingues. Voici un exemple de configuration et d’enregistrement d’un fichier vCard avec un encodage de caractères personnalisé :

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)

Enregistrer les fichiers VCard avec des propriétés étendues

En plus des champs vCard standard, vous pouvez améliorer vos fichiers vCard en incluant des propriétés étendues. Ce sont des attributs supplémentaires non couverts par la spécification vCard standard, permettant une plus grande personnalisation. Pour activer cela, définissez la propriété use_extensions du VCardSaveOptions classe à True. Cela est particulièrement utile pour ajouter des métadonnées personnalisées ou spécifiques à l’application. Voici comment vous pouvez enregistrer un fichier vCard avec les propriétés étendues activées :

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)

Lire plusieurs contacts au format VCard

Pour récupérer tous les contacts d’un VCard, vous pouvez utiliser le suivant méthodes:

  • La méthode is_multi_contacts détermine si un flux contient plusieurs contacts.
  • La méthode load_as_multiple(file_path) charge une liste de tous les contacts depuis un fichier VCard.
  • La méthode load_as_multiple(stream) charge une liste de tous les contacts depuis un flux VCard.

Le fragment de code ci-dessous montre le processus de lecture de plusieurs contacts depuis un fichier 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")

Rendre les informations de contact en MHTML

Un contact Outlook peut être converti en MHTML en utilisant l’API Aspose.Email. L’exemple de code suivant montre comment générer un fichier MHTML contenant les informations détaillées du contact provenant à l’origine d’un fichier MSG :

  1. Chargez le fichier MSG en tant que MapiMessage objet.
  2. Convertissez le message au format EML.
  3. Préparer les options d’enregistrement MHT :
    • Activez l’encodage du contenu du corps et conservez les limites originales.
    • Définissez les options du format MHT pour écrire les en-têtes et rendre les informations vCard.
  4. Définissez les champs à rendre dans le MHT.
  5. Enregistrez le EML en tant que fichier MHTML.