Работа с контактами Outlook
Создание, сохранение и чтение контактов
Как и MapiMessage, Aspose.Email позволяет создавать контакты Outlook. Класс MapiContact предоставляет все свойства, необходимые для создания контакта Outlook. Эта статья показывает, как создавать, сохранять и читать контакты Outlook с использованием класса MapiContact.
Создание и сохранение контакта Outlook
Чтобы создать контакт и сохранить его на диск:
- Создайте новый объект класса MapiContact.
- Введите информацию о свойствах контакта.
- Добавьте данные фото (при наличии).
- Сохраните контакт в формате 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 Класс. Создайте новый экземпляр класса VCardSaveOptions, установите свойство version объекта VCardSaveOptions в VCardVersion.V30. Это задаёт версию vCard 3.0. Затем вызовите метод save объекта 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)
Чтение MapiContact
Класс MapiContact может использоваться для загрузки контактов в форматах Outlook MSG и VCard. Следующий фрагмент кода показывает, как загрузить контакты Outlook, сохранённые как MSG и VCF, в объект MapiContact.
Загрузка контакта из MSG
Следующий фрагмент кода показывает, как загрузить контакт из MSG.
Загрузка контакта из VCard
Следующий фрагмент кода показывает, как загрузить контакт из vCard.
Загрузка контакта из VCard с указанной кодировкой
Следующий фрагмент кода показывает, как загрузить контакт из VCard с указанной кодировкой.
Сохранение контактов VCard с указанной кодировкой
При сохранении файла vCard можно указать кодировку символов, обеспечивая совместимость с не‑ASCII символами. Установите свойство preferred_text_encoding объекта VCardSaveOptions в "utf-8". Следующий фрагмент кода показывает, как внедрить эту функцию в ваш проект:
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 Класс позволяет это сделать. Следующий фрагмент кода показывает, как сохранить файл 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:
# Checks whether VCard source stream contains multiple contacts.
aspose.email.personalinfo.vcard.VCardContact.is_multi_contacts(stream)
# Loads list of all contacts from VCard file.
aspose.email.personalinfo.vcard.VCardContact.load_as_multiple(file_path, encoding)
# Loads list of all contacts from VCard stream.
aspose.email.personalinfo.vcard.VCardContact.load_as_multiple(stream, encoding)
Ниже приведён фрагмент кода, демонстрирующий процесс чтения нескольких контактов из файла 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. Этот пример показывает, как VCard загружается в MapiContact, а затем преобразуется в MHTML с помощью MailMessage API.