Travailler avec les contacts Outlook

Créer, enregistrer et lire des contacts

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

Créer et enregistrer un contact Outlook

Pour créer un contact et l’enregistrer sur le disque :

  1. Instanciez un nouvel objet de la classe MapiContact.
  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 code suivant 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 le contact au format VCF version 3

Pour enregistrer un contact au format VCF version 3, utilisez la propriété version du VCardSaveOptions classe. Créez une nouvelle instance de la classe VCardSaveOptions, définissez la propriété version de l’objet VCardSaveOptions sur VCardVersion.V30. Cela fixe la version vCard à 3.0. Appelez la méthode save de l’objet MapiContact, en passant le nom de fichier "contact.vcf" et l’objet VCardSaveOptions en paramètres. Cela enregistre le contact sous forme de fichier vCard avec le nom et les options spécifiés. Le code suivant 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)

Lecture d’un MapiContact

La classe MapiContact peut être utilisée pour charger des contacts au format Outlook MSG et VCard. Le code suivant montre comment charger des contacts Outlook enregistrés au format MSG et VCF dans un MapiContact.

Chargement d’un contact depuis un MSG

Le code suivant montre comment charger un contact à partir d’un MSG.

Chargement d’un contact depuis un VCard

Le code suivant montre comment charger un contact depuis un vCard.

Chargement d’un contact depuis un VCard avec encodage spécifié

Le code suivant montre comment charger un contact depuis un vCard avec un encodage spécifié.

Enregistrement de contacts VCard avec encodage spécifié

Lors de l’enregistrement d’un fichier vCard, il est possible de spécifier l’encodage des caractères à utiliser afin d’assurer la compatibilité avec les caractères non ASCII. Définissez la propriété preferred_text_encoding de l’objet VCardSaveOptions sur "utf-8". Le code suivant montre comment implémenter cette fonction dans votre projet :

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)

Enregistrement de fichiers VCard avec champs étendus

Lors de l’enregistrement d’un fichier vCard, vous pouvez également spécifier des options incluant l’utilisation de champs étendus, c’est‑à‑dire des propriétés ou attributs supplémentaires pouvant être ajoutés à un vCard au‑delà de l’ensemble standard de champs défini par la spécification vCard. La propriété use_extensions du VCardSaveOptions classe vous permet de le faire. Le code suivant montre comment enregistrer un fichier VCard avec des champs étendus :

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)

Lecture de plusieurs contacts au format VCard

Vous aurez besoin des méthodes suivantes pour obtenir la liste de tous les contacts d’un VCard :

# Checks whether VCard source stream contains multiple contacts.
aspose.email.personalinfo.vcard.VCardContact.is_multi_contacts(stream)

# Loads list of all contacts from VCard file.
aspose.email.personalinfo.vcard.VCardContact.load_as_multiple(file_path, encoding)

# Loads list of all contacts from VCard stream.
aspose.email.personalinfo.vcard.VCardContact.load_as_multiple(stream, encoding)

L’extrait de code ci‑dessus montre le processus de lecture de plusieurs contacts à partir d’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")

Rendu des informations du contact en MHTML

Un contact Outlook peut être converti en MHTML à l’aide de l’API Aspose.Email. Cet exemple montre comment charger un VCard dans MapiContact puis le convertir en MHTML grâce à l’API MailMessage.