Робота з контактами Outlook

Створення, збереження та читання контактів

Як і MapiMessage, Aspose.Email дозволяє створювати контакти Outlook. Клас 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 Клас. Створіть новий екземпляр класу 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.