Zarządzanie kontaktami Outlook w plikach PST

Tworzenie, zapisywanie i odczytywanie kontaktów

Aspose.Email pozwala tworzyć i przetwarzać kontakty Outlook. MapiContact klasa zapewnia wszystkie właściwości związane z kontaktem potrzebne do tworzenia i manipulacji kontaktem Outlook. Ten artykuł pokazuje, jak utworzyć, zapisać i odczytać kontakt Outlook przy użyciu MapiContact klasa.

Utwórz i zapisz kontakty Outlook

Aby utworzyć kontakt i zapisać go na dysku, wykonaj następujące kroki:

  1. Utwórz nową instancję obiektu MapiContact klasa.
  2. Wprowadź informacje właściwości kontaktu.
  3. Dodaj dane zdjęcia (jeśli istnieją).
  4. Zapisz kontakt w formacie MSG lub VCard.

Poniższy fragment kodu pokazuje, jak utworzyć i zapisac 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)

Zapisz kontakty w formacie VCF wersja 3

Aby zapisać kontakt w formacie VCF wersja 3, użyj właściwości version w VCardSaveOptions klasa.

  1. Utwórz nową instancję VCardSaveOptions klasa.
  2. Ustaw właściwość version obiektu VCardSaveOptions na VCardVersion.V30. To ustawia wersję vCard na 3.0.
  3. Wywołaj zapis metoda obiektu MapiContact, przyjmująca nazwę pliku "contact.vcf" oraz obiekt VCardSaveOptions jako parametry. Zapisuje kontakt jako plik vCard z określoną nazwą i opcjami.

Poniższy fragment kodu pokazuje, jak zapisać kontakt w formacie VCF wersja 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)

Wczytaj kontakty z plików MSG lub VCard

Ten MapiContact klasa może być użyta do wczytywania kontaktów zarówno w formacie Outlook MSG, jak i VCard.

Aby wczytać kontakt z MSG, użyj poniższego przykładu kodu:

Aby wczytać kontakt z VCard, użyj poniższego przykładu kodu:

Wczytaj kontakty z określonym kodowaniem

Poniższy fragment kodu pokazuje, jak wczytać kontakt z vcard przy użyciu określonego kodowania.

Zapisz pliki VCard z niestandardowym kodowaniem znaków

Podczas zapisywania pliku vCard możesz określić kodowanie znaków, aby zapewnić kompatybilność z znakami nie‑ASCII. Na przykład ustawiając własność preferred_text_encoding w VCardSaveOptions obiekt na "utf-8" zapewnia prawidłowe kodowanie tekstu nie‑ASCII. Ta funkcja jest szczególnie przydatna przy obsłudze wielojęzycznych danych kontaktowych. Poniżej przykład, jak skonfigurować i zapisać plik vCard z niestandardowym kodowaniem znaków:

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)

Zapisz pliki VCard z rozszerzonymi właściwościami

Oprócz standardowych pól vCard, możesz ulepszyć swoje pliki vCard, dodając rozszerzone właściwości. Są to dodatkowe atrybuty nie objęte standardową specyfikacją vCard, pozwalające na większą personalizację. Aby to włączyć, ustaw właściwość use_extensions w VCardSaveOptions klasa do True. To jest szczególnie przydatne przy dodawaniu własnych lub specyficznych dla aplikacji metadanych. Oto jak możesz zapisać plik vCard z włączonymi rozszerzonymi właściwościami:

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)

Odczytaj wiele kontaktów w formacie VCard

Aby pobrać wszystkie kontakty z VCard, możesz użyć następujących metody:

  • Metoda is_multi_contacts określa, czy strumień zawiera wiele kontaktów.
  • Metoda load_as_multiple(file_path) ładuje listę wszystkich kontaktów z pliku VCard.
  • Metoda load_as_multiple(stream) ładuje listę wszystkich kontaktów z strumienia VCard.

Poniższy fragment kodu demonstruje proces odczytywania wielu kontaktów z pliku 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")

Renderuj informacje kontaktu do MHTML

Kontakt Outlook może być przekonwertowany do MHTML przy użyciu Aspose.Email API. Poniższy przykład kodu demonstruje, jak wygenerować plik MHTML zawierający szczegółowe informacje kontaktu pierwotnie pochodzące z pliku MSG:

  1. Wczytaj plik MSG jako MapiMessage obiekt.
  2. Konwertuj wiadomość do formatu EML.
  3. Przygotuj opcje zapisu MHT:
    • Włącz kodowanie treści ciała i zachowaj oryginalne granice.
    • Ustaw opcje formatu MHT, aby zapisywać nagłówki i renderować informacje vCard.
  4. Zdefiniuj pola do renderowania w MHT.
  5. Zapisz plik EML jako MHTML.