Gestione dei contatti Outlook nei file PST

Creazione, salvataggio e lettura di contatti

Aspose.Email consente di creare e gestire contatti Outlook. Il MapiContact la classe fornisce tutte le proprietà correlate ai contatti necessarie per creare e manipolare un contatto Outlook. Questo articolo mostra come creare, salvare e leggere un contatto Outlook usando il MapiContact classe.

Crea e salva contatti Outlook

Per creare un contatto e salvarlo su disco, segui questi passaggi:

  1. Istanzia un nuovo oggetto della MapiContact classe.
  2. Inserisci le informazioni delle proprietà del contatto.
  3. Aggiungi dati foto (se presenti).
  4. Salva il contatto in formato MSG o VCard.

Il seguente frammento di codice mostra come creare e salvare un contatto 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)

Salva contatti in formato VCF Versione 3

Per salvare un contatto in formato VCF Versione 3, usa la proprietà version del VCardSaveOptions classe.

  1. Crea una nuova istanza della VCardSaveOptions classe.
  2. Imposta la proprietà version dell’oggetto VCardSaveOptions a VCardVersion.V30. Questo imposta la versione vCard a 3.0.
  3. Chiama il salva metodo dell’oggetto MapiContact, passando il nome file "contact.vcf" e l’oggetto VCardSaveOptions come parametri. Questo salva il contatto come file vCard con il nome file e le opzioni specificate.

Il seguente frammento di codice mostra come salvare un contatto in formato VCF Versione 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)

Carica contatti da file MSG o VCard

Il MapiContact la classe può essere usata per caricare contatti sia in formato Outlook MSG che VCard.

Per caricare un contatto da MSG, usa il campione di codice qui sotto:

Per caricare un contatto da VCard, usa il seguente campione di codice:

Carica contatti con codifica specificata

Il seguente frammento di codice mostra come caricare un contatto da vcard con codifica specificata.

Salva file VCard con codifica dei caratteri personalizzata

Quando salvi un file VCard, puoi definire la codifica dei caratteri per garantire la compatibilità con caratteri non ASCII. Ad esempio, impostando la proprietà preferred_text_encoding del VCardSaveOptions impostare l’oggetto a "utf-8" garantisce la corretta codifica del testo non ASCII. Questa funzionalità è particolarmente utile per gestire dati di contatto multilingua. Di seguito è un esempio di come configurare e salvare un file vCard con codifica dei caratteri personalizzata:

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)

Salva file VCard con proprietà estese

Oltre ai campi standard vCard, puoi migliorare i tuoi file vCard includendo proprietà estese. Questi sono attributi aggiuntivi non coperti dalla specifica vCard standard, consentendo una maggiore personalizzazione. Per abilitarlo, imposta la proprietà use_extensions del VCardSaveOptions classe a True. Questo è particolarmente utile per aggiungere metadati personalizzati o specifici dell’applicazione. Ecco come puoi salvare un file vCard con le proprietà estese abilitate:

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)

Leggi più contatti in formato VCard

Per recuperare tutti i contatti da un VCard, puoi usare il seguente metodi:

  • is_multi_contacts determina se uno stream contiene più contatti.
  • load_as_multiple(file_path) carica un elenco di tutti i contatti da un file VCard.
  • load_as_multiple(stream) carica un elenco di tutti i contatti da uno stream VCard.

Il frammento di codice qui sotto dimostra il processo di lettura di più contatti da un file 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")

Rendi informazioni del contatto in MHTML

Il contatto Outlook può essere convertito in MHTML usando l’API Aspose.Email. Il seguente campione di codice dimostra come generare un file MHTML che contiene informazioni dettagliate sul contatto originariamente da un file MSG:

  1. Carica il file MSG come un MapiMessage oggetto.
  2. Converti il messaggio in formato EML.
  3. Prepara le opzioni di salvataggio MHT:
    • Abilita la codifica del contenuto del corpo e preserva i limiti originali.
    • Imposta le opzioni del formato MHT per scrivere intestazioni e rendere le informazioni vCard.
  4. Definisci i campi da rendere nel MHT.
  5. Salva l’EML come file MHTML.