Outlook-contacten beheren in PST-bestanden

Contacten maken, opslaan en lezen

Aspose.Email stelt je in staat Outlook-contacten te maken en te verwerken. De MapiContact klasse levert alle contactgerelateerde eigenschappen die nodig zijn om een Outlook-contact te maken en te bewerken. Dit artikel laat zien hoe je een Outlook-contact maakt, opslaat en leest met behulp van de MapiContact klasse.

Outlook-contacten maken en opslaan

Om een contact te maken en op schijf op te slaan, volg deze stappen:

  1. Instantieer een nieuw object van de MapiContact klasse.
  2. Voer contacteigenschapsinformatie in.
  3. Voeg fotogegevens toe (indien aanwezig).
  4. Sla het contact op in MSG- of VCard-formaat.

Het volgende codefragment laat zien hoe je een Outlook-contact maakt en opslaat:

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)

Contacten opslaan in VCF-formaat versie 3

Om een contact op te slaan in VCF-formaat versie 3, gebruik je de version-eigenschap van de VCardSaveOptions klasse.

  1. Maak een nieuw exemplaar van de VCardSaveOptions klasse.
  2. Stel de versie-eigenschap van het VCardSaveOptions-object in op VCardVersion.V30. Dit zet de vCard-versie op 3.0.
  3. Roep de opslaan methode van het MapiContact-object, waarbij de bestandsnaam "contact.vcf" en het VCardSaveOptions-object als parameters worden doorgegeven. Dit slaat het contact op als een vCard-bestand met de opgegeven bestandsnaam en opties.

Het volgende codefragment laat zien hoe je een contact opslaat in VCF-formaat versie 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)

Contacten laden uit MSG- of VCard-bestanden

De MapiContact klasse kan worden gebruikt om zowel Outlook MSG- als VCard-formaatcontacten te laden.

Om een contact uit MSG te laden, gebruik je het onderstaande codevoorbeeld:

Om een contact uit VCard te laden, gebruik je het volgende codevoorbeeld:

Contacten laden met gespecificeerde codering

Het volgende codefragment laat zien hoe je een contact laadt uit een vCard met een gespecificeerde codering.

VCard-bestanden opslaan met aangepaste teken-codering

Bij het opslaan van een vCard-bestand kun je de teken-codering definiëren om compatibiliteit met niet-ASCII-tekenen te waarborgen. Stel bijvoorbeeld de preferred_text_encoding-eigenschap van de VCardSaveOptions object op "utf-8" zorgt voor correcte codering van niet-ASCII-tekst. Deze functie is vooral nuttig voor het verwerken van meertalige contactgegevens. Hieronder een voorbeeld van hoe je een vCard-bestand configureert en opslaat met een aangepaste teken-codering:

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)

VCard-bestanden opslaan met uitgebreide eigenschappen

Naast standaard vCard-velden kun je je vCard-bestanden verbeteren door uitgebreide eigenschappen toe te voegen. Dit zijn aanvullende attributen die niet worden gedekt door de standaard vCard-specificatie, waardoor meer maatwerk mogelijk is. Om dit in te schakelen, stel je de use_extensions-eigenschap van de VCardSaveOptions klasse op True. Dit is vooral nuttig voor het toevoegen van aangepaste of toepassingsspezifieke metadata. Hier zie je hoe je een vCard-bestand kunt opslaan met ingeschakelde uitgebreide eigenschappen:

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)

Meerdere contacten lezen in VCard-formaat

Om alle contacten uit een VCard op te halen, kun je het volgende gebruiken methoden:

  • is_multi_contacts-methode bepaalt of een stream meerdere contacten bevat.
  • load_as_multiple(file_path)-methode laadt een lijst van alle contacten uit een VCard-bestand.
  • load_as_multiple(stream)-methode laadt een lijst van alle contacten uit een VCard-stream.

Het onderstaande codefragment toont het proces van het lezen van meerdere contacten uit een VCard-bestand:

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")

Contactinformatie renderen naar MHTML

Outlook-contact kan worden geconverteerd naar MHTML met de Aspose.Email API. Het volgende codevoorbeeld toont hoe je een MHTML-bestand genereert dat gedetailleerde contactinformatie bevat die oorspronkelijk uit een MSG-bestand komt:

  1. Laad het MSG-bestand als een MapiMessage object.
  2. Converteer het bericht naar EML-formaat.
  3. Bereid MHT-opslagopties voor:
    • Schakel codering van de inhoud van het bericht in en behoud de originele grenzen.
    • Stel MHT-formatopties in om headers te schrijven en vCard-informatie te renderen.
  4. Definieer velden die in de MHT gerenderd moeten worden.
  5. Sla de EML op als een MHTML-bestand.