Управление контактами Outlook в PST-файлах

Создание, сохранение и чтение контактов

Aspose.Email позволяет создавать и обрабатывать контакты Outlook. The MapiContact класс предоставляет все свойства, связанные с контактами, необходимые для создания и работы с контактом Outlook. Эта статья показывает, как создать, сохранить и прочитать контакт Outlook, используя MapiContact класс.

Создать и сохранить контакты Outlook

Чтобы создать контакт и сохранить его на диск, выполните следующие шаги:

  1. Создайте новый объект класса MapiContact класс.
  2. Введите информацию о свойствах контакта.
  3. Добавьте данные фото (при наличии).
  4. Сохраните контакт в формате MSG или VCard.

Следующий фрагмент кода показывает, как создать и сохранить контакт 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)

Сохранить контакты в формате VCF версии 3

Чтобы сохранить контакт в формате VCF версии 3, используйте свойство version у VCardSaveOptions класс.

  1. Создайте новый экземпляр VCardSaveOptions класс.
  2. Установите свойство version объекта VCardSaveOptions в VCardVersion.V30. Это задаёт версию vCard 3.0.
  3. Вызвать сохранением метод объекта MapiContact, передающий имя файла "contact.vcf" и объект VCardSaveOptions в качестве параметров. Это сохраняет контакт как файл vCard с указанным именем и параметрами.

Следующий фрагмент кода показывает, как сохранить контакт в формате VCF версии 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)

Загрузить контакты из файлов MSG или VCard

Этот MapiContact класс можно использовать для загрузки контактов в формате Outlook MSG и VCard.

Чтобы загрузить контакт из MSG, используйте пример кода ниже:

Чтобы загрузить контакт из VCard, используйте следующий пример кода:

Загрузить контакты с указанной кодировкой

Следующий фрагмент кода показывает, как загрузить контакт из vcard с указанной кодировкой.

Сохранить VCard файлы с пользовательской кодировкой символов

При сохранении vCard‑файла вы можете задать кодировку символов, чтобы обеспечить совместимость с не‑ASCII символами. Например, установив свойство preferred_text_encoding у VCardSaveOptions установив объект в "utf-8", обеспечивается корректная кодировка не-ASCII текста. Эта функция особенно полезна для работы с многоязычными данными контактов. Ниже пример, как настроить и сохранить 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.preferred_text_encoding = "utf-8"
contact.save("contact.vcf", options)

Сохранить VCard файлы с расширенными свойствами

В дополнение к стандартным полям vCard, вы можете улучшить свои vCard‑файлы, включив расширенные свойства. Это дополнительные атрибуты, не охваченные стандартной спецификацией vCard, позволяющие большую настройку. Чтобы включить их, установите свойство use_extensions у VCardSaveOptions установите свойство класса в True. Это особенно полезно для добавления пользовательских или специфичных для приложения метаданных. Вот как можно сохранить файл 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)

Прочитать несколько контактов в формате VCard

Чтобы получить все контакты из VCard, вы можете использовать следующий методы:

  • is_multi_contacts метод определяет, содержит ли поток несколько контактов.
  • load_as_multiple(file_path) метод загружает список всех контактов из VCard‑файла.
  • load_as_multiple(stream) метод загружает список всех контактов из VCard‑потока.

Фрагмент кода ниже демонстрирует процесс чтения нескольких контактов из файла 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")

Отобразить информацию о контакте в MHTML

Контакт Outlook можно конвертировать в MHTML с помощью Aspose.Email API. Следующий пример кода демонстрирует, как создать файл MHTML, содержащий подробную информацию о контакте, исходно из файла MSG:

  1. Загрузите файл MSG как MapiMessage объекта.
  2. Конвертируйте сообщение в формат EML.
  3. Подготовьте параметры сохранения MHT:
    • Включите кодирование содержимого тела и сохраните оригинальные границы.
    • Установите параметры формата MHT для записи заголовков и отображения информации vCard.
  4. Определите поля для отображения в MHT.
  5. Сохраните EML как файл MHTML.