Správa kontaktů Outlook v souborech PST

Vytváření, ukládání a čtení kontaktů

Aspose.Email umožňuje vytvářet a zpracovávat kontakty Outlook. MapiContact třída poskytuje všechny vlastnosti související s kontaktem potřebné k vytvoření a manipulaci s kontaktem Outlook. Tento článek ukazuje, jak vytvořit, uložit a přečíst kontakt Outlook pomocí MapiContact třída.

Vytvořit a uložit kontakty Outlook

Pro vytvoření kontaktu a jeho uložení na disk postupujte následovně:

  1. Vytvořte novou instanci objektu MapiContact třída.
  2. Zadejte informace o vlastnostech kontaktu.
  3. Přidejte data fotografie (pokud existují).
  4. Uložte kontakt ve formátu MSG nebo VCard.

Následující úryvek kódu ukazuje, jak vytvořit a uložit kontakt 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)

Uložit kontakty ve formátu VCF verze 3

Pro uložení kontaktu ve formátu VCF verze 3 použijte vlastnost version objektu VCardSaveOptions třída.

  1. Vytvořte novou instanci VCardSaveOptions třída.
  2. Nastavte vlastnost version objektu VCardSaveOptions na VCardVersion.V30. Tím se nastaví verze vCard na 3.0.
  3. Zavolejte uložit metoda objektu MapiContact, která jako parametry přijímá název souboru "contact.vcf" a objekt VCardSaveOptions. Tím se kontakt uloží jako soubor vCard se zadaným názvem a nastavením.

Následující úryvek kódu ukazuje, jak uložit kontakt ve formátu VCF verze 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)

Načíst kontakty ze souborů MSG nebo VCard

The MapiContact třída může být použita k načtení kontaktů jak ve formátu Outlook MSG, tak VCard.

Pro načtení kontaktu z MSG použijte níže uvedený kód:

Pro načtení kontaktu z VCard použijte následující ukázkový kód:

Načíst kontakty s určeným kódováním

Následující úryvek kódu ukazuje, jak načíst kontakt z vcard se specifikovaným kódováním.

Uložit soubory VCard s vlastním kódováním znaků

Při ukládání souboru VCard můžete definovat kódování znaků, aby byla zajištěna kompatibilita s ne‑ASCII znaky. Například nastavením vlastnosti preferred_text_encoding objektu VCardSaveOptions objekt na "utf-8" zajišťuje správné kódování textu mimo ASCII. Tato funkce je zvláště užitečná při zpracování vícejazyčných dat kontaktů. Níže je příklad, jak nakonfigurovat a uložit soubor vCard s vlastním kódováním znaků:

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)

Uložit soubory VCard s rozšířenými vlastnostmi

Kromě standardních polí vCard můžete své soubory vCard rozšířit zahrnutím rozšířených vlastností. Jedná se o dodatečné atributy, které nejsou pokryty standardní specifikací VCard, což umožňuje větší přizpůsobení. Chcete‑li to povolit, nastavte vlastnost use_extensions objektu VCardSaveOptions třídu nastavte na True. To je zvláště užitečné pro přidání vlastních nebo aplikačních metadat. Zde je návod, jak uložit soubor vCard s povolenými rozšířenými vlastnostmi:

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)

Číst více kontaktů ve formátu VCard

Pro získání všech kontaktů z VCard můžete použít následující metody:

  • metoda is_multi_contacts určuje, zda proud obsahuje více kontaktů.
  • metoda load_as_multiple(file_path) načte seznam všech kontaktů ze souboru VCard.
  • metoda load_as_multiple(stream) načte seznam všech kontaktů ze VCard proudu.

Níže uvedený úryvek kódu ukazuje proces čtení více kontaktů ze souboru 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")

Vykreslit informace o kontaktu do MHTML

Kontakt Outlook lze převést na MHTML pomocí Aspose.Email API. Následující ukázkový kód demonstruje, jak vygenerovat soubor MHTML, který obsahuje podrobné informace o kontaktu původně ze souboru MSG:

  1. Načtěte soubor MSG jako MapiMessage objektu.
  2. Převést zprávu do formátu EML.
  3. Připravte možnosti uložení MHT:
    • Povolte kódování obsahu těla a zachovejte původní hranice.
    • Nastavte možnosti formátu MHT pro zápis hlaviček a vykreslení informací vCard.
  4. Definujte pole, která se mají vykreslit v MHT.
  5. Uložte EML jako soubor MHTML.